Merge branch 'master' of ssh://gnunet.org/gnunet
[oweals/gnunet.git] / src / util / network.c
index ba213b412ab5a0192f93c907fbba9fbbeba3c4bf..c82caafd9aef4a914c6a77d634fc3d8d842de153 100644 (file)
@@ -28,9 +28,9 @@
 #include "gnunet_util_lib.h"
 #include "disk.h"
 
-#define LOG(kind,...) GNUNET_log_from (kind, "util", __VA_ARGS__)
-#define LOG_STRERROR_FILE(kind,syscall,filename) GNUNET_log_from_strerror_file (kind, "util", syscall, filename)
-#define LOG_STRERROR(kind,syscall) GNUNET_log_from_strerror (kind, "util", syscall)
+#define LOG(kind,...) GNUNET_log_from (kind, "util-network", __VA_ARGS__)
+#define LOG_STRERROR_FILE(kind,syscall,filename) GNUNET_log_from_strerror_file (kind, "util-network", syscall, filename)
+#define LOG_STRERROR(kind,syscall) GNUNET_log_from_strerror (kind, "util-network", syscall)
 
 #define DEBUG_NETWORK GNUNET_EXTRA_LOGGING
 
@@ -201,7 +201,7 @@ GNUNET_NETWORK_unix_precheck (const struct sockaddr_un *un)
 
 
 #ifndef FD_COPY
-#define FD_COPY(s, d) (memcpy ((d), (s), sizeof (fd_set)))
+#define FD_COPY(s, d) do { GNUNET_memcpy ((d), (s), sizeof (fd_set)); } while (0)
 #endif
 
 
@@ -518,11 +518,10 @@ GNUNET_NETWORK_socket_bind (struct GNUNET_NETWORK_Handle *desc,
     /* set permissions of newly created non-abstract UNIX domain socket to
        "user-only"; applications can choose to relax this later */
     mode_t old_mask = 0; /* assigned to make compiler happy */
-    const struct sockaddr_un *un;
+    const struct sockaddr_un *un = (const struct sockaddr_un *) address;
     int not_abstract = 0;
 
     if ((AF_UNIX == address->sa_family)
-        && (NULL != (un = (const struct sockaddr_un *) address)->sun_path)
         && ('\0' != un->sun_path[0]) ) /* Not an abstract socket */
       not_abstract = 1;
     if (not_abstract)
@@ -546,7 +545,7 @@ GNUNET_NETWORK_socket_bind (struct GNUNET_NETWORK_Handle *desc,
     return GNUNET_SYSERR;
 #ifndef MINGW
   desc->addr = GNUNET_malloc (address_len);
-  memcpy (desc->addr, address, address_len);
+  GNUNET_memcpy (desc->addr, address, address_len);
   desc->addrlen = address_len;
 #endif
   return GNUNET_OK;
@@ -580,13 +579,12 @@ GNUNET_NETWORK_socket_close (struct GNUNET_NETWORK_Handle *desc)
   ret = close (desc->fd);
 #endif
 #ifndef WINDOWS
-  const struct sockaddr_un *un;
+  const struct sockaddr_un *un = (const struct sockaddr_un *) desc->addr;
 
   /* Cleanup the UNIX domain socket and its parent directories in case of non
      abstract sockets */
   if ( (AF_UNIX == desc->af) &&
        (NULL != desc->addr) &&
-       (NULL != (un = (const struct sockaddr_un *) desc->addr)->sun_path) &&
        ('\0' != un->sun_path[0]) )
   {
     char *dirname = GNUNET_strndup (un->sun_path,
@@ -772,7 +770,7 @@ GNUNET_NETWORK_socket_listen (const struct GNUNET_NETWORK_Handle *desc,
  * How much data is available to be read on this descriptor?
  *
  * @param desc socket
- * @returns #GNUNET_NO if no data is available, or on error!
+ * @returns #GNUNET_SYSERR if no data is available, or on error!
  */
 ssize_t
 GNUNET_NETWORK_socket_recvfrom_amount (const struct GNUNET_NETWORK_Handle *desc)
@@ -786,9 +784,9 @@ GNUNET_NETWORK_socket_recvfrom_amount (const struct GNUNET_NETWORK_Handle *desc)
   error = ioctl (desc->fd,
                  FIONREAD,
                  &pending);
-  if (error == 0)
+  if (0 == error)
     return (ssize_t) pending;
-  return GNUNET_NO;
+  return GNUNET_SYSERR;
 #else
   u_long pending;
 
@@ -797,7 +795,7 @@ GNUNET_NETWORK_socket_recvfrom_amount (const struct GNUNET_NETWORK_Handle *desc)
                        &pending);
   if (error != SOCKET_ERROR)
     return (ssize_t) pending;
-  return GNUNET_NO;
+  return GNUNET_SYSERR;
 #endif
 }
 
@@ -1210,7 +1208,7 @@ GNUNET_NETWORK_fdset_copy (struct GNUNET_NETWORK_FDSet *to,
     GNUNET_array_grow (to->handles,
                        to->handles_size,
                        from->handles_pos * 2);
-  memcpy (to->handles,
+  GNUNET_memcpy (to->handles,
           from->handles,
           from->handles_pos * sizeof (struct GNUNET_NETWORK_Handle *));
   to->handles_pos = from->handles_pos;