gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r3771 - in GNUnet/src: applications/session transports util


From: grothoff
Subject: [GNUnet-SVN] r3771 - in GNUnet/src: applications/session transports util/network
Date: Tue, 14 Nov 2006 18:46:17 -0800 (PST)

Author: grothoff
Date: 2006-11-14 18:46:13 -0800 (Tue, 14 Nov 2006)
New Revision: 3771

Modified:
   GNUnet/src/applications/session/sessiontest.c
   GNUnet/src/transports/tcp_old.c
   GNUnet/src/util/network/select.c
Log:
fix

Modified: GNUnet/src/applications/session/sessiontest.c
===================================================================
--- GNUnet/src/applications/session/sessiontest.c       2006-11-15 01:20:59 UTC 
(rev 3770)
+++ GNUnet/src/applications/session/sessiontest.c       2006-11-15 02:46:13 UTC 
(rev 3771)
@@ -31,7 +31,7 @@
 #include "gnunet_util_network_client.h"
 #include "gnunet_stats_lib.h"
 
-#define START_PEERS 1
+#define START_PEERS 0
 
 static int ok;
 

Modified: GNUnet/src/transports/tcp_old.c
===================================================================
--- GNUnet/src/transports/tcp_old.c     2006-11-15 01:20:59 UTC (rev 3770)
+++ GNUnet/src/transports/tcp_old.c     2006-11-15 02:46:13 UTC (rev 3771)
@@ -692,6 +692,8 @@
        int sock;
        
        lenOfIncomingAddr = sizeof(clientAddr);
+       /* make sure we do not block */
+       setBlocking(tcp_sock, NO);
        sock = ACCEPT(tcp_sock,
                      (struct sockaddr *)&clientAddr,
                      &lenOfIncomingAddr);

Modified: GNUnet/src/util/network/select.c
===================================================================
--- GNUnet/src/util/network/select.c    2006-11-15 01:20:59 UTC (rev 3770)
+++ GNUnet/src/util/network/select.c    2006-11-15 02:46:13 UTC (rev 3771)
@@ -513,18 +513,23 @@
        lenOfIncomingAddr = sh->max_addr_len;
        memset(clientAddr,
               0,
-            lenOfIncomingAddr);
+              lenOfIncomingAddr);
+       /* make sure this is non-blocking */
+       socket_set_blocking(sh->listen_sock,
+                           NO);
        s = ACCEPT(sh->listen_sock->handle,
                   (struct sockaddr *) clientAddr,
                   &lenOfIncomingAddr);
        if (s == -1) {  
+         GE_LOG_STRERROR(sh->ectx,
+                         GE_WARNING | GE_ADMIN | GE_BULK,
+                         "accept");
          GE_LOG(sh->ectx,
                 GE_WARNING | GE_ADMIN | GE_BULK,
                 "Select %s failed to accept!\n",
                 sh->description);
-         GE_LOG_STRERROR(sh->ectx,
-                         GE_WARNING | GE_ADMIN | GE_BULK,
-                         "accept");
+         if ( (errno == EAGAIN) || (errno == EWOULDBLOCK))
+           continue; /* not good, but not fatal either */
          break;
        } else {
 #if DEBUG_SELECT
@@ -867,11 +872,13 @@
   signalSelect(sh);
   PTHREAD_STOP_SLEEP(sh->thread);
   PTHREAD_JOIN(sh->thread, &unused);
+  MUTEX_LOCK(sh->lock);
   while (sh->sessionCount > 0)
     destroySession(sh, sh->sessions[0]);
   GROW(sh->sessions,
        sh->sessionArrayLength,
        0);
+  MUTEX_UNLOCK(sh->lock);
   MUTEX_DESTROY(sh->lock);
   if (0 != CLOSE(sh->signal_pipe[1]))
     GE_LOG_STRERROR(sh->ectx,





reply via email to

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