gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r21158 - gnunet/src/util


From: gnunet
Subject: [GNUnet-SVN] r21158 - gnunet/src/util
Date: Wed, 25 Apr 2012 17:21:53 +0200

Author: grothoff
Date: 2012-04-25 17:21:53 +0200 (Wed, 25 Apr 2012)
New Revision: 21158

Modified:
   gnunet/src/util/server.c
   gnunet/src/util/service.c
   gnunet/src/util/test_service.c
Log:
-fixes

Modified: gnunet/src/util/server.c
===================================================================
--- gnunet/src/util/server.c    2012-04-25 14:54:46 UTC (rev 21157)
+++ gnunet/src/util/server.c    2012-04-25 15:21:53 UTC (rev 21158)
@@ -554,13 +554,14 @@
     while (NULL != serverAddr[i])
     {
       seen = 0;
-      for (k=0;k<i-1;k++)
-       if ( (socklen[k] == socklen[i]) &&
-            (0 == memcmp (serverAddr[k], serverAddr[i], socklen[i])) )
-       {
-         seen = 1;
-         break;
-       }
+      if (i > 0)
+       for (k=0;k<i-1;k++)
+         if ( (socklen[k] == socklen[i]) &&
+              (0 == memcmp (serverAddr[k], serverAddr[i], socklen[i])) )
+         {
+           seen = 1;
+           break;
+         }
       if (0 != seen)
       {
        /* duplicate address, skip */

Modified: gnunet/src/util/service.c
===================================================================
--- gnunet/src/util/service.c   2012-04-25 14:54:46 UTC (rev 21157)
+++ gnunet/src/util/service.c   2012-04-25 15:21:53 UTC (rev 21158)
@@ -487,6 +487,11 @@
   struct GNUNET_NETWORK_Handle **lsocks;
 
   /**
+   * Task ID of the shutdown task.
+   */
+  GNUNET_SCHEDULER_TaskIdentifier shutdown_task;
+
+  /**
    * Idle timeout for server.
    */
   struct GNUNET_TIME_Relative timeout;
@@ -1454,6 +1459,7 @@
   struct GNUNET_SERVICE_Context *service = cls;
   struct GNUNET_SERVER_Handle *server = service->server;
 
+  service->shutdown_task = GNUNET_SCHEDULER_NO_TASK;
   if (0 != (service->options & GNUNET_SERVICE_OPTION_SOFT_SHUTDOWN))
     GNUNET_SERVER_stop_listening (server);
   else
@@ -1501,8 +1507,8 @@
   {
     /* install a task that will kill the server
      * process if the scheduler ever gets a shutdown signal */
-    GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, &shutdown_task,
-                                  sctx);
+    sctx->shutdown_task = GNUNET_SCHEDULER_add_delayed 
(GNUNET_TIME_UNIT_FOREVER_REL, &shutdown_task,
+                                                       sctx);
   }
   sctx->my_handlers = GNUNET_malloc (sizeof (defhandlers));
   memcpy (sctx->my_handlers, defhandlers, sizeof (defhandlers));
@@ -1876,6 +1882,11 @@
 {
   unsigned int i;
 
+  if (GNUNET_SCHEDULER_NO_TASK != sctx->shutdown_task)
+  {
+    GNUNET_SCHEDULER_cancel (sctx->shutdown_task);
+    sctx->shutdown_task = GNUNET_SCHEDULER_NO_TASK;
+  }
   if (NULL != sctx->server)
     GNUNET_SERVER_destroy (sctx->server);
   GNUNET_free_non_null (sctx->my_handlers);

Modified: gnunet/src/util/test_service.c
===================================================================
--- gnunet/src/util/test_service.c      2012-04-25 14:54:46 UTC (rev 21157)
+++ gnunet/src/util/test_service.c      2012-04-25 15:21:53 UTC (rev 21158)
@@ -31,7 +31,7 @@
 #include "gnunet_time_lib.h"
 
 
-#define VERBOSE GNUNET_NO
+#define VERBOSE GNUNET_YES
 
 #define PORT 12435
 
@@ -59,6 +59,10 @@
     GNUNET_SERVICE_stop (sctx);
     sctx = NULL;
   }
+  else
+  {
+    GNUNET_SCHEDULER_shutdown ();
+  }
 }
 
 
@@ -70,6 +74,7 @@
   if (size < sizeof (struct GNUNET_MessageHeader))
   {
     /* timeout */
+    GNUNET_break (0);
     GNUNET_SCHEDULER_add_now (&do_stop, NULL);
     ok = 1;
     return 0;
@@ -273,7 +278,6 @@
                     NULL);
   ret += check ();
   ret += check ();
-
   // FIXME
 #ifndef MINGW
   s = GNUNET_NETWORK_socket_create (PF_INET6, SOCK_STREAM, 0);
@@ -296,7 +300,6 @@
     ret += check6 ();
   }
   ret += check_start_stop ();
-
   return ret;
 }
 




reply via email to

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