GNUnet 0.22.2
gnunet-hello.c File Reference

Export/import/print HELLOs. More...

#include "platform.h"
#include "gnunet_common.h"
#include "gnunet_time_lib.h"
#include "gnunet_util_lib.h"
#include "gnunet_hello_uri_lib.h"
#include "gnunet_peerstore_service.h"
Include dependency graph for gnunet-hello.c:

Go to the source code of this file.

Functions

static void shutdown_task (void *cls)
 Task run in monitor mode when the user presses CTRL-C to abort. More...
 
static void print_hello_addrs (void *cls, const struct GNUNET_PeerIdentity *pid, const char *uri)
 Callback function used to extract URIs from a builder. More...
 
static void hello_iter (void *cls, const struct GNUNET_PEERSTORE_Record *record, const char *emsg)
 
static void hello_store_success (void *cls, int success)
 
static void run (void *cls, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg)
 Main function that will be run by the scheduler. More...
 
int main (int argc, char *const *argv)
 The main function to obtain peer information from CORE. More...
 

Variables

static int ret
 Return code. More...
 
static struct GNUNET_PEERSTORE_Handlepeerstore_handle
 
static struct GNUNET_PEERSTORE_IterateContextiter_ctx
 PEERSTORE iteration context. More...
 
static struct GNUNET_PEERSTORE_StoreHelloContextshc
 HELLO store context handle. More...
 
static struct GNUNET_CRYPTO_EddsaPrivateKey my_private_key
 Peer private key. More...
 
static struct GNUNET_PeerIdentity my_full_id
 Peer identity. More...
 
static int export_own_hello
 HELLO export option -H. More...
 
static char * expirationstring
 Optional expiration string -E. More...
 
static struct GNUNET_TIME_Relative hello_validity
 Expiration time for exported hello. More...
 
static enum GNUNET_GenericReturnValue binary_output
 HELLO export/import format option. More...
 
static int print_hellos
 Hello list option -D. More...
 
static enum GNUNET_GenericReturnValue import_hello
 HELLO import option -I. More...
 

Detailed Description

Export/import/print HELLOs.

Author
Nathan Evans

Definition in file gnunet-hello.c.

Function Documentation

◆ shutdown_task()

static void shutdown_task ( void *  cls)
static

Task run in monitor mode when the user presses CTRL-C to abort.

Stops monitoring activity.

Parameters
clsNULL

Definition at line 102 of file gnunet-hello.c.

103{
104 (void) cls;
105 if (NULL != shc)
106 {
108 shc = NULL;
109 }
110 if (NULL != iter_ctx)
111 {
113 }
114 if (NULL != peerstore_handle)
115 {
117 peerstore_handle = NULL;
118 }
119}
static struct GNUNET_PEERSTORE_IterateContext * iter_ctx
PEERSTORE iteration context.
Definition: gnunet-hello.c:48
static struct GNUNET_PEERSTORE_Handle * peerstore_handle
Definition: gnunet-hello.c:43
static struct GNUNET_PEERSTORE_StoreHelloContext * shc
HELLO store context handle.
Definition: gnunet-hello.c:53
void GNUNET_PEERSTORE_disconnect(struct GNUNET_PEERSTORE_Handle *h)
Disconnect from the PEERSTORE service.
void GNUNET_PEERSTORE_hello_add_cancel(struct GNUNET_PEERSTORE_StoreHelloContext *huc)
Cancel the request to add a hello.
void GNUNET_PEERSTORE_iteration_stop(struct GNUNET_PEERSTORE_IterateContext *ic)
Cancel an iteration.

References GNUNET_PEERSTORE_disconnect(), GNUNET_PEERSTORE_hello_add_cancel(), GNUNET_PEERSTORE_iteration_stop(), iter_ctx, peerstore_handle, and shc.

Referenced by run().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ print_hello_addrs()

static void print_hello_addrs ( void *  cls,
const struct GNUNET_PeerIdentity pid,
const char *  uri 
)
static

Callback function used to extract URIs from a builder.

Called when we should consider connecting to a peer.

Parameters
clsclosure pointing to a struct GNUNET_PeerIdentity *
urione of the URIs

Definition at line 130 of file gnunet-hello.c.

133{
134 (void) cls;
135
136
137 printf ("|- %s\n", uri);
138}
static struct GNUNET_FS_Uri * uri
Value of URI provided on command-line (when not publishing a file but just creating UBlocks to refer ...

References uri.

Referenced by hello_iter().

Here is the caller graph for this function:

◆ hello_iter()

static void hello_iter ( void *  cls,
const struct GNUNET_PEERSTORE_Record record,
const char *  emsg 
)
static

If we ever get here, we are newer than the existing record or the only/first record.

Definition at line 142 of file gnunet-hello.c.

144{
145 struct GNUNET_HELLO_Parser *hp;
146 struct GNUNET_TIME_Absolute hello_exp;
147 const struct GNUNET_PeerIdentity *pid;
148
149 if ((NULL == record) && (NULL == emsg))
150 {
154 iter_ctx = NULL;
156 return;
157 }
158 if (NULL != emsg)
159 {
160 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "%s\n", emsg);
162 return;
163 }
168 {
169 if (0 == GNUNET_memcmp (&my_full_id,
170 pid))
171 {
172 struct GNUNET_HELLO_Builder *hb;
173
176 {
177 char *url;
178 if (NULL != expirationstring)
179 {
183 }
184 else
185 {
187 }
188 printf ("%s\n", url);
189 GNUNET_free (url);
191 iter_ctx = NULL;
195 }
196 else
197 {
198 struct GNUNET_MQ_Envelope *env;
199 struct GNUNET_TIME_Relative validity_tmp;
200 const struct GNUNET_MessageHeader *msg;
201
202 if (NULL != expirationstring)
203 {
207 }
208 else
209 {
210 validity_tmp = GNUNET_TIME_absolute_get_duration (hello_exp);
213 validity_tmp);
214 }
216 fwrite (msg, 1, ntohs (msg->size), stdout);
219 iter_ctx = NULL;
223 }
224 return;
225 }
226 }
227 else if (print_hellos)
228 {
229 printf ("`%s' (expires: %s):\n", GNUNET_i2s (pid),
232 }
235}
struct GNUNET_MessageHeader * msg
Definition: 005.c:2
struct GNUNET_MQ_Envelope * env
Definition: 005.c:1
static void record(void *cls, size_t data_size, const void *data)
Process recorded audio data.
static struct GNUNET_TIME_Relative hello_validity
Expiration time for exported hello.
Definition: gnunet-hello.c:78
static struct GNUNET_CRYPTO_EddsaPrivateKey my_private_key
Peer private key.
Definition: gnunet-hello.c:58
static struct GNUNET_PeerIdentity my_full_id
Peer identity.
Definition: gnunet-hello.c:63
static void print_hello_addrs(void *cls, const struct GNUNET_PeerIdentity *pid, const char *uri)
Callback function used to extract URIs from a builder.
Definition: gnunet-hello.c:130
static int export_own_hello
HELLO export option -H.
Definition: gnunet-hello.c:68
static int print_hellos
Hello list option -D.
Definition: gnunet-hello.c:88
static enum GNUNET_GenericReturnValue binary_output
HELLO export/import format option.
Definition: gnunet-hello.c:83
static char * expirationstring
Optional expiration string -E.
Definition: gnunet-hello.c:73
static struct GNUNET_PeerIdentity pid
Identity of the peer we transmit to / connect to.
struct GNUNET_HELLO_Builder * GNUNET_HELLO_builder_from_parser(const struct GNUNET_HELLO_Parser *parser)
Allocate builder from parser.
Definition: hello-uri.c:419
void GNUNET_HELLO_parser_free(struct GNUNET_HELLO_Parser *parser)
Release resources of a builder.
Definition: hello-uri.c:435
struct GNUNET_HELLO_Parser * GNUNET_HELLO_parser_from_msg(const struct GNUNET_MessageHeader *msg)
Parse msg.
Definition: hello-uri.c:471
void GNUNET_HELLO_builder_free(struct GNUNET_HELLO_Builder *builder)
Release resources of a builder.
Definition: hello-uri.c:453
const struct GNUNET_PeerIdentity * GNUNET_HELLO_parser_iterate(const struct GNUNET_HELLO_Parser *parser, GNUNET_HELLO_UriCallback uc, void *uc_cls)
Iterate over URIs in a parser.
Definition: hello-uri.c:1201
struct GNUNET_TIME_Absolute GNUNET_HELLO_get_expiration_time_from_msg(const struct GNUNET_MessageHeader *msg)
Get the expiration time for this HELLO.
Definition: hello-uri.c:619
const struct GNUNET_PeerIdentity * GNUNET_HELLO_parser_get_id(const struct GNUNET_HELLO_Parser *parser)
Get the PeerIdentity for this builder.
Definition: hello-uri.c:412
char * GNUNET_HELLO_builder_to_url(const struct GNUNET_HELLO_Builder *builder, const struct GNUNET_CRYPTO_EddsaPrivateKey *priv)
Generate GNUnet HELLO URI from a builder.
Definition: hello-uri.c:997
struct GNUNET_MQ_Envelope * GNUNET_HELLO_builder_to_env(const struct GNUNET_HELLO_Builder *builder, const struct GNUNET_CRYPTO_EddsaPrivateKey *priv, struct GNUNET_TIME_Relative expiration_time)
Generate envelope with GNUnet HELLO message (including peer ID) from a builder.
Definition: hello-uri.c:1168
char * GNUNET_HELLO_builder_to_url2(const struct GNUNET_HELLO_Builder *builder, const struct GNUNET_CRYPTO_EddsaPrivateKey *priv, struct GNUNET_TIME_Relative expiration_time)
Generate GNUnet HELLO URI from a builder.
Definition: hello-uri.c:873
#define GNUNET_log(kind,...)
#define GNUNET_memcmp(a, b)
Compare memory in a and b, where both must be of the same pointer type.
uint16_t size
The length of the struct (in bytes, including the length field itself), in big-endian format.
@ GNUNET_NO
const char * GNUNET_i2s(const struct GNUNET_PeerIdentity *pid)
Convert a peer identity to a string (for printing debug messages).
@ GNUNET_ERROR_TYPE_ERROR
#define GNUNET_free(ptr)
Wrapper around free.
const struct GNUNET_MessageHeader * GNUNET_MQ_env_get_msg(const struct GNUNET_MQ_Envelope *env)
Obtain message contained in envelope.
Definition: mq.c:896
void GNUNET_PEERSTORE_iteration_next(struct GNUNET_PEERSTORE_IterateContext *ic, uint64_t limit)
Continue an iteration.
void GNUNET_SCHEDULER_shutdown(void)
Request the shutdown of a scheduler.
Definition: scheduler.c:567
struct GNUNET_TIME_Relative GNUNET_TIME_absolute_get_duration(struct GNUNET_TIME_Absolute whence)
Get the duration of an operation as the difference of the current time and the given start time "henc...
Definition: time.c:438
const char * GNUNET_STRINGS_absolute_time_to_string(struct GNUNET_TIME_Absolute t)
Like asctime, except for GNUnet time.
Definition: strings.c:640
Context for building (or parsing) HELLO URIs.
Definition: hello-uri.c:205
Context for parsing HELLOs.
Definition: hello-uri.c:258
Header for all communications.
The identity of the host (wraps the signing key of the peer).
Time for absolute times used by GNUnet, in microseconds.
Time for relative time used by GNUnet, in microseconds.

References binary_output, env, expirationstring, export_own_hello, GNUNET_ERROR_TYPE_ERROR, GNUNET_free, GNUNET_HELLO_builder_free(), GNUNET_HELLO_builder_from_parser(), GNUNET_HELLO_builder_to_env(), GNUNET_HELLO_builder_to_url(), GNUNET_HELLO_builder_to_url2(), GNUNET_HELLO_get_expiration_time_from_msg(), GNUNET_HELLO_parser_free(), GNUNET_HELLO_parser_from_msg(), GNUNET_HELLO_parser_get_id(), GNUNET_HELLO_parser_iterate(), GNUNET_i2s(), GNUNET_log, GNUNET_memcmp, GNUNET_MQ_env_get_msg(), GNUNET_NO, GNUNET_PEERSTORE_iteration_next(), GNUNET_PEERSTORE_iteration_stop(), GNUNET_SCHEDULER_shutdown(), GNUNET_STRINGS_absolute_time_to_string(), GNUNET_TIME_absolute_get_duration(), hello_validity, iter_ctx, msg, my_full_id, my_private_key, pid, print_hello_addrs(), print_hellos, record(), and GNUNET_MessageHeader::size.

Referenced by run().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hello_store_success()

static void hello_store_success ( void *  cls,
int  success 
)
static

Definition at line 239 of file gnunet-hello.c.

240{
241 shc = NULL;
242 if (GNUNET_OK != success)
243 {
245 "Storing hello uri failed\n");
246 }
247 printf ("HELLO imported.");
249}
@ GNUNET_OK
@ GNUNET_ERROR_TYPE_WARNING

References GNUNET_ERROR_TYPE_WARNING, GNUNET_log, GNUNET_OK, GNUNET_SCHEDULER_shutdown(), and shc.

Referenced by run().

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 cfg 
)
static

Main function that will be run by the scheduler.

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

Definition at line 261 of file gnunet-hello.c.

265{
266 struct GNUNET_HELLO_Parser *hp;
267 struct GNUNET_MQ_Envelope *env;
268 char *keyfile;
269 (void) cls;
270 (void) cfgfile;
271
272 if (NULL != args[0])
273 {
274 fprintf (stderr, _ ("Invalid command line argument `%s'\n"), args[0]);
275 return;
276 }
277 if (! print_hellos &&
280 {
281 fprintf (stderr, "%s", _ ("No argument given.\n"));
282 ret = 1;
284 return;
285 }
287 if (GNUNET_OK !=
289 "PEER",
290 "PRIVATE_KEY",
291 &keyfile))
292 {
293 GNUNET_log (
295 _ ("Core service is lacking HOSTKEY configuration setting. Exiting.\n"));
297 ret = 1;
298 return;
299 }
300 if (GNUNET_SYSERR ==
304 {
306 "Failed to read peer's private key!\n");
308 ret = 1;
309 GNUNET_free (keyfile);
310 return;
311 }
312 GNUNET_free (keyfile);
317 if (NULL != expirationstring)
318 {
321 {
322 fprintf (stderr, "Invalid expiration time `%s'", expirationstring);
324 return;
325 }
326 }
328 {
329 char buffer[GNUNET_MAX_MESSAGE_SIZE - 1];
330 char *write_ptr;
331 ssize_t nread;
332 size_t read_total = 0;
333
334 write_ptr = buffer;
335 while (0 < (nread = fread (write_ptr, 1,
336 sizeof buffer - read_total, stdin)))
337 {
338 read_total += nread;
339 write_ptr += nread;
340 }
341 buffer[read_total] = '\0';
342 if (strlen ("gnunet://hello/") > read_total)
343 {
344 fprintf (stderr, "HELLO malformed\n");
346 return;
347 }
348 if (0 == strncasecmp ("gnunet://hello/",
349 buffer, strlen ("gnunet://hello/")))
350 {
351 // Remove newline
352 buffer[read_total - 1] = '\0';
353 hp = GNUNET_HELLO_parser_from_url (buffer);
354 if (NULL == hp)
355 {
356 fprintf (stderr, "Unable to parse URI `%s'\n", buffer);
358 return;
359 }
363 &hello_store_success, NULL);
366 }
367 else if (read_total > sizeof (struct GNUNET_MessageHeader))
368 {
370 (const struct GNUNET_MessageHeader*)
371 buffer,
372 &hello_store_success, NULL);
373 }
374 else
375 {
376 fprintf (stderr, "HELLO malformed\n");
378 }
379 return;
380 }
381
383 "peerstore",
384 NULL,
386 &hello_iter,
387 NULL);
388
389}
static struct GNUNET_CONFIGURATION_Handle * cfg
Our configuration.
Definition: gnunet-arm.c:108
static void hello_iter(void *cls, const struct GNUNET_PEERSTORE_Record *record, const char *emsg)
Definition: gnunet-hello.c:142
static enum GNUNET_GenericReturnValue import_hello
HELLO import option -I.
Definition: gnunet-hello.c:93
static void shutdown_task(void *cls)
Task run in monitor mode when the user presses CTRL-C to abort.
Definition: gnunet-hello.c:102
static int ret
Return code.
Definition: gnunet-hello.c:38
static void hello_store_success(void *cls, int success)
Definition: gnunet-hello.c:239
#define GNUNET_MAX_MESSAGE_SIZE
Largest supported message (to be precise, one byte more than the largest possible message,...
enum GNUNET_GenericReturnValue GNUNET_CONFIGURATION_get_value_filename(const struct GNUNET_CONFIGURATION_Handle *cfg, const char *section, const char *option, char **value)
Get a configuration value that should be the name of a file or directory.
enum GNUNET_GenericReturnValue GNUNET_CRYPTO_eddsa_key_from_file(const char *filename, int do_create, struct GNUNET_CRYPTO_EddsaPrivateKey *pkey)
Create a new private key by reading it from a file.
void GNUNET_CRYPTO_eddsa_key_get_public(const struct GNUNET_CRYPTO_EddsaPrivateKey *priv, struct GNUNET_CRYPTO_EddsaPublicKey *pub)
Extract the public key for the given private key.
Definition: crypto_ecc.c:201
struct GNUNET_MQ_Envelope * GNUNET_HELLO_parser_to_env(const struct GNUNET_HELLO_Parser *parser)
Generate envelope with GNUnet HELLO message (including peer ID) from a parser.
Definition: hello-uri.c:1103
struct GNUNET_HELLO_Parser * GNUNET_HELLO_parser_from_url(const char *url)
Parse GNUnet HELLO url.
Definition: hello-uri.c:682
@ GNUNET_YES
@ GNUNET_SYSERR
#define GNUNET_assert(cond)
Use this for fatal errors that cannot be handled.
struct GNUNET_PEERSTORE_IterateContext * GNUNET_PEERSTORE_iteration_start(struct GNUNET_PEERSTORE_Handle *h, const char *sub_system, const struct GNUNET_PeerIdentity *peer, const char *key, GNUNET_PEERSTORE_Processor callback, void *callback_cls)
Iterate over peerstore entries.
struct GNUNET_PEERSTORE_Handle * GNUNET_PEERSTORE_connect(const struct GNUNET_CONFIGURATION_Handle *cfg)
Connect to the PEERSTORE service.
#define GNUNET_PEERSTORE_HELLO_KEY
Key used for storing HELLO in the peerstore.
struct GNUNET_PEERSTORE_StoreHelloContext * GNUNET_PEERSTORE_hello_add(struct GNUNET_PEERSTORE_Handle *h, const struct GNUNET_MessageHeader *msg, GNUNET_PEERSTORE_Continuation cont, void *cont_cls)
Add hello to peerstore.
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,...
Definition: scheduler.c:1339
enum GNUNET_GenericReturnValue GNUNET_STRINGS_fancy_time_to_relative(const char *fancy_time, struct GNUNET_TIME_Relative *rtime)
Convert a given fancy human-readable time to our internal representation.
Definition: strings.c:259
#define GNUNET_TIME_UNIT_DAYS
One day.
#define _(String)
GNU gettext support macro.
Definition: platform.h:179
struct GNUNET_CRYPTO_EddsaPublicKey public_key

References _, consensus-simulation::args, cfg, env, expirationstring, export_own_hello, GNUNET_assert, GNUNET_CONFIGURATION_get_value_filename(), GNUNET_CRYPTO_eddsa_key_from_file(), GNUNET_CRYPTO_eddsa_key_get_public(), GNUNET_ERROR_TYPE_ERROR, GNUNET_free, GNUNET_HELLO_parser_free(), GNUNET_HELLO_parser_from_url(), GNUNET_HELLO_parser_to_env(), GNUNET_log, GNUNET_MAX_MESSAGE_SIZE, GNUNET_MQ_env_get_msg(), GNUNET_NO, GNUNET_OK, GNUNET_PEERSTORE_connect(), GNUNET_PEERSTORE_hello_add(), GNUNET_PEERSTORE_HELLO_KEY, GNUNET_PEERSTORE_iteration_start(), GNUNET_SCHEDULER_add_shutdown(), GNUNET_SCHEDULER_shutdown(), GNUNET_STRINGS_fancy_time_to_relative(), GNUNET_SYSERR, GNUNET_TIME_UNIT_DAYS, GNUNET_YES, hello_iter(), hello_store_success(), hello_validity, import_hello, iter_ctx, my_full_id, my_private_key, peerstore_handle, print_hellos, GNUNET_PeerIdentity::public_key, ret, shc, and shutdown_task().

Referenced by main().

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 to obtain peer information from CORE.

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

Definition at line 400 of file gnunet-hello.c.

401{
402 int res;
405 "export-hello",
407 "Print a HELLO for our peer identity"),
410 "binary",
412 "Output HELLO in binary format. Use with `--export'."),
415 "import-hello",
416 gettext_noop ("Import a HELLO"),
417 &import_hello),
419 "expiration",
420 "TIME",
422 "Expiration time to set for exported hello. (Default: 1 day)"),
425 "dump-hellos",
427 "List all known HELLOs in peerstore"),
428 &print_hellos),
430 };
431
433 argc,
434 argv,
435 "gnunet-hello",
437 "Import/export/print HELLOs."),
438 options,
439 &run,
440 NULL);
441
442 if (GNUNET_OK == res)
443 return ret;
444 return 1;
445}
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_OPTION_END
Definition: 002.c:13
struct GNUNET_GETOPT_CommandLineOption options[]
Definition: 002.c:5
#define gettext_noop(String)
Definition: gettext.h:74
static void run(void *cls, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg)
Main function that will be run by the scheduler.
Definition: gnunet-hello.c:261
static char * res
Currently read line or NULL on EOF.
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_option_flag(char shortName, const char *name, const char *description, int *val)
Allow user to specify a flag (which internally means setting an integer to 1/GNUNET_YES/GNUNET_OK.
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_option_string(char shortName, const char *name, const char *argumentHelp, const char *description, char **str)
Allow user to specify a string.
const struct GNUNET_OS_ProjectData * GNUNET_OS_project_data_gnunet(void)
Return default project data used by 'libgnunetutil' for GNUnet.
enum GNUNET_GenericReturnValue GNUNET_PROGRAM_run(const struct GNUNET_OS_ProjectData *pd, 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,...
Definition: program.c:407
Definition of a command line option.

References binary_output, expirationstring, export_own_hello, gettext_noop, GNUNET_GETOPT_OPTION_END, GNUNET_GETOPT_option_flag(), GNUNET_GETOPT_option_string(), GNUNET_OK, GNUNET_OS_project_data_gnunet(), GNUNET_PROGRAM_run(), import_hello, options, print_hellos, res, ret, and run().

Here is the call graph for this function:

Variable Documentation

◆ ret

int ret
static

Return code.

Definition at line 38 of file gnunet-hello.c.

Referenced by main(), and run().

◆ peerstore_handle

struct GNUNET_PEERSTORE_Handle* peerstore_handle
static

Definition at line 43 of file gnunet-hello.c.

Referenced by run(), and shutdown_task().

◆ iter_ctx

struct GNUNET_PEERSTORE_IterateContext* iter_ctx
static

PEERSTORE iteration context.

Definition at line 48 of file gnunet-hello.c.

Referenced by hello_iter(), run(), and shutdown_task().

◆ shc

HELLO store context handle.

Definition at line 53 of file gnunet-hello.c.

Referenced by GNUNET_sh2s(), hello_store_success(), run(), and shutdown_task().

◆ my_private_key

struct GNUNET_CRYPTO_EddsaPrivateKey my_private_key
static

Peer private key.

Definition at line 58 of file gnunet-hello.c.

Referenced by hello_iter(), and run().

◆ my_full_id

struct GNUNET_PeerIdentity my_full_id
static

Peer identity.

Definition at line 63 of file gnunet-hello.c.

Referenced by hello_iter(), and run().

◆ export_own_hello

int export_own_hello
static

HELLO export option -H.

Definition at line 68 of file gnunet-hello.c.

Referenced by hello_iter(), main(), and run().

◆ expirationstring

char* expirationstring
static

Optional expiration string -E.

Definition at line 73 of file gnunet-hello.c.

Referenced by hello_iter(), main(), parse_expiration(), and run().

◆ hello_validity

struct GNUNET_TIME_Relative hello_validity
static

Expiration time for exported hello.

Definition at line 78 of file gnunet-hello.c.

Referenced by hello_iter(), and run().

◆ binary_output

enum GNUNET_GenericReturnValue binary_output
static

HELLO export/import format option.

Definition at line 83 of file gnunet-hello.c.

Referenced by hello_iter(), and main().

◆ print_hellos

int print_hellos
static

Hello list option -D.

Definition at line 88 of file gnunet-hello.c.

Referenced by hello_iter(), main(), and run().

◆ import_hello

enum GNUNET_GenericReturnValue import_hello
static

HELLO import option -I.

Definition at line 93 of file gnunet-hello.c.

Referenced by main(), and run().