gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r24641 - gnunet/src/testing


From: gnunet
Subject: [GNUnet-SVN] r24641 - gnunet/src/testing
Date: Wed, 31 Oct 2012 22:13:33 +0100

Author: harsha
Date: 2012-10-31 22:13:32 +0100 (Wed, 31 Oct 2012)
New Revision: 24641

Modified:
   gnunet/src/testing/testing.c
Log:
check all available addresses

Modified: gnunet/src/testing/testing.c
===================================================================
--- gnunet/src/testing/testing.c        2012-10-31 20:36:50 UTC (rev 24640)
+++ gnunet/src/testing/testing.c        2012-10-31 21:13:32 UTC (rev 24641)
@@ -363,6 +363,7 @@
   struct GNUNET_NETWORK_Handle *socket;
   struct addrinfo hint;
   struct addrinfo *ret;
+  struct addrinfo *ai;
   uint32_t *port_buckets;
   char *open_port_str;
   int bind_status;
@@ -409,19 +410,23 @@
       GNUNET_asprintf (&open_port_str, "%u", (unsigned int) open_port);
       ret = NULL;
       GNUNET_assert (0 == getaddrinfo (NULL, open_port_str, &hint, &ret));
-      GNUNET_free (open_port_str);  
-      socket = GNUNET_NETWORK_socket_create (ret->ai_family,
-                                             (GNUNET_YES == is_tcp) ?
-                                             SOCK_STREAM : SOCK_DGRAM,
-                                             0);
-      GNUNET_assert (NULL != socket);
-      bind_status = GNUNET_NETWORK_socket_bind (socket,
-                                                ret->ai_addr,
-                                                ret->ai_addrlen);
+      GNUNET_free (open_port_str);
+      for (ai = ret; NULL != ai; ai = ai->ai_next)
+      {
+        socket = GNUNET_NETWORK_socket_create (ai->ai_family,
+                                               (GNUNET_YES == is_tcp) ?
+                                               SOCK_STREAM : SOCK_DGRAM,
+                                               0);
+        GNUNET_assert (NULL != socket);
+        bind_status = GNUNET_NETWORK_socket_bind (socket,
+                                                  ai->ai_addr,
+                                                  ai->ai_addrlen);
+        GNUNET_NETWORK_socket_close (socket);
+        if (GNUNET_OK != bind_status)
+          break;
+      }
+      port_buckets[index] |= (1U << pos); /* Set the port bit */
       freeaddrinfo (ret);
-      GNUNET_NETWORK_socket_close (socket);
-      socket = NULL;
-      port_buckets[index] |= (1U << pos); /* Set the port bit */
       if (GNUNET_OK == bind_status)
       {
         LOG (GNUNET_ERROR_TYPE_DEBUG,




reply via email to

[Prev in Thread] Current Thread [Next in Thread]