X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Futil%2Ftest_server_with_client.c;h=b28b3b69f0705f0c4e82981bca9191e767194b2d;hb=555214089c7045298f23fea9e060ea931804e75f;hp=508c505b1fba79f174d26d10837d02add2379678;hpb=652e89b59ed2207c2c12172fdabcd6e659995c81;p=oweals%2Fgnunet.git diff --git a/src/util/test_server_with_client.c b/src/util/test_server_with_client.c index 508c505b1..b28b3b69f 100644 --- a/src/util/test_server_with_client.c +++ b/src/util/test_server_with_client.c @@ -87,16 +87,13 @@ recv_cb (void *cls, case 2: ok++; GNUNET_SCHEDULER_add_delayed (sched, - GNUNET_YES, - GNUNET_SCHEDULER_PRIORITY_KEEP, - GNUNET_SCHEDULER_NO_TASK, GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, 50), &send_done, argclient); break; case 4: ok++; - GNUNET_CLIENT_disconnect (client); + GNUNET_CLIENT_disconnect (client, GNUNET_YES); GNUNET_SERVER_receive_done (argclient, GNUNET_OK); break; default: @@ -106,6 +103,16 @@ recv_cb (void *cls, } +static void +clean_up (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) +{ + GNUNET_SERVER_destroy (server); + server = NULL; + GNUNET_CONFIGURATION_destroy (cfg); + cfg = NULL; +} + + /** * Functions with this signature are called whenever a client * is disconnected on the network level. @@ -116,10 +123,12 @@ recv_cb (void *cls, static void notify_disconnect (void *cls, struct GNUNET_SERVER_Client *client) { + if (client == NULL) + return; GNUNET_assert (ok == 5); ok = 0; - GNUNET_SCHEDULER_shutdown (sched); - GNUNET_CONFIGURATION_destroy (cfg); + GNUNET_SCHEDULER_add_now (sched, + &clean_up, NULL); } @@ -151,7 +160,13 @@ static void task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { struct sockaddr_in sa; + struct sockaddr * sap[2]; + socklen_t slens[2]; + sap[0] = (struct sockaddr*) &sa; + slens[0] = sizeof (sa); + sap[1] = NULL; + slens[1] = 0; sched = tc->sched; memset (&sa, 0, sizeof (sa)); #if HAVE_SOCKADDR_IN_SIN_LEN @@ -162,8 +177,8 @@ task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) server = GNUNET_SERVER_create (tc->sched, NULL, NULL, - (const struct sockaddr *) &sa, - sizeof (sa), + sap, + slens, 1024, GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, 250),