diff options
Diffstat (limited to 'src/identity/gnunet-identity.c')
-rw-r--r-- | src/identity/gnunet-identity.c | 68 |
1 files changed, 49 insertions, 19 deletions
diff --git a/src/identity/gnunet-identity.c b/src/identity/gnunet-identity.c index 8445a0ee5..fd73048c4 100644 --- a/src/identity/gnunet-identity.c +++ b/src/identity/gnunet-identity.c | |||
@@ -143,10 +143,14 @@ shutdown_task (void *cls) | |||
143 | * Test if we are finished yet. | 143 | * Test if we are finished yet. |
144 | */ | 144 | */ |
145 | static void | 145 | static void |
146 | test_finished () | 146 | test_finished (void) |
147 | { | 147 | { |
148 | if ((NULL == create_op) && (NULL == delete_op) && (NULL == set_op) && | 148 | if ( (NULL == create_op) && |
149 | (NULL == set_subsystem) && (! list) && (! monitor)) | 149 | (NULL == delete_op) && |
150 | (NULL == set_op) && | ||
151 | (NULL == set_subsystem) && | ||
152 | (! list) && | ||
153 | (! monitor)) | ||
150 | { | 154 | { |
151 | if (TIMEOUT_STATUS_CODE == global_ret) | 155 | if (TIMEOUT_STATUS_CODE == global_ret) |
152 | global_ret = 0; | 156 | global_ret = 0; |
@@ -162,7 +166,8 @@ test_finished () | |||
162 | * @param emsg NULL on success, otherwise an error message | 166 | * @param emsg NULL on success, otherwise an error message |
163 | */ | 167 | */ |
164 | static void | 168 | static void |
165 | delete_finished (void *cls, const char *emsg) | 169 | delete_finished (void *cls, |
170 | const char *emsg) | ||
166 | { | 171 | { |
167 | struct GNUNET_IDENTITY_Operation **op = cls; | 172 | struct GNUNET_IDENTITY_Operation **op = cls; |
168 | 173 | ||
@@ -190,7 +195,9 @@ create_finished (void *cls, | |||
190 | *op = NULL; | 195 | *op = NULL; |
191 | if (NULL == pk) | 196 | if (NULL == pk) |
192 | { | 197 | { |
193 | fprintf (stderr, _ ("Failed to create ego: %s\n"), emsg); | 198 | fprintf (stderr, |
199 | _ ("Failed to create ego: %s\n"), | ||
200 | emsg); | ||
194 | global_ret = 1; | 201 | global_ret = 1; |
195 | } | 202 | } |
196 | else if (verbose) | 203 | else if (verbose) |
@@ -280,16 +287,25 @@ print_ego (void *cls, | |||
280 | char *s; | 287 | char *s; |
281 | char *privs; | 288 | char *privs; |
282 | 289 | ||
283 | if ((NULL != set_ego) && (NULL != set_subsystem) && (NULL != ego) && | 290 | if ( (NULL != set_ego) && |
284 | (NULL != identifier) && (0 == strcmp (identifier, set_ego))) | 291 | (NULL != set_subsystem) && |
292 | (NULL != ego) && | ||
293 | (NULL != identifier) && | ||
294 | (0 == strcmp (identifier, set_ego))) | ||
285 | { | 295 | { |
286 | set_op = GNUNET_IDENTITY_set (sh, set_subsystem, ego, &set_done, NULL); | 296 | set_op = GNUNET_IDENTITY_set (sh, |
297 | set_subsystem, | ||
298 | ego, | ||
299 | &set_done, | ||
300 | NULL); | ||
287 | GNUNET_free (set_subsystem); | 301 | GNUNET_free (set_subsystem); |
288 | set_subsystem = NULL; | 302 | set_subsystem = NULL; |
289 | GNUNET_free (set_ego); | 303 | GNUNET_free (set_ego); |
290 | set_ego = NULL; | 304 | set_ego = NULL; |
291 | } | 305 | } |
292 | if ((NULL == ego) && (NULL != set_ego) && (NULL != set_subsystem)) | 306 | if ( (NULL == ego) && |
307 | (NULL != set_ego) && | ||
308 | (NULL != set_subsystem) ) | ||
293 | { | 309 | { |
294 | fprintf (stderr, | 310 | fprintf (stderr, |
295 | "Could not set ego to `%s' for subsystem `%s', ego not known\n", | 311 | "Could not set ego to `%s' for subsystem `%s', ego not known\n", |
@@ -308,9 +324,12 @@ print_ego (void *cls, | |||
308 | } | 324 | } |
309 | if (! (list | monitor)) | 325 | if (! (list | monitor)) |
310 | return; | 326 | return; |
311 | if ((NULL == ego) || (NULL == identifier)) | 327 | if ( (NULL == ego) || |
328 | (NULL == identifier) ) | ||
312 | return; | 329 | return; |
313 | if ((NULL != set_ego) && (0 != strcmp (identifier, set_ego))) | 330 | if ( (NULL != set_ego) && |
331 | (0 != strcmp (identifier, | ||
332 | set_ego)) ) | ||
314 | return; | 333 | return; |
315 | GNUNET_IDENTITY_ego_get_public_key (ego, &pk); | 334 | GNUNET_IDENTITY_ego_get_public_key (ego, &pk); |
316 | s = GNUNET_CRYPTO_ecdsa_public_key_to_string (&pk); | 335 | s = GNUNET_CRYPTO_ecdsa_public_key_to_string (&pk); |
@@ -358,18 +377,26 @@ run (void *cls, | |||
358 | return; | 377 | return; |
359 | } | 378 | } |
360 | sh = GNUNET_IDENTITY_connect (cfg, | 379 | sh = GNUNET_IDENTITY_connect (cfg, |
361 | (monitor | list) || (NULL != set_ego) || | 380 | (monitor | list) || |
381 | (NULL != set_ego) || | ||
362 | (NULL != set_subsystem) | 382 | (NULL != set_subsystem) |
363 | ? &print_ego | 383 | ? &print_ego |
364 | : NULL, | 384 | : NULL, |
365 | NULL); | 385 | NULL); |
366 | if (NULL != delete_ego) | 386 | if (NULL != delete_ego) |
367 | delete_op = | 387 | delete_op = |
368 | GNUNET_IDENTITY_delete (sh, delete_ego, &delete_finished, &delete_op); | 388 | GNUNET_IDENTITY_delete (sh, |
389 | delete_ego, | ||
390 | &delete_finished, | ||
391 | &delete_op); | ||
369 | if (NULL != create_ego) | 392 | if (NULL != create_ego) |
370 | create_op = | 393 | create_op = |
371 | GNUNET_IDENTITY_create (sh, create_ego, &create_finished, &create_op); | 394 | GNUNET_IDENTITY_create (sh, |
372 | GNUNET_SCHEDULER_add_shutdown (&shutdown_task, NULL); | 395 | create_ego, |
396 | &create_finished, | ||
397 | &create_op); | ||
398 | GNUNET_SCHEDULER_add_shutdown (&shutdown_task, | ||
399 | NULL); | ||
373 | test_finished (); | 400 | test_finished (); |
374 | } | 401 | } |
375 | 402 | ||
@@ -384,8 +411,8 @@ run (void *cls, | |||
384 | int | 411 | int |
385 | main (int argc, char *const *argv) | 412 | main (int argc, char *const *argv) |
386 | { | 413 | { |
387 | struct GNUNET_GETOPT_CommandLineOption options[] = | 414 | struct GNUNET_GETOPT_CommandLineOption options[] = { |
388 | { GNUNET_GETOPT_option_string ('C', | 415 | GNUNET_GETOPT_option_string ('C', |
389 | "create", | 416 | "create", |
390 | "NAME", | 417 | "NAME", |
391 | gettext_noop ("create ego NAME"), | 418 | gettext_noop ("create ego NAME"), |
@@ -426,10 +453,13 @@ main (int argc, char *const *argv) | |||
426 | "set default identity to EGO for a subsystem SUBSYSTEM (use together with -e)"), | 453 | "set default identity to EGO for a subsystem SUBSYSTEM (use together with -e)"), |
427 | &set_subsystem), | 454 | &set_subsystem), |
428 | GNUNET_GETOPT_option_verbose (&verbose), | 455 | GNUNET_GETOPT_option_verbose (&verbose), |
429 | GNUNET_GETOPT_OPTION_END }; | 456 | GNUNET_GETOPT_OPTION_END |
457 | }; | ||
430 | int res; | 458 | int res; |
431 | 459 | ||
432 | if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv)) | 460 | if (GNUNET_OK != |
461 | GNUNET_STRINGS_get_utf8_args (argc, argv, | ||
462 | &argc, &argv)) | ||
433 | return 4; | 463 | return 4; |
434 | global_ret = TIMEOUT_STATUS_CODE; /* timeout */ | 464 | global_ret = TIMEOUT_STATUS_CODE; /* timeout */ |
435 | res = GNUNET_PROGRAM_run (argc, | 465 | res = GNUNET_PROGRAM_run (argc, |