X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Futil%2Ftest_connection_addressing.c;h=e900e2ed7b64577bc2b94d099506aabee5a6f66e;hb=555214089c7045298f23fea9e060ea931804e75f;hp=de11560d3306ff935d94869f2a63867f37384cfe;hpb=70486ed8cb9e5d7c64842a4721c8d106c01dccd6;p=oweals%2Fgnunet.git diff --git a/src/util/test_connection_addressing.c b/src/util/test_connection_addressing.c index de11560d3..e900e2ed7 100644 --- a/src/util/test_connection_addressing.c +++ b/src/util/test_connection_addressing.c @@ -40,7 +40,7 @@ static struct GNUNET_CONNECTION_Handle *lsock; static size_t sofar; -static struct GNUNET_NETWORK_Descriptor *ls; +static struct GNUNET_NETWORK_Handle *ls; @@ -49,23 +49,32 @@ static struct GNUNET_NETWORK_Descriptor *ls; * * @return NULL on error, otherwise the listen socket */ -static struct GNUNET_NETWORK_Descriptor * +static struct GNUNET_NETWORK_Handle * open_listen_socket () { const static int on = 1; struct sockaddr_in sa; - struct GNUNET_NETWORK_Descriptor *desc; + struct GNUNET_NETWORK_Handle *desc; memset (&sa, 0, sizeof (sa)); +#if HAVE_SOCKADDR_IN_SIN_LEN + sa.sin_len = sizeof (sa); +#endif + sa.sin_family = AF_INET; sa.sin_port = htons (PORT); - desc = GNUNET_NETWORK_socket_socket (AF_INET, SOCK_STREAM, 0); + desc = GNUNET_NETWORK_socket_create (AF_INET, SOCK_STREAM, 0); GNUNET_assert (desc != 0); - if (GNUNET_NETWORK_socket_setsockopt (desc, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on)) < 0) + if (GNUNET_NETWORK_socket_setsockopt + (desc, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on)) != GNUNET_OK) GNUNET_log (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, "setsockopt"); - GNUNET_assert (GNUNET_NETWORK_socket_bind (desc, - (const struct sockaddr*) &sa, - sizeof (sa)) >= 0); + if (GNUNET_OK != GNUNET_NETWORK_socket_bind (desc, + (const struct sockaddr *) &sa, sizeof(sa))) + { + GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, + "bind"); + GNUNET_assert (0); + } GNUNET_NETWORK_socket_listen (desc, 5); return desc; } @@ -85,15 +94,15 @@ receive_check (void *cls, if (sofar < 12) { GNUNET_CONNECTION_receive (asock, - 1024, - GNUNET_TIME_relative_multiply - (GNUNET_TIME_UNIT_SECONDS, 5), &receive_check, - cls); + 1024, + GNUNET_TIME_relative_multiply + (GNUNET_TIME_UNIT_SECONDS, 5), + &receive_check, cls); } else { *ok = 0; - GNUNET_CONNECTION_destroy (asock); + GNUNET_CONNECTION_destroy (asock, GNUNET_YES); } } @@ -107,7 +116,7 @@ run_accept (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) struct sockaddr_in expect; asock = GNUNET_CONNECTION_create_from_accept (tc->sched, - NULL, NULL, ls, 1024); + NULL, NULL, ls, 1024); GNUNET_assert (asock != NULL); GNUNET_assert (GNUNET_YES == GNUNET_CONNECTION_check (asock)); GNUNET_assert (GNUNET_OK == @@ -115,16 +124,20 @@ run_accept (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) GNUNET_assert (alen == sizeof (struct sockaddr_in)); v4 = addr; memset (&expect, 0, sizeof (expect)); +#if HAVE_SOCKADDR_IN_SIN_LEN + expect.sin_len = sizeof (expect); +#endif expect.sin_family = AF_INET; expect.sin_port = v4->sin_port; expect.sin_addr.s_addr = htonl (INADDR_LOOPBACK); GNUNET_assert (0 == memcmp (&expect, v4, alen)); GNUNET_free (addr); - GNUNET_CONNECTION_destroy (lsock); + GNUNET_CONNECTION_destroy (lsock, GNUNET_YES); GNUNET_CONNECTION_receive (asock, - 1024, - GNUNET_TIME_relative_multiply - (GNUNET_TIME_UNIT_SECONDS, 5), &receive_check, cls); + 1024, + GNUNET_TIME_relative_multiply + (GNUNET_TIME_UNIT_SECONDS, 5), &receive_check, + cls); } static size_t @@ -143,27 +156,26 @@ task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) lsock = GNUNET_CONNECTION_create_from_existing (tc->sched, ls, 0); GNUNET_assert (lsock != NULL); +#if HAVE_SOCKADDR_IN_SIN_LEN + v4.sin_len = sizeof (v4); +#endif v4.sin_family = AF_INET; v4.sin_port = htons (PORT); v4.sin_addr.s_addr = htonl (INADDR_LOOPBACK); csock = GNUNET_CONNECTION_create_from_sockaddr (tc->sched, - AF_INET, - (const struct sockaddr - *) &v4, sizeof (v4), - 1024); + AF_INET, + (const struct sockaddr + *) &v4, sizeof (v4), 1024); GNUNET_assert (csock != NULL); GNUNET_assert (NULL != GNUNET_CONNECTION_notify_transmit_ready (csock, - 12, - GNUNET_TIME_UNIT_SECONDS, - &make_hello, NULL)); - GNUNET_CONNECTION_destroy (csock); + 12, + GNUNET_TIME_UNIT_SECONDS, + &make_hello, NULL)); + GNUNET_CONNECTION_destroy (csock, GNUNET_YES); GNUNET_SCHEDULER_add_read_net (tc->sched, - GNUNET_NO, - GNUNET_SCHEDULER_PRIORITY_HIGH, - GNUNET_SCHEDULER_NO_TASK, - GNUNET_TIME_UNIT_FOREVER_REL, - ls, &run_accept, cls); + GNUNET_TIME_UNIT_FOREVER_REL, + ls, &run_accept, cls); } @@ -188,13 +200,13 @@ main (int argc, char *argv[]) { int ret = 0; - GNUNET_log_setup ("test_connection_addressing", + GNUNET_log_setup ("test_connection_addressing", #if VERBOSE - "DEBUG", + "DEBUG", #else - "WARNING", + "WARNING", #endif - NULL); + NULL); ret += check (); return ret; }