From: Sree Harsha Totakura Date: Tue, 30 Apr 2013 13:10:15 +0000 (+0000) Subject: - have shutdown task X-Git-Tag: initial-import-from-subversion-38251~9147 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=4f8eb94dac19105be6420dcff8bf23bbc72b0a82;p=oweals%2Fgnunet.git - have shutdown task --- diff --git a/src/set/gnunet-set-bug.c b/src/set/gnunet-set-bug.c index 7cb38ceef..2a248e3f7 100644 --- a/src/set/gnunet-set-bug.c +++ b/src/set/gnunet-set-bug.c @@ -36,7 +36,16 @@ static struct GNUNET_STREAM_ListenSocket *listen_socket; static struct GNUNET_STREAM_Socket *s1; +static struct GNUNET_STREAM_Socket *s2; +static void +do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) +{ + if (NULL != s2) + GNUNET_STREAM_close (s2); + GNUNET_STREAM_close (s1); + GNUNET_STREAM_listen_close (listen_socket); +} static size_t stream_data_processor (void *cls, @@ -53,7 +62,7 @@ listen_cb (void *cls, const struct GNUNET_PeerIdentity *initiator) { - if (NULL == socket) + if (NULL == (s2 = socket)) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "socket listen failed\n"); return GNUNET_NO; @@ -63,7 +72,7 @@ listen_cb (void *cls, GNUNET_assert (NULL != socket); GNUNET_assert (0 == memcmp (initiator, &local_id, sizeof (*initiator))); GNUNET_STREAM_read (socket, GNUNET_TIME_UNIT_FOREVER_REL, - stream_data_processor, NULL); + &stream_data_processor, NULL); return GNUNET_YES; } @@ -90,16 +99,18 @@ run (void *cls, char *const *args, listen_socket = GNUNET_STREAM_listen (cfg, GNUNET_APPLICATION_TYPE_SET, - listen_cb, + &listen_cb, NULL, NULL); s1 = GNUNET_STREAM_open (cfg, &local_id, GNUNET_APPLICATION_TYPE_SET, - open_cb, + &open_cb, NULL, NULL); + GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, + &do_shutdown, NULL); }