X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fstream%2Ftest_stream_sequence_wraparound.c;h=f231716614dfddafff3fc101ee6dff245f147279;hb=d0b4927e6ab7e8b9874dd7807055e77fb4c5163f;hp=ffd2eb5fb43d7d9612329c0c8e2429493dc8059b;hpb=cbe53564d0bb4b42d5549854c6f16cc1b7781257;p=oweals%2Fgnunet.git diff --git a/src/stream/test_stream_sequence_wraparound.c b/src/stream/test_stream_sequence_wraparound.c index ffd2eb5fb..f23171661 100644 --- a/src/stream/test_stream_sequence_wraparound.c +++ b/src/stream/test_stream_sequence_wraparound.c @@ -95,7 +95,8 @@ static int result; static void do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { - GNUNET_STREAM_close (peer1.socket); + if (NULL != peer1.socket) + GNUNET_STREAM_close (peer1.socket); if (NULL != peer2.socket) GNUNET_STREAM_close (peer2.socket); if (NULL != peer2_listen_socket) @@ -142,7 +143,7 @@ write_completion (void *cls, peer = (struct PeerData *) cls; GNUNET_assert (GNUNET_STREAM_OK == status); - GNUNET_assert (size < DATA_SIZE); + GNUNET_assert (size <= DATA_SIZE); peer->bytes_wrote += size; if (peer->bytes_wrote < DATA_SIZE) /* Have more data to send */ @@ -301,6 +302,14 @@ stream_listen_cb (void *cls, struct GNUNET_STREAM_Socket *socket, const struct GNUNET_PeerIdentity *initiator) { + if ((NULL == socket) || (NULL == initiator)) + { + GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Binding error\n"); + if (GNUNET_SCHEDULER_NO_TASK != abort_task) + GNUNET_SCHEDULER_cancel (abort_task); + abort_task = GNUNET_SCHEDULER_add_now (&do_abort, NULL); + return GNUNET_OK; + } GNUNET_assert (NULL != socket); GNUNET_assert (socket != peer1.socket); GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, @@ -313,28 +322,23 @@ stream_listen_cb (void *cls, /** - * Task for connecting the peer to stream as client - * - * @param cls PeerData - * @param tc the TaskContext + * Listen success callback; connects a peer to stream as client */ static void -stream_connect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) +stream_connect (void) { - struct PeerData *peer = cls; - - GNUNET_assert (&peer1 == peer); - /* Connect to stream */ - peer->socket = GNUNET_STREAM_open (config, - &self_id, /* Null for local peer? */ - 10, /* App port */ - &stream_open_cb, - &peer1, - GNUNET_STREAM_OPTION_TESTING_SET_WRITE_SEQUENCE_NUMBER, - UINT32_MAX - GNUNET_CRYPTO_random_u32 - (GNUNET_CRYPTO_QUALITY_WEAK, 64), - GNUNET_STREAM_OPTION_END); - GNUNET_assert (NULL != peer->socket); + peer1.socket = + GNUNET_STREAM_open (config, + &self_id, /* Null for local peer? */ + 10, /* App port */ + &stream_open_cb, + &peer1, + GNUNET_STREAM_OPTION_TESTING_SET_WRITE_SEQUENCE_NUMBER, + UINT32_MAX - GNUNET_CRYPTO_random_u32 + (GNUNET_CRYPTO_QUALITY_WEAK, 64), + GNUNET_STREAM_OPTION_MAX_PAYLOAD_SIZE, 500, + GNUNET_STREAM_OPTION_END); + GNUNET_assert (NULL != peer1.socket); } @@ -349,15 +353,17 @@ run (void *cls, config = cfg; self = peer; (void) GNUNET_TESTING_peer_get_identity (peer, &self_id); - peer2_listen_socket = GNUNET_STREAM_listen (config, - 10, /* App port */ - &stream_listen_cb, - NULL, - GNUNET_STREAM_OPTION_LISTEN_TIMEOUT, - 30 * 1000, - GNUNET_STREAM_OPTION_END); + peer2_listen_socket = + GNUNET_STREAM_listen (config, + 10, /* App port */ + &stream_listen_cb, + NULL, + GNUNET_STREAM_OPTION_LISTEN_TIMEOUT, + 60 * 1000, + GNUNET_STREAM_OPTION_SIGNAL_LISTEN_SUCCESS, + &stream_connect, + GNUNET_STREAM_OPTION_END); GNUNET_assert (NULL != peer2_listen_socket); - 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, 100), &do_abort,