From: Nathan S. Evans Date: Tue, 29 Jun 2010 13:25:57 +0000 (+0000) Subject: fix for null hostkey callback on daemons_start call X-Git-Tag: initial-import-from-subversion-38251~21131 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=a4bc42a33fa78f6d83d5dd34d2138f9b31c41b65;p=oweals%2Fgnunet.git fix for null hostkey callback on daemons_start call --- diff --git a/src/testing/testing_group.c b/src/testing/testing_group.c index c76f3b54d..ac4a60dad 100644 --- a/src/testing/testing_group.c +++ b/src/testing/testing_group.c @@ -365,6 +365,11 @@ struct GNUNET_TESTING_PeerGroup * How many peers are being started right now? */ unsigned int starting; + + /** + * How many peers have already been started? + */ + unsigned int started; }; struct UpdateContext @@ -2850,7 +2855,14 @@ static void internal_hostkey_callback (void *cls, { struct InternalStartContext *internal_context = cls; internal_context->peer->pg->starting--; - internal_context->hostkey_callback(internal_context->hostkey_cls, id, d, emsg); + internal_context->peer->pg->started++; + if (internal_context->hostkey_callback != NULL) + internal_context->hostkey_callback(internal_context->hostkey_cls, id, d, emsg); + else if (internal_context->peer->pg->started == internal_context->peer->pg->total) + { + internal_context->peer->pg->started = 0; /* Internal startup may use this counter! */ + GNUNET_TESTING_daemons_continue_startup(internal_context->peer->pg); + } } /** @@ -2871,7 +2883,8 @@ static void internal_startup_callback (void *cls, { struct InternalStartContext *internal_context = cls; internal_context->peer->pg->starting--; - internal_context->start_cb(internal_context->start_cb_cls, id, cfg, d, emsg); + if (internal_context->start_cb != NULL) + internal_context->start_cb(internal_context->start_cb_cls, id, cfg, d, emsg); } static void