diff options
Diffstat (limited to 'src/lib/util/program.c')
-rw-r--r-- | src/lib/util/program.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/lib/util/program.c b/src/lib/util/program.c index 21b616ee2..d492c9a07 100644 --- a/src/lib/util/program.c +++ b/src/lib/util/program.c | |||
@@ -415,5 +415,39 @@ GNUNET_PROGRAM_run (int argc, | |||
415 | GNUNET_NO); | 415 | GNUNET_NO); |
416 | } | 416 | } |
417 | 417 | ||
418 | /* A list of daemons to be launched when GNUNET_main() | ||
419 | * is called | ||
420 | */ | ||
421 | struct DaemonHandleList | ||
422 | { | ||
423 | /* DLL */ | ||
424 | struct DaemonHandleList *prev; | ||
425 | |||
426 | /* DLL */ | ||
427 | struct DaemonHandleList *next; | ||
428 | |||
429 | /* Program to launch */ | ||
430 | GNUNET_PROGRAM_Main d; | ||
431 | }; | ||
432 | |||
433 | /* The daemon list */ | ||
434 | static struct DaemonHandleList *hll_head = NULL; | ||
435 | |||
436 | /* The daemon list */ | ||
437 | static struct DaemonHandleList *hll_tail = NULL; | ||
438 | |||
439 | enum GNUNET_GenericReturnValue | ||
440 | GNUNET_DAEMON_register (const char *daemon_name, | ||
441 | const char *daemon_help, | ||
442 | GNUNET_PROGRAM_Main task) | ||
443 | { | ||
444 | struct DaemonHandleList *hle; | ||
445 | |||
446 | hle = GNUNET_new (struct DaemonHandleList); | ||
447 | hle->d = task; | ||
448 | GNUNET_CONTAINER_DLL_insert (hll_head, hll_tail, hle); | ||
449 | return GNUNET_OK; | ||
450 | } | ||
451 | |||
418 | 452 | ||
419 | /* end of program.c */ | 453 | /* end of program.c */ |