diff options
author | LRN <lrn1986@gmail.com> | 2013-03-20 18:50:18 +0000 |
---|---|---|
committer | LRN <lrn1986@gmail.com> | 2013-03-20 18:50:18 +0000 |
commit | 346748a3a55e197fe206e87b0520cef85ab9fda3 (patch) | |
tree | 37bc351cba1af84ee12e8d5dcd6d596f0456da3f /src/arm/gnunet-arm.c | |
parent | 41646c7ce6e3d1711beb4b95da08afbd5b79d097 (diff) | |
download | gnunet-346748a3a55e197fe206e87b0520cef85ab9fda3.tar.gz gnunet-346748a3a55e197fe206e87b0520cef85ab9fda3.zip |
Simplify ARM alloc/connect
Diffstat (limited to 'src/arm/gnunet-arm.c')
-rw-r--r-- | src/arm/gnunet-arm.c | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/src/arm/gnunet-arm.c b/src/arm/gnunet-arm.c index 095d60e36..3d94fed80 100644 --- a/src/arm/gnunet-arm.c +++ b/src/arm/gnunet-arm.c | |||
@@ -179,7 +179,7 @@ static void | |||
179 | shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 179 | shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
180 | { | 180 | { |
181 | GNUNET_ARM_disconnect_and_free (h); | 181 | GNUNET_ARM_disconnect_and_free (h); |
182 | GNUNET_ARM_monitor_disconnect (m); | 182 | GNUNET_ARM_monitor_disconnect_and_free (m); |
183 | h = NULL; | 183 | h = NULL; |
184 | m = NULL; | 184 | m = NULL; |
185 | if ((end == GNUNET_YES) && (delete == GNUNET_YES)) | 185 | if ((end == GNUNET_YES) && (delete == GNUNET_YES)) |
@@ -246,14 +246,15 @@ static void action_loop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *t | |||
246 | * | 246 | * |
247 | * @param cls closure | 247 | * @param cls closure |
248 | * @param arm handle to the ARM connection | 248 | * @param arm handle to the ARM connection |
249 | * @param connected GNUNET_YES if connected, GNUNET_NO if disconnected | 249 | * @param connected GNUNET_YES if connected, GNUNET_NO if disconnected, |
250 | * GNUNET_SYSERR on error. | ||
250 | * @param error GNUNET_YES if we encountered a permanent error, and there | 251 | * @param error GNUNET_YES if we encountered a permanent error, and there |
251 | * will be no re-connection. | 252 | * will be no re-connection. |
252 | */ | 253 | */ |
253 | static void | 254 | static void |
254 | conn_status (void *cls, struct GNUNET_ARM_Handle *arm, unsigned char connected, unsigned char error) | 255 | conn_status (void *cls, struct GNUNET_ARM_Handle *arm, char connected) |
255 | { | 256 | { |
256 | if (GNUNET_YES == error) | 257 | if (GNUNET_SYSERR == connected) |
257 | { | 258 | { |
258 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | 259 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
259 | _("Fatal error initializing ARM API.\n")); | 260 | _("Fatal error initializing ARM API.\n")); |
@@ -575,13 +576,22 @@ run (void *cls, char *const *args, const char *cfgfile, | |||
575 | else | 576 | else |
576 | GNUNET_free (armconfig); | 577 | GNUNET_free (armconfig); |
577 | } | 578 | } |
578 | h = GNUNET_ARM_alloc (cfg); | 579 | h = GNUNET_ARM_connect (cfg, conn_status, NULL); |
579 | m = GNUNET_ARM_monitor_alloc (cfg); | 580 | if (NULL != h) |
580 | GNUNET_ARM_connect (h, conn_status, NULL); | 581 | { |
581 | GNUNET_ARM_monitor (m, srv_status, NULL); | 582 | m = GNUNET_ARM_monitor (cfg, srv_status, NULL); |
582 | GNUNET_SCHEDULER_add_now (action_loop, NULL); | 583 | if (NULL != m) |
583 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, | 584 | { |
584 | shutdown_task, NULL); | 585 | GNUNET_SCHEDULER_add_now (action_loop, NULL); |
586 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, | ||
587 | shutdown_task, NULL); | ||
588 | } | ||
589 | else | ||
590 | { | ||
591 | GNUNET_ARM_disconnect_and_free (h); | ||
592 | h = NULL; | ||
593 | } | ||
594 | } | ||
585 | } | 595 | } |
586 | 596 | ||
587 | 597 | ||