aboutsummaryrefslogtreecommitdiff
path: root/src/setup/gnunet-setup-gns-edit.h
blob: 56af72e016c387224ba37b018cbd989b3f9a6b08 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
/*
     This file is part of GNUnet
     (C) 2012 Christian Grothoff (and other contributing authors)

     GNUnet is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published
     by the Free Software Foundation; either version 2, or (at your
     option) any later version.

     GNUnet is distributed in the hope that it will be useful, but
     WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     General Public License for more details.

     You should have received a copy of the GNU General Public License
     along with GNUnet; see the file COPYING.  If not, write to the
     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
     Boston, MA 02111-1307, USA.
*/

/**
 * @file src/setup/gnunet-setup-gns-edit.h
 * @author Christian Grothoff
 * @brief editing dialogs for GNS records
 */
#ifndef GNUNET_SETUP_GNS_EDIT_H
#define GNUNET_SETUP_GNS_EDIT_H

#include "gnunet_gtk.h"
#include "gnunet-setup-gns.h"
#include <gnunet/gnunet_namestore_service.h>
#include <gnunet/gnunet_dnsparser_lib.h>


/**
 * Context for edit operations.
 */
struct EditDialogContext;


/**
 * Signature of the continuation function invoked once the
 * edit dialog is done.
 *
 * @param edc dialog context
 * @param ret return code from the dialog
 */
typedef void (*GNS_EditContinuation)(struct EditDialogContext *edc,
				     GtkResponseType ret);



/**
 * Context for edit operations.
 */
struct EditDialogContext
{

  /**
   * Function to call at the end.
   */
  GNS_EditContinuation cont;

  /**
   * Where in the tree view are we editing?
   */
  GtkTreeIter it;

  /**
   * Expiration time value (absolute or relative).
   */
  guint64 n_exp_time;

  /**
   * Old name of the record (for deletion).
   */
  gchar *n_name;

  /**
   * New name.
   */
  gchar *n_new_name;

  /**
   * Value of the record in string format.
   */
  gchar *n_value;

  /**
   * Zone into which the record should be placed.
   */
  const char *new_zone_option;

  /**
   * Flag indicating if the old record was in the namestore.
   */
  int old_record_in_namestore;

  /**
   * Is this record 'public'?
   */
  gboolean n_public;

  /**
   * Is the expiration time relative?
   */
  gboolean n_is_relative;

  /**
   * Is this record a shadow record?
   */
  gboolean n_is_shadow;

};



/**
 * Run an GNS Edit dialog for an 'A' Record.
 *
 * @param edc editing context to use
 */
void
GNS_edit_dialog_a (struct EditDialogContext *edc);


#endif