From a4bc42a33fa78f6d83d5dd34d2138f9b31c41b65 Mon Sep 17 00:00:00 2001 From: "Nathan S. Evans" Date: Tue, 29 Jun 2010 13:25:57 +0000 Subject: [PATCH] fix for null hostkey callback on daemons_start call --- src/testing/testing_group.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) 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 -- 2.25.1