fix sun_len issue (#4816) by adding test and fixing typo
authorChristian Grothoff <christian@grothoff.org>
Tue, 21 Feb 2017 19:20:33 +0000 (20:20 +0100)
committerChristian Grothoff <christian@grothoff.org>
Tue, 21 Feb 2017 19:20:33 +0000 (20:20 +0100)
configure.ac
src/arm/gnunet-service-arm.c
src/transport/plugin_transport_tcp.c
src/transport/plugin_transport_unix.c
src/util/client.c
src/util/connection.c
src/util/service.c
src/util/service_new.c
src/util/test_server_with_client_unix.c

index b31d0a6c795bb02c1f44fa1e873713262d5053db..7f9cc219711bfce08ce473d3e42d36019e20d810 100644 (file)
@@ -1032,6 +1032,16 @@ AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
       #include <netinet/in.h>
    ])
 
+AC_CHECK_MEMBER([struct sockaddr_un.sun_len],
+   [ AC_DEFINE(HAVE_SOCKADDR_UN_SUN_LEN, 1, [Do we have sockaddr_un.sun_len?])
+   ],
+   [],
+   [
+      #include <sys/types.h>
+      #include <sys/socket.h>
+      #include <sys/un.h>
+   ])
+
 
 
 # Checks for library functions.
index 7af3659a47f4ee2756c331a96c4d303824819a9c..4f3e964e3183e957f28fe5911ebf17153954afdd 100644 (file)
@@ -290,7 +290,7 @@ add_unixpath (struct sockaddr **saddrs,
   if (GNUNET_YES == abstract)
     un->sun_path[0] = '\0';
 #endif
-#if HAVE_SOCKADDR_IN_SIN_LEN
+#if HAVE_SOCKADDR_UN_SUN_LEN
   un->sun_len = (u_char) sizeof (struct sockaddr_un);
 #endif
   *saddrs = (struct sockaddr *) un;
index 4ed5b38f7747c2f44ab42271288e3e61f306449b..34bbd00e09bea1bebb138d93adaa141b6cce7d23 100644 (file)
@@ -549,7 +549,7 @@ add_unixpath (struct sockaddr **saddrs,
   if (GNUNET_YES == abstract)
     un->sun_path[0] = '\0';
 #endif
-#if HAVE_SOCKADDR_IN_SIN_LEN
+#if HAVE_SOCKADDR_UN_SUN_LEN
   un->sun_len = (u_char) sizeof (struct sockaddr_un);
 #endif
   *saddrs = (struct sockaddr *) un;
index 49a5e89ed1b2b16011d241f4c1acfea6206d60ab..6bcb7290f2aa975c40e57f11a1de12ef3240fe19 100644 (file)
@@ -566,7 +566,7 @@ unix_address_to_sockaddr (const char *unixpath,
   GNUNET_memcpy (un->sun_path, unixpath, slen);
   un->sun_path[slen] = '\0';
   slen = sizeof (struct sockaddr_un);
-#if HAVE_SOCKADDR_IN_SIN_LEN
+#if HAVE_SOCKADDR_UN_SUN_LEN
   un->sun_len = (u_char) slen;
 #endif
   (*sock_len) = slen;
@@ -1229,7 +1229,7 @@ unix_plugin_select_read (void *cls)
 {
   struct Plugin *plugin = cls;
   const struct GNUNET_SCHEDULER_TaskContext *tc;
-  
+
   plugin->read_task = NULL;
   tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_READ_READY))
@@ -1252,7 +1252,7 @@ unix_plugin_select_write (void *cls)
 {
   struct Plugin *plugin = cls;
   const struct GNUNET_SCHEDULER_TaskContext *tc;
-  
+
   plugin->write_task = NULL;
   tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_WRITE_READY))
index 06f6ebc329676c47342740b9d3794b5003c86801..a5e04d7b27a29beac4bc9389d0ba9433e2991455 100644 (file)
@@ -491,8 +491,8 @@ try_unixpath (const char *service_name,
         s_un.sun_path[0] = '\0';
     }
 #endif
-#if HAVE_SOCKADDR_IN_SIN_LEN
-    un.sun_len = (u_char) sizeof (struct sockaddr_un);
+#if HAVE_SOCKADDR_UN_SUN_LEN
+    s_un.sun_len = (u_char) sizeof (struct sockaddr_un);
 #endif
     sock = GNUNET_NETWORK_socket_create (AF_UNIX,
                                          SOCK_STREAM,
index 6d30704150a304fd32c1a7bb7e49e56e98896e7a..02dd9f9911fb94804ea443a13619d33e46eb07af 100644 (file)
@@ -902,7 +902,7 @@ GNUNET_CONNECTION_create_from_connect_to_unixpath (const struct GNUNET_CONFIGURA
       un->sun_path[0] = '\0';
   }
 #endif
-#if HAVE_SOCKADDR_IN_SIN_LEN
+#if HAVE_SOCKADDR_UN_SUN_LEN
   un->sun_len = (u_char) sizeof (struct sockaddr_un);
 #endif
   connection = GNUNET_new (struct GNUNET_CONNECTION_Handle);
@@ -1012,7 +1012,7 @@ GNUNET_CONNECTION_create_from_sockaddr (int af_family,
     return NULL;
   }
   return GNUNET_CONNECTION_connect_socket (s,
-                                          serv_addr, 
+                                          serv_addr,
                                           addrlen);
 }
 
index 3beb4a085b601528c371fe2b3ed82203b6a0d05d..11128425deaa639d00dac6146433b3afec0a3db6 100644 (file)
@@ -481,7 +481,7 @@ add_unixpath (struct sockaddr **saddrs,
   if (GNUNET_YES == abstract)
     un->sun_path[0] = '\0';
 #endif
-#if HAVE_SOCKADDR_IN_SIN_LEN
+#if HAVE_SOCKADDR_UN_SUN_LEN
   un->sun_len = (u_char) sizeof (struct sockaddr_un);
 #endif
   *saddrs = (struct sockaddr *) un;
index 00d05dacc31c66cce121d198dc7701ace11e0d93..90829c08c1d1a903d26e85384266015cd5a4d181 100644 (file)
@@ -519,7 +519,7 @@ add_unixpath (struct sockaddr **saddrs,
   if (GNUNET_YES == abstract)
     un->sun_path[0] = '\0';
 #endif
-#if HAVE_SOCKADDR_IN_SIN_LEN
+#if HAVE_SOCKADDR_UN_SUN_LEN
   un->sun_len = (u_char) sizeof (struct sockaddr_un);
 #endif
   *saddrs = (struct sockaddr *) un;
index d240f1a88a751d39d2618595a6c26bd463a7e38f..8fabbe210f91abe07c767589af10158a0a3604e4 100644 (file)
@@ -123,7 +123,7 @@ task (void *cls)
   memset (&un, 0, sizeof (un));
   un.sun_family = AF_UNIX;
   strncpy(un.sun_path, unixpath, sizeof (un.sun_path) - 1);
-#if HAVE_SOCKADDR_IN_SIN_LEN
+#if HAVE_SOCKADDR_UN_SUN_LEN
   un.sun_len = (u_char) sizeof (un);
 #endif