GNUnet  0.11.x
Functions | Variables
gnunet-gns-import.c File Reference
#include "platform.h"
#include <gnunet_util_lib.h>
#include <gnunet_gnsrecord_lib.h>
#include <gnunet_identity_service.h>
#include <gnunet_namestore_service.h>
Include dependency graph for gnunet-gns-import.c:

Go to the source code of this file.

Functions

static int run_process_and_wait (enum GNUNET_OS_InheritStdioFlags std_inheritance, struct GNUNET_DISK_PipeHandle *pipe_stdin, struct GNUNET_DISK_PipeHandle *pipe_stdout, enum GNUNET_OS_ProcessStatusType *st, unsigned long *code, const char *filename,...)
 
static void check_pkey (unsigned int rd_len, const struct GNUNET_GNSRECORD_Data *rd, char *pk, int *found_rec)
 
static void zone_iterator (void *cls, const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone_key, const char *rname, unsigned int rd_len, const struct GNUNET_GNSRECORD_Data *rd)
 Process a record that was stored in the namestore. More...
 
static void zone_iteration_error (void *cls)
 
static void zone_iteration_finished (void *cls)
 
static void get_ego (void *cls, struct GNUNET_IDENTITY_Ego *ego, void **ctx, const char *identifier)
 Get master-zone and private-zone keys. More...
 
static void shutdown_task (void *cls)
 Task run on shutdown. More...
 
static void run (void *cls, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *c)
 Main function that will be run. More...
 
int main (int argc, char *const *argv)
 The main function for gnunet-gns. More...
 

Variables

static const struct GNUNET_CONFIGURATION_Handlecfg
 Configuration we are using. More...
 
static struct GNUNET_IDENTITY_Handlesh
 Handle to IDENTITY service. More...
 
struct GNUNET_NAMESTORE_ZoneIteratorlist_it
 Zone iterator for master zone. More...
 
static struct GNUNET_NAMESTORE_Handlens
 Handle to the namestore. More...
 
static char * master_zone_pkey
 String version of PKEY for master-zone. More...
 
static struct GNUNET_CRYPTO_EcdsaPrivateKey master_pk
 Binary version of PKEY for master-zone. More...
 
static char * private_zone_pkey
 String version of PKEY for private-zone. More...
 
static char * pin_zone_pkey
 String version of PKEY for pin-zone. More...
 
static int found_private_rec = GNUNET_NO
 Set to GNUNET_YES if private record was found;. More...
 
static int found_pin_rec = GNUNET_NO
 Set to GNUNET_YES if pin record was found;. More...
 
static int ret
 Exit code. More...
 

Function Documentation

◆ run_process_and_wait()

static int run_process_and_wait ( enum GNUNET_OS_InheritStdioFlags  std_inheritance,
struct GNUNET_DISK_PipeHandle pipe_stdin,
struct GNUNET_DISK_PipeHandle pipe_stdout,
enum GNUNET_OS_ProcessStatusType st,
unsigned long *  code,
const char *  filename,
  ... 
)
static

Definition at line 90 of file gnunet-gns-import.c.

References find_typedefs::arg, gnunet-chk::args, GNUNET_free, GNUNET_malloc, GNUNET_NO, GNUNET_OK, GNUNET_OS_process_status(), GNUNET_OS_process_wait(), GNUNET_OS_start_process_va(), GNUNET_SYSERR, p, and ret.

Referenced by run(), and zone_iteration_error().

96 {
97  static struct GNUNET_OS_Process *p;
98  int arglen;
99  char *arg;
100  char *args;
101  char *argp;
102  va_list ap, apc1, apc2;
103 
104  va_start (ap, filename);
105  va_copy (apc1, ap);
106  va_copy (apc2, ap);
107  arglen = 0;
108  while (NULL != (arg = va_arg (apc1, char *)))
109  arglen += strlen (arg) + 1;
110  va_end (apc1);
111  args = argp = GNUNET_malloc (arglen);
112  while (NULL != (arg = va_arg (apc2, char *)))
113  {
114  strcpy (argp, arg);
115  argp += strlen (arg);
116  *argp = ' ';
117  argp += 1;
118  }
119  va_end (apc2);
120  if (arglen > 0)
121  argp[-1] = '\0';
122  p = GNUNET_OS_start_process_va (std_inheritance,
123  pipe_stdin,
124  pipe_stdout,
125  NULL,
126  filename, ap);
127  va_end (ap);
128  if (NULL == p)
129  {
130  ret = 3;
131  fprintf (stderr, "Failed to run `%s'\n", args);
132  GNUNET_free (args);
133  return 1;
134  }
135 
137  {
138  ret = 4;
139  fprintf (stderr, "Failed to wait for `%s'\n", args);
140  GNUNET_free (args);
141  return 1;
142  }
143 
144  switch (GNUNET_OS_process_status (p, st, code))
145  {
146  case GNUNET_OK:
147  break;
148 
149  case GNUNET_NO:
150  ret = 5;
151  fprintf (stderr, "`%s' is still running\n", args);
152  GNUNET_free (args);
153  return 1;
154 
155  default:
156  case GNUNET_SYSERR:
157  ret = 6;
158  fprintf (stderr, "Failed to check the status of `%s'\n", args);
159  GNUNET_free (args);
160  return 1;
161  }
162  return 0;
163 }
int GNUNET_OS_process_status(struct GNUNET_OS_Process *proc, enum GNUNET_OS_ProcessStatusType *type, unsigned long *code)
Retrieve the status of a process.
Definition: os_priority.c:946
static struct GNUNET_OS_Process * p
Helper process we started.
Definition: gnunet-qr.c:59
static char * filename
struct GNUNET_OS_Process * GNUNET_OS_start_process_va(enum GNUNET_OS_InheritStdioFlags std_inheritance, struct GNUNET_DISK_PipeHandle *pipe_stdin, struct GNUNET_DISK_PipeHandle *pipe_stdout, struct GNUNET_DISK_PipeHandle *pipe_stderr, const char *filename, va_list va)
Start a process.
Definition: os_priority.c:633
static int ret
Exit code.
int GNUNET_OS_process_wait(struct GNUNET_OS_Process *proc)
Wait for a process to terminate.
Definition: os_priority.c:983
static struct GNUNET_SCHEDULER_Task * st
The shutdown task.
#define GNUNET_malloc(size)
Wrapper around malloc.
#define GNUNET_free(ptr)
Wrapper around free.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ check_pkey()

static void check_pkey ( unsigned int  rd_len,
const struct GNUNET_GNSRECORD_Data rd,
char *  pk,
int *  found_rec 
)
static

Definition at line 167 of file gnunet-gns-import.c.

References data, data_size, GNUNET_free, GNUNET_GNSRECORD_identity_from_data(), GNUNET_GNSRECORD_value_to_string(), GNUNET_OK, and GNUNET_YES.

Referenced by zone_iterator().

169 {
170  int i;
172 
173  for (i = 0; i < rd_len; i++)
174  {
175  char *s;
176  if (sizeof (uint32_t) > rd[i].data_size)
177  continue;
179  rd[i].data_size,
180  rd[i].record_type,
181  &pubkey))
182  continue;
183  s = GNUNET_GNSRECORD_value_to_string (rd[i].record_type,
184  rd[i].data,
185  rd[i].data_size);
186  if (NULL == s)
187  continue;
188  if (0 == strcmp (s, pk))
189  *found_rec = GNUNET_YES;
190  GNUNET_free (s);
191  }
192 }
static size_t data_size
Number of bytes in data.
Definition: gnunet-abd.c:187
static struct GNUNET_IDENTITY_PublicKey pubkey
Public key of the zone to look in.
enum GNUNET_GenericReturnValue GNUNET_GNSRECORD_identity_from_data(const char *data, size_t data_size, uint32_t type, struct GNUNET_IDENTITY_PublicKey *key)
Build a #GNUNET_GNSRECORD_PublicKey from zone delegation resource record data.
An identity key as per LSD0001.
struct GNUNET_IDENTITY_PrivateKey pk
Private key from command line option, or NULL.
uint32_t data
The data value.
char * GNUNET_GNSRECORD_value_to_string(uint32_t type, const void *data, size_t data_size)
Convert the &#39;value&#39; of a record to a string.
Definition: gnsrecord.c:159
#define GNUNET_free(ptr)
Wrapper around free.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zone_iterator()

static void zone_iterator ( void *  cls,
const struct GNUNET_CRYPTO_EcdsaPrivateKey zone_key,
const char *  rname,
unsigned int  rd_len,
const struct GNUNET_GNSRECORD_Data rd 
)
static

Process a record that was stored in the namestore.

Parameters
clsclosure
zone_keyprivate key of the zone
rnamename that is being mapped (at most 255 characters long)
rd_lennumber of entries in rd array
rdarray of records with data to store

Definition at line 205 of file gnunet-gns-import.c.

References check_pkey(), found_pin_rec, found_private_rec, GNUNET_NAMESTORE_zone_iterator_next(), pin_zone_pkey, and private_zone_pkey.

Referenced by get_ego().

209 {
210  if (NULL != rname)
211  {
212  if (0 == strcmp (rname, "private"))
214  else if (0 == strcmp (rname, "pin"))
215  check_pkey (rd_len, rd, pin_zone_pkey, &found_pin_rec);
216  }
218 }
static char * pin_zone_pkey
String version of PKEY for pin-zone.
static char * private_zone_pkey
String version of PKEY for private-zone.
struct GNUNET_NAMESTORE_ZoneIterator * list_it
Zone iterator for master zone.
void GNUNET_NAMESTORE_zone_iterator_next(struct GNUNET_NAMESTORE_ZoneIterator *it, uint64_t limit)
Calls the record processor specified in GNUNET_NAMESTORE_zone_iteration_start for the next record...
static int found_pin_rec
Set to GNUNET_YES if pin record was found;.
static int found_private_rec
Set to GNUNET_YES if private record was found;.
static void check_pkey(unsigned int rd_len, const struct GNUNET_GNSRECORD_Data *rd, char *pk, int *found_rec)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zone_iteration_error()

static void zone_iteration_error ( void *  cls)
static

Definition at line 222 of file gnunet-gns-import.c.

References found_pin_rec, found_private_rec, GNUNET_OS_INHERIT_STD_OUT_AND_ERR, GNUNET_SCHEDULER_shutdown(), pin_zone_pkey, private_zone_pkey, ret, run_process_and_wait(), and st.

Referenced by get_ego().

223 {
225  unsigned long code;
226 
227  if (! found_private_rec)
228  {
230  NULL, NULL, &st, &code,
231  "gnunet-namestore",
232  "gnunet-namestore", "-z", "master-zone",
233  "-a", "-e", "never", "-n", "private", "-p",
234  "-t", "PKEY", "-V",
235  private_zone_pkey, NULL))
236  {
237  ret = 8;
238  return;
239  }
240  }
241  if (! found_pin_rec)
242  {
244  NULL, NULL, &st, &code,
245  "gnunet-namestore",
246  "gnunet-namestore", "-z", "master-zone",
247  "-a", "-e", "never", "-n", "pin", "-p", "-t",
248  "PKEY", "-V", pin_zone_pkey,
249  NULL))
250  {
251  ret = 10;
252  return;
253  }
254  }
255  list_it = NULL;
257 }
static char * pin_zone_pkey
String version of PKEY for pin-zone.
static char * private_zone_pkey
String version of PKEY for private-zone.
struct GNUNET_NAMESTORE_ZoneIterator * list_it
Zone iterator for master zone.
void GNUNET_SCHEDULER_shutdown(void)
Request the shutdown of a scheduler.
Definition: scheduler.c:531
GNUNET_OS_ProcessStatusType
Process status types.
static int found_pin_rec
Set to GNUNET_YES if pin record was found;.
When these flags are set, the child process will inherit stdout and stderr of the parent...
Definition: gnunet_os_lib.h:97
static int run_process_and_wait(enum GNUNET_OS_InheritStdioFlags std_inheritance, struct GNUNET_DISK_PipeHandle *pipe_stdin, struct GNUNET_DISK_PipeHandle *pipe_stdout, enum GNUNET_OS_ProcessStatusType *st, unsigned long *code, const char *filename,...)
static int found_private_rec
Set to GNUNET_YES if private record was found;.
static int ret
Exit code.
static struct GNUNET_SCHEDULER_Task * st
The shutdown task.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zone_iteration_finished()

static void zone_iteration_finished ( void *  cls)
static

Definition at line 261 of file gnunet-gns-import.c.

Referenced by get_ego().

262 {
263 }
Here is the caller graph for this function:

◆ get_ego()

static void get_ego ( void *  cls,
struct GNUNET_IDENTITY_Ego ego,
void **  ctx,
const char *  identifier 
)
static

Get master-zone and private-zone keys.

This function is initially called for all egos and then again whenever a ego's identifier changes or if it is deleted. At the end of the initial pass over all egos, the function is once called with 'NULL' for 'ego'. That does NOT mean that the callback won't be invoked in the future or that there was an error.

When used with 'GNUNET_IDENTITY_create' or 'GNUNET_IDENTITY_get', this function is only called ONCE, and 'NULL' being passed in 'ego' does indicate an error (i.e. name is taken or no default value is known). If 'ego' is non-NULL and if '*ctx' is set in those callbacks, the value WILL be passed to a subsequent call to the identity callback of 'GNUNET_IDENTITY_connect' (if that one was not NULL).

When an identity is renamed, this function is called with the (known) ego but the NEW identifier.

When an identity is deleted, this function is called with the (known) ego and "NULL" for the 'identifier'. In this case, the 'ego' is henceforth invalid (and the 'ctx' should also be cleaned up).

Parameters
clsclosure
egoego handle
ctxcontext for application to store data for this ego (during the lifetime of this process, initially NULL)
identifieridentifier assigned by the user for this ego, NULL if the user just deleted the ego and it must thus no longer be used

Definition at line 300 of file gnunet-gns-import.c.

References GNUNET_CRYPTO_ecdsa_public_key_to_string(), GNUNET_IDENTITY_ego_get_private_key(), GNUNET_IDENTITY_ego_get_public_key(), GNUNET_NAMESTORE_zone_iteration_start(), GNUNET_SCHEDULER_shutdown(), master_pk, master_zone_pkey, private_zone_pkey, ret, zone_iteration_error(), zone_iteration_finished(), and zone_iterator().

Referenced by run().

304 {
305  static struct GNUNET_CRYPTO_EcdsaPublicKey pk;
306 
307  if (NULL == ego)
308  {
309  if ((NULL == master_zone_pkey) ||
310  (NULL == private_zone_pkey) )
311  {
312  ret = 11;
314  return;
315  }
317  &master_pk,
319  NULL, &zone_iterator, NULL,
321  NULL);
322  if (NULL == list_it)
323  {
324  ret = 12;
326  }
327  return;
328  }
330  if (NULL != identifier)
331  {
332  if ((NULL == master_zone_pkey) && (0 == strcmp ("master-zone",
333  identifier)) )
334  {
337  }
338  else if ((NULL == private_zone_pkey) && (0 == strcmp ("private-zone",
339  identifier)) )
341  }
342 }
static char * private_zone_pkey
String version of PKEY for private-zone.
struct GNUNET_NAMESTORE_ZoneIterator * list_it
Zone iterator for master zone.
static struct GNUNET_CRYPTO_EcdsaPrivateKey master_pk
Binary version of PKEY for master-zone.
void GNUNET_IDENTITY_ego_get_public_key(struct GNUNET_IDENTITY_Ego *ego, struct GNUNET_IDENTITY_PublicKey *pk)
Get the identifier (public key) of an ego.
Definition: identity_api.c:652
void GNUNET_SCHEDULER_shutdown(void)
Request the shutdown of a scheduler.
Definition: scheduler.c:531
static void zone_iteration_finished(void *cls)
struct GNUNET_NAMESTORE_ZoneIterator * GNUNET_NAMESTORE_zone_iteration_start(struct GNUNET_NAMESTORE_Handle *h, const struct GNUNET_IDENTITY_PrivateKey *zone, GNUNET_SCHEDULER_TaskCallback error_cb, void *error_cb_cls, GNUNET_NAMESTORE_RecordMonitor proc, void *proc_cls, GNUNET_SCHEDULER_TaskCallback finish_cb, void *finish_cb_cls)
Starts a new zone iteration (used to periodically PUT all of our records into our DHT)...
char * GNUNET_CRYPTO_ecdsa_public_key_to_string(const struct GNUNET_CRYPTO_EcdsaPublicKey *pub)
Convert a public key to a string.
Definition: crypto_ecc.c:208
static int ret
Exit code.
static struct GNUNET_NAMESTORE_Handle * ns
Handle to the namestore.
static char * master_zone_pkey
String version of PKEY for master-zone.
struct GNUNET_IDENTITY_PrivateKey pk
Private key from command line option, or NULL.
const struct GNUNET_IDENTITY_PrivateKey * GNUNET_IDENTITY_ego_get_private_key(const struct GNUNET_IDENTITY_Ego *ego)
Obtain the ECC key associated with a ego.
Definition: identity_api.c:639
static void zone_iterator(void *cls, const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone_key, const char *rname, unsigned int rd_len, const struct GNUNET_GNSRECORD_Data *rd)
Process a record that was stored in the namestore.
Public ECC key (always for Curve25519) encoded in a format suitable for network transmission and ECDS...
static void zone_iteration_error(void *cls)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ shutdown_task()

static void shutdown_task ( void *  cls)
static

Task run on shutdown.

Parameters
clsNULL

Definition at line 351 of file gnunet-gns-import.c.

References GNUNET_free, GNUNET_IDENTITY_disconnect(), GNUNET_NAMESTORE_disconnect(), GNUNET_NAMESTORE_zone_iteration_stop(), master_zone_pkey, and private_zone_pkey.

Referenced by run().

352 {
354  master_zone_pkey = NULL;
356  private_zone_pkey = NULL;
357  if (NULL != list_it)
358  {
360  list_it = NULL;
361  }
362  if (NULL != ns)
363  {
365  ns = NULL;
366  }
367  if (NULL != sh)
368  {
370  sh = NULL;
371  }
372 }
static char * private_zone_pkey
String version of PKEY for private-zone.
struct GNUNET_NAMESTORE_ZoneIterator * list_it
Zone iterator for master zone.
void GNUNET_NAMESTORE_disconnect(struct GNUNET_NAMESTORE_Handle *h)
Disconnect from the namestore service (and free associated resources).
void GNUNET_IDENTITY_disconnect(struct GNUNET_IDENTITY_Handle *h)
Disconnect from identity service.
Definition: identity_api.c:921
void GNUNET_NAMESTORE_zone_iteration_stop(struct GNUNET_NAMESTORE_ZoneIterator *it)
Stops iteration and releases the namestore handle for further calls.
static struct GNUNET_NAMESTORE_Handle * ns
Handle to the namestore.
static char * master_zone_pkey
String version of PKEY for master-zone.
static struct GNUNET_IDENTITY_Handle * sh
Handle to IDENTITY service.
#define GNUNET_free(ptr)
Wrapper around free.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ run()

static void run ( void *  cls,
char *const *  args,
const char *  cfgfile,
const struct GNUNET_CONFIGURATION_Handle c 
)
static

Main function that will be run.

Parameters
clsclosure
argsremaining command-line arguments
cfgfilename of the configuration file used (for saving, can be NULL!)
cconfiguration

Definition at line 384 of file gnunet-gns-import.c.

References get_ego(), GNUNET_IDENTITY_connect(), GNUNET_NAMESTORE_connect(), GNUNET_OS_INHERIT_STD_NONE, GNUNET_OS_INHERIT_STD_OUT_AND_ERR, GNUNET_SCHEDULER_add_shutdown(), ret, run_process_and_wait(), shutdown_task(), and st.

Referenced by main().

386 {
388  unsigned long code;
389 
390  cfg = c;
391 
393  NULL, NULL, &st, &code,
394  "gnunet-arm",
395  "gnunet-arm", "-I", NULL))
396  {
397  if (7 == ret)
398  fprintf (stderr,
399  "GNUnet is not running, please start GNUnet before running import\n");
400  return;
401  }
402 
404  NULL, NULL, &st, &code,
405  "gnunet-identity",
406  "gnunet-identity", "-C", "master-zone", NULL))
407  return;
408 
410  NULL, NULL, &st, &code,
411  "gnunet-identity",
412  "gnunet-identity", "-C", "private-zone", NULL))
413  return;
414 
416  NULL, NULL, &st, &code,
417  "gnunet-identity",
418  "gnunet-identity", "-C", "sks-zone", NULL))
419  return;
420 
422  NULL, NULL, &st, &code,
423  "gnunet-identity",
424  "gnunet-identity", "-e", "master-zone", "-s",
425  "gns-master", NULL))
426  return;
427 
429  NULL, NULL, &st, &code,
430  "gnunet-identity",
431  "gnunet-identity", "-e", "master-zone", "-s",
432  "namestore", NULL))
433  return;
434 
436  NULL, NULL, &st, &code,
437  "gnunet-identity",
438  "gnunet-identity", "-e", "master-zone", "-s",
439  "gns-proxy", NULL))
440  return;
441 
443  NULL, NULL, &st, &code,
444  "gnunet-identity",
445  "gnunet-identity", "-e", "master-zone", "-s",
446  "gns-intercept", NULL))
447  return;
448 
450  NULL, NULL, &st, &code,
451  "gnunet-identity",
452  "gnunet-identity", "-e", "private-zone", "-s",
453  "gns-private", NULL))
454  return;
455 
457  NULL, NULL, &st, &code,
458  "gnunet-identity",
459  "gnunet-identity", "-e", "sks-zone", "-s",
460  "fs-sks", NULL))
461  return;
462 
466 }
struct GNUNET_IDENTITY_Handle * GNUNET_IDENTITY_connect(const struct GNUNET_CONFIGURATION_Handle *cfg, GNUNET_IDENTITY_Callback cb, void *cb_cls)
Connect to the identity service.
Definition: identity_api.c:610
static const struct GNUNET_CONFIGURATION_Handle * cfg
Configuration we are using.
struct GNUNET_SCHEDULER_Task * GNUNET_SCHEDULER_add_shutdown(GNUNET_SCHEDULER_TaskCallback task, void *task_cls)
Schedule a new task to be run on shutdown, that is when a CTRL-C signal is received, or when GNUNET_SCHEDULER_shutdown() is being invoked.
Definition: scheduler.c:1331
No standard streams should be inherited.
Definition: gnunet_os_lib.h:73
GNUNET_OS_ProcessStatusType
Process status types.
When these flags are set, the child process will inherit stdout and stderr of the parent...
Definition: gnunet_os_lib.h:97
static int run_process_and_wait(enum GNUNET_OS_InheritStdioFlags std_inheritance, struct GNUNET_DISK_PipeHandle *pipe_stdin, struct GNUNET_DISK_PipeHandle *pipe_stdout, enum GNUNET_OS_ProcessStatusType *st, unsigned long *code, const char *filename,...)
struct GNUNET_NAMESTORE_Handle * GNUNET_NAMESTORE_connect(const struct GNUNET_CONFIGURATION_Handle *cfg)
Connect to the namestore service.
static int ret
Exit code.
static struct GNUNET_NAMESTORE_Handle * ns
Handle to the namestore.
static void get_ego(void *cls, struct GNUNET_IDENTITY_Ego *ego, void **ctx, const char *identifier)
Get master-zone and private-zone keys.
static void shutdown_task(void *cls)
Task run on shutdown.
static struct GNUNET_IDENTITY_Handle * sh
Handle to IDENTITY service.
static struct GNUNET_SCHEDULER_Task * st
The shutdown task.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ main()

int main ( int  argc,
char *const *  argv 
)

The main function for gnunet-gns.

Parameters
argcnumber of arguments from the command line
argvcommand line arguments
Returns
0 ok, 1 on error

Definition at line 477 of file gnunet-gns-import.c.

References _, GNUNET_free_nz, GNUNET_GETOPT_OPTION_END, GNUNET_log_setup(), GNUNET_OK, GNUNET_PROGRAM_run(), GNUNET_STRINGS_get_utf8_args(), ret, and run().

478 {
479  static const struct GNUNET_GETOPT_CommandLineOption options[] = {
481  };
482  int r;
483 
484  if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
485  return 2;
486 
487  GNUNET_log_setup ("gnunet-gns-import", "WARNING", NULL);
488  ret = 0;
489  r = GNUNET_PROGRAM_run (argc, argv, "gnunet-gns-import",
490  _ (
491  "This program will import some GNS authorities into your GNS namestore."),
492  options,
493  &run, NULL);
494  GNUNET_free_nz ((void *) argv);
495  return GNUNET_OK == r ? ret : 1;
496 }
enum GNUNET_GenericReturnValue GNUNET_PROGRAM_run(int argc, char *const *argv, const char *binaryName, const char *binaryHelp, const struct GNUNET_GETOPT_CommandLineOption *options, GNUNET_PROGRAM_Main task, void *task_cls)
Run a standard GNUnet command startup sequence (initialize loggers and configuration, parse options).
Definition: program.c:363
struct GNUNET_GETOPT_CommandLineOption options[]
Definition: 002.c:5
int GNUNET_STRINGS_get_utf8_args(int argc, char *const *argv, int *u8argc, char *const **u8argv)
Returns utf-8 encoded arguments.
Definition: strings.c:1459
Definition of a command line option.
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_OPTION_END
Definition: 002.c:13
#define _(String)
GNU gettext support macro.
Definition: platform.h:184
static void run(void *cls, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *c)
Main function that will be run.
#define GNUNET_free_nz(ptr)
Wrapper around free.
static int ret
Exit code.
int GNUNET_log_setup(const char *comp, const char *loglevel, const char *logfile)
Setup logging.
Here is the call graph for this function:

Variable Documentation

◆ cfg

const struct GNUNET_CONFIGURATION_Handle* cfg
static

Configuration we are using.

Definition at line 35 of file gnunet-gns-import.c.

◆ sh

struct GNUNET_IDENTITY_Handle* sh
static

Handle to IDENTITY service.

Definition at line 40 of file gnunet-gns-import.c.

◆ list_it

Zone iterator for master zone.

Definition at line 45 of file gnunet-gns-import.c.

◆ ns

struct GNUNET_NAMESTORE_Handle* ns
static

Handle to the namestore.

Definition at line 50 of file gnunet-gns-import.c.

◆ master_zone_pkey

char* master_zone_pkey
static

String version of PKEY for master-zone.

Definition at line 55 of file gnunet-gns-import.c.

Referenced by get_ego(), and shutdown_task().

◆ master_pk

struct GNUNET_CRYPTO_EcdsaPrivateKey master_pk
static

Binary version of PKEY for master-zone.

Definition at line 60 of file gnunet-gns-import.c.

Referenced by get_ego().

◆ private_zone_pkey

char* private_zone_pkey
static

String version of PKEY for private-zone.

Definition at line 65 of file gnunet-gns-import.c.

Referenced by get_ego(), shutdown_task(), zone_iteration_error(), and zone_iterator().

◆ pin_zone_pkey

char* pin_zone_pkey
static
Initial value:
=
"72QC35CO20UJN1E91KPJFNT9TG4CLKAPB4VK9S3Q758S9MLBRKOG"

String version of PKEY for pin-zone.

Definition at line 70 of file gnunet-gns-import.c.

Referenced by zone_iteration_error(), and zone_iterator().

◆ found_private_rec

int found_private_rec = GNUNET_NO
static

Set to GNUNET_YES if private record was found;.

Definition at line 76 of file gnunet-gns-import.c.

Referenced by zone_iteration_error(), and zone_iterator().

◆ found_pin_rec

int found_pin_rec = GNUNET_NO
static

Set to GNUNET_YES if pin record was found;.

Definition at line 81 of file gnunet-gns-import.c.

Referenced by zone_iteration_error(), and zone_iterator().

◆ ret

int ret
static

Exit code.

Definition at line 86 of file gnunet-gns-import.c.

Referenced by get_ego(), main(), run(), run_process_and_wait(), and zone_iteration_error().