aboutsummaryrefslogtreecommitdiff
path: root/src/identity/gnunet-identity.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/identity/gnunet-identity.c')
-rw-r--r--src/identity/gnunet-identity.c68
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 */
145static void 145static void
146test_finished () 146test_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 */
164static void 168static void
165delete_finished (void *cls, const char *emsg) 169delete_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,
384int 411int
385main (int argc, char *const *argv) 412main (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,