From: Sree Harsha Totakura Date: Thu, 21 Jun 2012 10:47:41 +0000 (+0000) Subject: -stream listen timeout option X-Git-Tag: initial-import-from-subversion-38251~12903 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=cbe53564d0bb4b42d5549854c6f16cc1b7781257;p=oweals%2Fgnunet.git -stream listen timeout option --- diff --git a/src/include/gnunet_stream_lib.h b/src/include/gnunet_stream_lib.h index 282372483..c8a207d59 100644 --- a/src/include/gnunet_stream_lib.h +++ b/src/include/gnunet_stream_lib.h @@ -109,7 +109,12 @@ enum GNUNET_STREAM_Option * Option to set the write sequence number. Takes a uint32_t as parameter * to set the value of the write sequence number */ - GNUNET_STREAM_OPTION_TESTING_SET_WRITE_SEQUENCE_NUMBER + GNUNET_STREAM_OPTION_TESTING_SET_WRITE_SEQUENCE_NUMBER, + + /** + * Listen socket timeout in milliseconds + */ + GNUNET_STREAM_OPTION_LISTEN_TIMEOUT }; diff --git a/src/stream/stream_api.c b/src/stream/stream_api.c index e27f4df1f..cd89a1de3 100644 --- a/src/stream/stream_api.c +++ b/src/stream/stream_api.c @@ -2936,6 +2936,9 @@ GNUNET_STREAM_open (const struct GNUNET_CONFIGURATION_Handle *cfg, socket->testing_set_write_sequence_number_value = va_arg (vargs, uint32_t); break; + case GNUNET_STREAM_OPTION_LISTEN_TIMEOUT: + GNUNET_break (0); /* Option irrelevant in STREAM_open */ + break; case GNUNET_STREAM_OPTION_END: break; } @@ -3178,6 +3181,7 @@ GNUNET_STREAM_listen (const struct GNUNET_CONFIGURATION_Handle *cfg, { /* FIXME: Add variable args for passing configration options? */ struct GNUNET_STREAM_ListenSocket *lsocket; + struct GNUNET_TIME_Relative listen_timeout; enum GNUNET_STREAM_Option option; va_list vargs; @@ -3196,6 +3200,7 @@ GNUNET_STREAM_listen (const struct GNUNET_CONFIGURATION_Handle *cfg, lsocket->retransmit_timeout = GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, default_timeout); lsocket->testing_active = GNUNET_NO; + listen_timeout = TIME_REL_SECS (60); /* A minute for listen timeout */ va_start (vargs, listen_cb_cls); do { option = va_arg (vargs, enum GNUNET_STREAM_Option); @@ -3210,6 +3215,10 @@ GNUNET_STREAM_listen (const struct GNUNET_CONFIGURATION_Handle *cfg, lsocket->testing_set_write_sequence_number_value = va_arg (vargs, uint32_t); break; + case GNUNET_STREAM_OPTION_LISTEN_TIMEOUT: + listen_timeout = GNUNET_TIME_relative_multiply + (GNUNET_TIME_UNIT_MILLISECONDS, va_arg (vargs, uint32_t)); + break; case GNUNET_STREAM_OPTION_END: break; } @@ -3223,7 +3232,7 @@ GNUNET_STREAM_listen (const struct GNUNET_CONFIGURATION_Handle *cfg, (uint32_t) lsocket->port, &lock_status_change_cb, lsocket); lsocket->lockmanager_acquire_timeout_task = - GNUNET_SCHEDULER_add_delayed (TIME_REL_SECS (20), + GNUNET_SCHEDULER_add_delayed (listen_timeout, &lockmanager_acquire_timeout, lsocket); return lsocket; } diff --git a/src/stream/test_stream_sequence_wraparound.c b/src/stream/test_stream_sequence_wraparound.c index b00de0b1c..ffd2eb5fb 100644 --- a/src/stream/test_stream_sequence_wraparound.c +++ b/src/stream/test_stream_sequence_wraparound.c @@ -353,12 +353,14 @@ run (void *cls, 10, /* App port */ &stream_listen_cb, NULL, + GNUNET_STREAM_OPTION_LISTEN_TIMEOUT, + 30 * 1000, GNUNET_STREAM_OPTION_END); GNUNET_assert (NULL != peer2_listen_socket); - GNUNET_SCHEDULER_add_delayed (TIME_REL_SECS(2), &stream_connect, &peer1); + GNUNET_SCHEDULER_add_delayed (TIME_REL_SECS(10), &stream_connect, &peer1); abort_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply - (GNUNET_TIME_UNIT_SECONDS, 60), &do_abort, + (GNUNET_TIME_UNIT_SECONDS, 100), &do_abort, NULL); }