add units to time, use configuration time api where appropriate, fixing Mantis #1875
[oweals/gnunet.git] / src / util / network.c
index 3be21599eef8302db8c8599e5d66787a50224153..180adc16412aa701d55de0228cb8d9327f79c9fb 100644 (file)
 #include "disk.h"
 #include "gnunet_container_lib.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 DEBUG_NETWORK GNUNET_EXTRA_LOGGING
 
 #define DEBUG_W32_CYCLES GNUNET_EXTRA_LOGGING
@@ -88,7 +92,7 @@ socket_set_blocking (struct GNUNET_NETWORK_Handle *fd, int doBlock)
 
   {
     SetErrnoFromWinsockError (WSAGetLastError ());
-    GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "ioctlsocket");
+    LOG_STRERROR (GNUNET_ERROR_TYPE_WARNING, "ioctlsocket");
     return GNUNET_SYSERR;
   }
   return GNUNET_OK;
@@ -100,7 +104,7 @@ socket_set_blocking (struct GNUNET_NETWORK_Handle *fd, int doBlock)
   if (flags == -1)
 
   {
-    GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "fcntl");
+    LOG_STRERROR (GNUNET_ERROR_TYPE_WARNING, "fcntl");
     return GNUNET_SYSERR;
   }
   if (doBlock)
@@ -111,7 +115,7 @@ socket_set_blocking (struct GNUNET_NETWORK_Handle *fd, int doBlock)
   if (0 != fcntl (fd->fd, F_SETFL, flags))
 
   {
-    GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "fcntl");
+    LOG_STRERROR (GNUNET_ERROR_TYPE_WARNING, "fcntl");
     return GNUNET_SYSERR;
   }
   return GNUNET_OK;
@@ -159,7 +163,7 @@ socket_set_nosigpipe (const struct GNUNET_NETWORK_Handle *h)
   if (0 !=
       setsockopt (h->fd, SOL_SOCKET, SO_NOSIGPIPE, &abs_value,
                   sizeof (abs_value)))
-    GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "setsockopt");
+    LOG_STRERROR (GNUNET_ERROR_TYPE_WARNING, "setsockopt");
 }
 #endif
 
@@ -178,14 +182,14 @@ socket_set_nodelay (const struct GNUNET_NETWORK_Handle *h)
   int value = 1;
 
   if (0 != setsockopt (h->fd, IPPROTO_TCP, TCP_NODELAY, &value, sizeof (value)))
-    GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "setsockopt");
+    LOG_STRERROR (GNUNET_ERROR_TYPE_WARNING, "setsockopt");
 #else
   const char *abs_value = "1";
 
   if (0 !=
       setsockopt (h->fd, IPPROTO_TCP, TCP_NODELAY, abs_value,
                   sizeof (abs_value)))
-    GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "setsockopt");
+    LOG_STRERROR (GNUNET_ERROR_TYPE_WARNING, "setsockopt");
 #endif
 }
 
@@ -208,12 +212,12 @@ GNUNET_NETWORK_socket_accept (const struct GNUNET_NETWORK_Handle *desc,
 #if DEBUG_NETWORK
   {
     struct sockaddr name;
-    int namelen = sizeof (name);
+    socklen_t namelen = sizeof (name);
     int gsn = getsockname (desc->fd, &name, &namelen);
 
     if (gsn == 0)
-      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Accepting connection on `%s'\n",
-                  GNUNET_a2s (&name, namelen));
+      LOG (GNUNET_ERROR_TYPE_DEBUG, "Accepting connection on `%s'\n",
+           GNUNET_a2s (&name, namelen));
   }
 #endif
   ret->fd = accept (desc->fd, address, address_len);
@@ -250,8 +254,8 @@ GNUNET_NETWORK_socket_accept (const struct GNUNET_NETWORK_Handle *desc,
 
 #ifndef MINGW
   if (GNUNET_OK != socket_set_inheritable (ret))
-    GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK,
-                         "socket_set_inheritable");
+    LOG_STRERROR (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK,
+                  "socket_set_inheritable");
 #endif
 #ifdef DARWIN
   socket_set_nosigpipe (ret);
@@ -284,13 +288,13 @@ GNUNET_NETWORK_socket_bind (struct GNUNET_NETWORK_Handle *desc,
 
   if (desc->af == AF_INET6)
     if (0 != setsockopt (desc->fd, IPPROTO_IPV6, IPV6_V6ONLY, &on, sizeof (on)))
-      GNUNET_log_strerror (GNUNET_ERROR_TYPE_DEBUG, "setsockopt");
+      LOG_STRERROR (GNUNET_ERROR_TYPE_DEBUG, "setsockopt");
 #endif
 #endif
 #ifndef WINDOWS
   /* This is required, and required here, but only on UNIX */
   if (0 != setsockopt (desc->fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on)))
-    GNUNET_log_strerror (GNUNET_ERROR_TYPE_DEBUG, "setsockopt");
+    LOG_STRERROR (GNUNET_ERROR_TYPE_DEBUG, "setsockopt");
 #endif
 #ifndef LINUX
 #ifndef MINGW
@@ -334,17 +338,17 @@ GNUNET_NETWORK_socket_close (struct GNUNET_NETWORK_Handle *desc)
   DWORD error = 0;
 
 #if DEBUG_NETWORK
-  GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, "GNUNET_NETWORK_socket_close",
-                   "Closing 0x%x\n", desc->fd);
+  LOG (GNUNET_ERROR_TYPE_DEBUG, "GNUNET_NETWORK_socket_close", "Closing 0x%x\n",
+       desc->fd);
 #endif
   SetLastError (0);
   ret = closesocket (desc->fd);
   error = WSAGetLastError ();
   SetErrnoFromWinsockError (error);
 #if DEBUG_NETWORK
-  GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, "GNUNET_NETWORK_socket_close",
-                   "Closed 0x%x, closesocket() returned %d, GLE is %u\n",
-                   desc->fd, ret, error);
+  LOG (GNUNET_ERROR_TYPE_DEBUG, "GNUNET_NETWORK_socket_close",
+       "Closed 0x%x, closesocket() returned %d, GLE is %u\n", desc->fd, ret,
+       error);
 #endif
 #else
   ret = close (desc->fd);
@@ -356,8 +360,7 @@ GNUNET_NETWORK_socket_close (struct GNUNET_NETWORK_Handle *desc)
     const struct sockaddr_un *un = (const struct sockaddr_un *) desc->addr;
 
     if (0 != unlink (un->sun_path))
-      GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING, "unlink",
-                                un->sun_path);
+      LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "unlink", un->sun_path);
   }
 #endif
 #endif
@@ -706,8 +709,8 @@ GNUNET_NETWORK_socket_create (int domain, int type, int protocol)
 
 #ifndef MINGW
   if (GNUNET_OK != socket_set_inheritable (ret))
-    GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK,
-                         "socket_set_inheritable");
+    LOG_STRERROR (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK,
+                  "socket_set_inheritable");
 #endif
 #ifdef DARWIN
   socket_set_nosigpipe (ret);
@@ -755,6 +758,7 @@ int
 GNUNET_NETWORK_socket_disable_corking (struct GNUNET_NETWORK_Handle *desc)
 {
   int ret = 0;
+
 #if WINDOWS
   int value = 0;
 
@@ -762,23 +766,23 @@ GNUNET_NETWORK_socket_disable_corking (struct GNUNET_NETWORK_Handle *desc)
       (ret =
        setsockopt (desc->fd, SOL_SOCKET, SO_SNDBUF, (char *) &value,
                    sizeof (value))))
-    GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "setsockopt");
+    LOG_STRERROR (GNUNET_ERROR_TYPE_WARNING, "setsockopt");
   if (0 !=
       (ret =
        setsockopt (desc->fd, SOL_SOCKET, SO_RCVBUF, (char *) &value,
                    sizeof (value))))
-    GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "setsockopt");
+    LOG_STRERROR (GNUNET_ERROR_TYPE_WARNING, "setsockopt");
 #elif LINUX
   int value = 0;
 
   if (0 !=
       (ret =
        setsockopt (desc->fd, SOL_SOCKET, SO_SNDBUF, &value, sizeof (value))))
-    GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "setsockopt");
+    LOG_STRERROR (GNUNET_ERROR_TYPE_WARNING, "setsockopt");
   if (0 !=
       (ret =
        setsockopt (desc->fd, SOL_SOCKET, SO_RCVBUF, &value, sizeof (value))))
-    GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "setsockopt");
+    LOG_STRERROR (GNUNET_ERROR_TYPE_WARNING, "setsockopt");
 #endif
   return ret == 0 ? GNUNET_OK : GNUNET_SYSERR;
 }
@@ -1003,7 +1007,7 @@ GNUNET_NETWORK_fdset_overlap (const struct GNUNET_NETWORK_FDSet *fds1,
       return GNUNET_YES;
   }
 #else
-  struct GNUNET_CONTAINER_SList_Iterator *it;
+  struct GNUNET_CONTAINER_SList_Iterator it;
   struct GNUNET_DISK_FileHandle *h;
   int i;
   int j;
@@ -1020,38 +1024,37 @@ GNUNET_NETWORK_fdset_overlap (const struct GNUNET_NETWORK_FDSet *fds1,
     }
   }
   it = GNUNET_CONTAINER_slist_begin (fds1->handles);
-  while (GNUNET_CONTAINER_slist_end (it) != GNUNET_YES)
+  while (GNUNET_CONTAINER_slist_end (&it) != GNUNET_YES)
   {
 #if DEBUG_NETWORK
-    struct GNUNET_CONTAINER_SList_Iterator *t;
+    struct GNUNET_CONTAINER_SList_Iterator t;
 #endif
-    h = (struct GNUNET_DISK_FileHandle *) GNUNET_CONTAINER_slist_get (it, NULL);
+    h = (struct GNUNET_DISK_FileHandle *) GNUNET_CONTAINER_slist_get (&it,
+                                                                      NULL);
 #if DEBUG_NETWORK
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                "Checking that FD 0x%x is in another set:\n", h->h);
+    LOG (GNUNET_ERROR_TYPE_DEBUG, "Checking that FD 0x%x is in another set:\n",
+         h->h);
     for (t = GNUNET_CONTAINER_slist_begin (fds2->handles);
-         GNUNET_CONTAINER_slist_end (t) != GNUNET_YES;
-         GNUNET_CONTAINER_slist_next (t))
+         GNUNET_CONTAINER_slist_end (&t) != GNUNET_YES;
+         GNUNET_CONTAINER_slist_next (&t))
     {
       struct GNUNET_DISK_FileHandle *fh;
 
-      fh = (struct GNUNET_DISK_FileHandle *) GNUNET_CONTAINER_slist_get (t,
+      fh = (struct GNUNET_DISK_FileHandle *) GNUNET_CONTAINER_slist_get (&t,
                                                                          NULL);
-      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "0x%x\n", fh->h);
+      LOG (GNUNET_ERROR_TYPE_DEBUG, "0x%x\n", fh->h);
     }
 #endif
     if (GNUNET_CONTAINER_slist_contains
         (fds2->handles, h, sizeof (struct GNUNET_DISK_FileHandle)))
     {
 #if DEBUG_NETWORK
-      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Match!\n");
+      LOG (GNUNET_ERROR_TYPE_DEBUG, "Match!\n");
 #endif
-      GNUNET_CONTAINER_slist_iter_destroy (it);
       return GNUNET_YES;
     }
-    GNUNET_CONTAINER_slist_next (it);
+    GNUNET_CONTAINER_slist_next (&it);
   }
-  GNUNET_CONTAINER_slist_iter_destroy (it);
 #endif
   return GNUNET_NO;
 }
@@ -1150,18 +1153,18 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
     handles += read_handles = GNUNET_CONTAINER_slist_count (rfds->handles);
 #if DEBUG_NETWORK
     {
-      struct GNUNET_CONTAINER_SList_Iterator *t;
+      struct GNUNET_CONTAINER_SList_Iterator t;
 
       for (t = GNUNET_CONTAINER_slist_begin (rfds->handles);
-           GNUNET_CONTAINER_slist_end (t) != GNUNET_YES;
-           GNUNET_CONTAINER_slist_next (t))
+           GNUNET_CONTAINER_slist_end (&t) != GNUNET_YES;
+           GNUNET_CONTAINER_slist_next (&t))
       {
         struct GNUNET_DISK_FileHandle *fh;
 
-        fh = (struct GNUNET_DISK_FileHandle *) GNUNET_CONTAINER_slist_get (t,
+        fh = (struct GNUNET_DISK_FileHandle *) GNUNET_CONTAINER_slist_get (&t,
                                                                            NULL);
-        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "FD 0x%x (0x%x) is SET in rfds\n",
-                    fh->h, fh);
+        LOG (GNUNET_ERROR_TYPE_DEBUG, "FD 0x%x (0x%x) is SET in rfds\n", fh->h,
+             fh);
       }
     }
 #endif
@@ -1189,10 +1192,10 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
 #endif
       )
   {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                _
-                ("Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"),
-                "select");
+    LOG (GNUNET_ERROR_TYPE_ERROR,
+         _
+         ("Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"),
+         "select");
     GNUNET_break (0);
   }
 #ifndef MINGW
@@ -1278,22 +1281,22 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
   /* Read Pipes */
   if (rfds && read_handles)
   {
-    struct GNUNET_CONTAINER_SList_Iterator *i;
+    struct GNUNET_CONTAINER_SList_Iterator i;
 
     for (i = GNUNET_CONTAINER_slist_begin (rfds->handles);
-         GNUNET_CONTAINER_slist_end (i) != GNUNET_YES;
-         GNUNET_CONTAINER_slist_next (i))
+         GNUNET_CONTAINER_slist_end (&i) != GNUNET_YES;
+         GNUNET_CONTAINER_slist_next (&i))
     {
       struct GNUNET_DISK_FileHandle *fh;
 
-      fh = (struct GNUNET_DISK_FileHandle *) GNUNET_CONTAINER_slist_get (i,
+      fh = (struct GNUNET_DISK_FileHandle *) GNUNET_CONTAINER_slist_get (&i,
                                                                          NULL);
       if (fh->type == GNUNET_PIPE)
       {
         /* Read zero bytes to check the status of the pipe */
 #if DEBUG_NETWORK
-        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                    "Reading 0 bytes from the pipe 0x%x\n", fh->h);
+        LOG (GNUNET_ERROR_TYPE_DEBUG, "Reading 0 bytes from the pipe 0x%x\n",
+             fh->h);
 #endif
         if (!ReadFile (fh->h, NULL, 0, NULL, fh->oOverlapRead))
         {
@@ -1302,9 +1305,9 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
           if (error_code == ERROR_IO_PENDING)
           {
 #if DEBUG_NETWORK
-            GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                        "Adding the pipe's 0x%x overlapped event to the array as %d\n",
-                        fh->h, nhandles);
+            LOG (GNUNET_ERROR_TYPE_DEBUG,
+                 "Adding the pipe's 0x%x overlapped event to the array as %d\n",
+                 fh->h, nhandles);
 #endif
             handle_array[nhandles++] = fh->oOverlapRead->hEvent;
             readArray[readPipes++] = fh;
@@ -1319,9 +1322,8 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
         else
         {
 #if DEBUG_NETWORK
-          GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                      "Adding the read ready event to the array as %d\n",
-                      nhandles);
+          LOG (GNUNET_ERROR_TYPE_DEBUG,
+               "Adding the read ready event to the array as %d\n", nhandles);
 #endif
           handle_array[nhandles++] = hEventReadReady;
           readArray[readPipes++] = fh;
@@ -1334,29 +1336,28 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
                                     fh, sizeof (struct GNUNET_DISK_FileHandle));
       }
     }
-    GNUNET_CONTAINER_slist_iter_destroy (i);
   }
   if (wfds && write_handles)
   {
 #if DEBUG_NETWORK
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                "Adding the write ready event to the array as %d\n", nhandles);
+    LOG (GNUNET_ERROR_TYPE_DEBUG,
+         "Adding the write ready event to the array as %d\n", nhandles);
 #endif
     handle_array[nhandles++] = hEventPipeWrite;
     writePipePos = nhandles;
   }
   if (efds && ex_handles)
   {
-    struct GNUNET_CONTAINER_SList_Iterator *i;
+    struct GNUNET_CONTAINER_SList_Iterator i;
 
     for (i = GNUNET_CONTAINER_slist_begin (efds->handles);
-         GNUNET_CONTAINER_slist_end (i) != GNUNET_YES;
-         GNUNET_CONTAINER_slist_next (i))
+         GNUNET_CONTAINER_slist_end (&i) != GNUNET_YES;
+         GNUNET_CONTAINER_slist_next (&i))
     {
       struct GNUNET_DISK_FileHandle *fh;
       DWORD dwBytes;
 
-      fh = (struct GNUNET_DISK_FileHandle *) GNUNET_CONTAINER_slist_get (i,
+      fh = (struct GNUNET_DISK_FileHandle *) GNUNET_CONTAINER_slist_get (&i,
                                                                          NULL);
       if (fh->type == GNUNET_PIPE)
       {
@@ -1370,16 +1371,14 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
         }
       }
     }
-    GNUNET_CONTAINER_slist_iter_destroy (i);
   }
   if (nfds > 0)
   {
     if (rfds)
     {
 #if DEBUG_NETWORK
-      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                  "Adding the socket read event to the array as %d\n",
-                  nhandles);
+      LOG (GNUNET_ERROR_TYPE_DEBUG,
+           "Adding the socket read event to the array as %d\n", nhandles);
 #endif
       handle_array[nhandles++] = hEventRead;
       nSockEvents++;
@@ -1395,9 +1394,8 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
       int wakeup = 0;
 
 #if DEBUG_NETWORK
-      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                  "Adding the socket write event to the array as %d\n",
-                  nhandles);
+      LOG (GNUNET_ERROR_TYPE_DEBUG,
+           "Adding the socket write event to the array as %d\n", nhandles);
 #endif
       handle_array[nhandles++] = hEventWrite;
       nSockEvents++;
@@ -1409,9 +1407,8 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
         status = send (wfds->sds.fd_array[i], NULL, 0, 0);
         error = GetLastError ();
 #if DEBUG_NETWORK
-        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                    "pre-send to the socket %d returned %d (%u)\n", i, status,
-                    error);
+        LOG (GNUNET_ERROR_TYPE_DEBUG,
+             "pre-send to the socket %d returned %d (%u)\n", i, status, error);
 #endif
         if (status == 0 || (error != WSAEWOULDBLOCK && error != WSAENOTCONN))
           wakeup = 1;
@@ -1425,9 +1422,8 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
     if (efds)
     {
 #if DEBUG_NETWORK
-      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                  "Adding the socket error event to the array as %d\n",
-                  nhandles);
+      LOG (GNUNET_ERROR_TYPE_DEBUG,
+           "Adding the socket error event to the array as %d\n", nhandles);
 #endif
       handle_array[nhandles++] = hEventException;
       nSockEvents++;
@@ -1443,23 +1439,23 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
   handle_array[nhandles] = NULL;
 
 #if DEBUG_NETWORK
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Number nfds : %d\n", nfds);
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Number of handles : %d\n", nhandles);
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "retcode : %d\n", newretcode);
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Will wait : %d\n", ms_total);
+  LOG (GNUNET_ERROR_TYPE_DEBUG, "Number nfds : %d\n", nfds);
+  LOG (GNUNET_ERROR_TYPE_DEBUG, "Number of handles : %d\n", nhandles);
+  LOG (GNUNET_ERROR_TYPE_DEBUG, "retcode : %d\n", newretcode);
+  LOG (GNUNET_ERROR_TYPE_DEBUG, "Will wait : %d\n", ms_total);
 #endif
 
   if (nhandles)
     returncode =
         WaitForMultipleObjects (nhandles, handle_array, FALSE, ms_total);
 #if DEBUG_NETWORK
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "WaitForMultipleObjects Returned : %d\n",
-              returncode);
+  LOG (GNUNET_ERROR_TYPE_DEBUG, "WaitForMultipleObjects Returned : %d\n",
+       returncode);
 #endif
 
   returnedpos = returncode - WAIT_OBJECT_0;
 #if DEBUG_NETWORK
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "return pos is : %d\n", returnedpos);
+  LOG (GNUNET_ERROR_TYPE_DEBUG, "return pos is : %d\n", returnedpos);
 #endif
 
   /* FIXME: THIS LINE IS WRONG !! We should add to handles only handles that fired the events, not all ! */
@@ -1482,7 +1478,7 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
       if (retcode == -1)
         retcode = 0;
 #if DEBUG_NETWORK
-      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Select retcode : %d\n", retcode);
+      LOG (GNUNET_ERROR_TYPE_DEBUG, "Select retcode : %d\n", retcode);
 #endif
     }
     /* FIXME: <= writePipePos? Really? */
@@ -1491,11 +1487,11 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
       GNUNET_CONTAINER_slist_append (handles_write, wfds->handles);
       retcode += write_handles;
 #if DEBUG_NETWORK
-      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Added write pipe\n");
+      LOG (GNUNET_ERROR_TYPE_DEBUG, "Added write pipe\n");
 #endif
     }
 #if DEBUG_NETWORK
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "ReadPipes is : %d\n", readPipes);
+    LOG (GNUNET_ERROR_TYPE_DEBUG, "ReadPipes is : %d\n", readPipes);
 #endif
     /* We have some pipes ready for read. */
     /* FIXME: it is supposed to work !! Only choose the Pipes who fired the event, but it is not working */
@@ -1506,14 +1502,14 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
        * for (i = 0; i < readPipes; i++)
        * {
        * waitstatus = WaitForSingleObject (handle_array[i], 0);
-       * GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Read pipe %d wait status is : %d\n", i, waitstatus);
+       * LOG (GNUNET_ERROR_TYPE_DEBUG, "Read pipe %d wait status is : %d\n", i, waitstatus);
        * if (waitstatus != WAIT_OBJECT_0)
        * continue;
        * GNUNET_CONTAINER_slist_add (handles_read,
        * GNUNET_CONTAINER_SLIST_DISPOSITION_TRANSIENT,
        * readArray[i], sizeof (struct GNUNET_DISK_FileHandle));
        * retcode++;
-       * GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Added read Pipe\n");
+       * LOG (GNUNET_ERROR_TYPE_DEBUG, "Added read Pipe\n");
        * }
        */
       for (i = 0; i < readPipes; i++)
@@ -1527,9 +1523,9 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
             PeekNamedPipe (readArray[i]->h, NULL, 0, NULL, &waitstatus, NULL);
         error = GetLastError ();
 #if DEBUG_NETWORK
-        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                    "Peek at read pipe %d (0x%x) returned %d (%d bytes available) GLE %u\n",
-                    i, readArray[i]->h, bret, waitstatus, error);
+        LOG (GNUNET_ERROR_TYPE_DEBUG,
+             "Peek at read pipe %d (0x%x) returned %d (%d bytes available) GLE %u\n",
+             i, readArray[i]->h, bret, waitstatus, error);
 #endif
         if (bret == 0)
         {
@@ -1544,15 +1540,15 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
                                     sizeof (struct GNUNET_DISK_FileHandle));
         retcode++;
 #if DEBUG_NETWORK
-        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Added read Pipe 0x%x (0x%x)\n",
-                    readArray[i], readArray[i]->h);
+        LOG (GNUNET_ERROR_TYPE_DEBUG, "Added read Pipe 0x%x (0x%x)\n",
+             readArray[i], readArray[i]->h);
 #endif
       }
     }
     waitstatus = WaitForSingleObject (hEventWrite, 0);
 #if DEBUG_NETWORK
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                "Wait for the write event returned %d\n", waitstatus);
+    LOG (GNUNET_ERROR_TYPE_DEBUG, "Wait for the write event returned %d\n",
+         waitstatus);
 #endif
     if (waitstatus == WAIT_OBJECT_0)
     {
@@ -1569,9 +1565,8 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
         status = send (wfds->sds.fd_array[i], NULL, 0, 0);
         error = GetLastError ();
 #if DEBUG_NETWORK
-        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                    "send to the socket %d returned %d (%u)\n", i, status,
-                    error);
+        LOG (GNUNET_ERROR_TYPE_DEBUG,
+             "send to the socket %d returned %d (%u)\n", i, status, error);
 #endif
         if (status == 0 || (error != WSAEWOULDBLOCK && error != WSAENOTCONN) ||
             (status == -1 && gso_result == 0 && error == WSAENOTCONN &&
@@ -1585,12 +1580,11 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
   }
 #if DEBUG_NETWORK
   if (!nhandles || (returnedpos >= nhandles))
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                "Returning from _select() with nothing!\n");
+    LOG (GNUNET_ERROR_TYPE_DEBUG, "Returning from _select() with nothing!\n");
 #endif
   if (rfds)
   {
-    struct GNUNET_CONTAINER_SList_Iterator *t;
+    struct GNUNET_CONTAINER_SList_Iterator t;
 
     for (i = 0; i < rfds->sds.fd_count; i++)
     {
@@ -1598,21 +1592,20 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
       nsock++;
     }
     for (t = GNUNET_CONTAINER_slist_begin (rfds->handles);
-         GNUNET_CONTAINER_slist_end (t) != GNUNET_YES;
-         GNUNET_CONTAINER_slist_next (t))
+         GNUNET_CONTAINER_slist_end (&t) != GNUNET_YES;
+         GNUNET_CONTAINER_slist_next (&t))
     {
       struct GNUNET_DISK_FileHandle *fh;
 
-      fh = (struct GNUNET_DISK_FileHandle *) GNUNET_CONTAINER_slist_get (t,
+      fh = (struct GNUNET_DISK_FileHandle *) GNUNET_CONTAINER_slist_get (&t,
                                                                          NULL);
       if (fh->type == GNUNET_PIPE)
       {
         CancelIo (fh->h);
       }
     }
-    GNUNET_CONTAINER_slist_iter_destroy (t);
 #if DEBUG_NETWORK
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Zeroing rfds\n");
+    LOG (GNUNET_ERROR_TYPE_DEBUG, "Zeroing rfds\n");
 #endif
     GNUNET_NETWORK_fdset_zero (rfds);
     if (retcode != -1 && nhandles && (returnedpos < nhandles))
@@ -1627,7 +1620,7 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
       nsock++;
     }
 #if DEBUG_NETWORK
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Zeroing wfds\n");
+    LOG (GNUNET_ERROR_TYPE_DEBUG, "Zeroing wfds\n");
 #endif
     GNUNET_NETWORK_fdset_zero (wfds);
     if (retcode != -1 && nhandles && (returnedpos < nhandles))
@@ -1642,7 +1635,7 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
       nsock++;
     }
 #if DEBUG_NETWORK
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Zeroing efds\n");
+    LOG (GNUNET_ERROR_TYPE_DEBUG, "Zeroing efds\n");
 #endif
     GNUNET_NETWORK_fdset_zero (efds);
     if (retcode != -1 && nhandles && (returnedpos < nhandles))
@@ -1655,25 +1648,24 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
 #if DEBUG_NETWORK
   if (rfds)
   {
-    struct GNUNET_CONTAINER_SList_Iterator *t;
+    struct GNUNET_CONTAINER_SList_Iterator t;
 
     for (i = 0; i < bread.fd_count; i++)
     {
       if (bread.fd_array[i] != 0)
-        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "FD 0x%x is %s in rfds\n",
-                    bread.fd_array[i],
-                    (SAFE_FD_ISSET (bread.fd_array[i], rfds)) ? "SET" :
-                    "NOT SET");
+        LOG (GNUNET_ERROR_TYPE_DEBUG, "FD 0x%x is %s in rfds\n",
+             bread.fd_array[i],
+             (SAFE_FD_ISSET (bread.fd_array[i], rfds)) ? "SET" : "NOT SET");
     }
     for (t = GNUNET_CONTAINER_slist_begin (rfds->handles);
-         GNUNET_CONTAINER_slist_end (t) != GNUNET_YES;
-         GNUNET_CONTAINER_slist_next (t))
+         GNUNET_CONTAINER_slist_end (&t) != GNUNET_YES;
+         GNUNET_CONTAINER_slist_next (&t))
     {
       struct GNUNET_DISK_FileHandle *fh;
 
-      fh = (struct GNUNET_DISK_FileHandle *) GNUNET_CONTAINER_slist_get (t,
+      fh = (struct GNUNET_DISK_FileHandle *) GNUNET_CONTAINER_slist_get (&t,
                                                                          NULL);
-      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "FD 0x%x is SET in rfds\n", fh->h);
+      LOG (GNUNET_ERROR_TYPE_DEBUG, "FD 0x%x is SET in rfds\n", fh->h);
     }
   }
   if (wfds)
@@ -1681,10 +1673,9 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
     for (i = 0; i < bwrite.fd_count; i++)
     {
       if (bwrite.fd_array[i] != 0)
-        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "FD 0x%x is %s in wfds\n",
-                    bwrite.fd_array[i],
-                    (SAFE_FD_ISSET (bwrite.fd_array[i], rfds)) ? "SET" :
-                    "NOT SET");
+        LOG (GNUNET_ERROR_TYPE_DEBUG, "FD 0x%x is %s in wfds\n",
+             bwrite.fd_array[i],
+             (SAFE_FD_ISSET (bwrite.fd_array[i], rfds)) ? "SET" : "NOT SET");
     }
   }
   if (efds)
@@ -1692,13 +1683,12 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds,
     for (i = 0; i < bexcept.fd_count; i++)
     {
       if (bexcept.fd_array[i] != 0)
-        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "FD 0x%x is %s in efds\n",
-                    bexcept.fd_array[i],
-                    (SAFE_FD_ISSET (bexcept.fd_array[i], rfds)) ? "SET" :
-                    "NOT SET");
+        LOG (GNUNET_ERROR_TYPE_DEBUG, "FD 0x%x is %s in efds\n",
+             bexcept.fd_array[i],
+             (SAFE_FD_ISSET (bexcept.fd_array[i], rfds)) ? "SET" : "NOT SET");
     }
   }
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Returning %d or 0\n", retcode);
+  LOG (GNUNET_ERROR_TYPE_DEBUG, "Returning %d or 0\n", retcode);
 #endif
   if (nhandles && (returnedpos < nhandles))
     return retcode;