gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r26925 - gnunet/src/arm


From: gnunet
Subject: [GNUnet-SVN] r26925 - gnunet/src/arm
Date: Wed, 17 Apr 2013 17:32:31 +0200

Author: bartpolot
Date: 2013-04-17 17:32:31 +0200 (Wed, 17 Apr 2013)
New Revision: 26925

Modified:
   gnunet/src/arm/do_start_process.c
   gnunet/src/arm/gnunet-service-arm.c
Log:
Dont restart services/daemons that have exited with exit code 0.

Modified: gnunet/src/arm/do_start_process.c
===================================================================
--- gnunet/src/arm/do_start_process.c   2013-04-17 15:31:38 UTC (rev 26924)
+++ gnunet/src/arm/do_start_process.c   2013-04-17 15:32:31 UTC (rev 26925)
@@ -18,6 +18,8 @@
      Boston, MA 02111-1307, USA.
 */
 
+#include "gnunet_os_lib.h"
+
 /**
  * Actually start a process.  All of the arguments given to this
  * function are strings that are used for the "argv" array.  However,

Modified: gnunet/src/arm/gnunet-service-arm.c
===================================================================
--- gnunet/src/arm/gnunet-service-arm.c 2013-04-17 15:31:38 UTC (rev 26924)
+++ gnunet/src/arm/gnunet-service-arm.c 2013-04-17 15:32:31 UTC (rev 26925)
@@ -1161,6 +1161,14 @@
           GNUNET_log (GNUNET_ERROR_TYPE_INFO,
               _("Service `%s' terminated normally, will restart at any 
time\n"),
               pos->name);
+          /* process can still be re-started on-demand, ensure it is 
re-started if there is demand */
+          for (sli = pos->listen_head; NULL != sli; sli = sli->next)
+          {
+            GNUNET_break (GNUNET_SCHEDULER_NO_TASK == sli->accept_task);
+            sli->accept_task =
+                GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL,
+                    sli->listen_socket, &accept_connection, sli);
+          }
        }
         else
         {
@@ -1172,11 +1180,11 @@
          /* schedule restart */
          pos->restart_at = GNUNET_TIME_relative_to_absolute (pos->backoff);
          pos->backoff = GNUNET_TIME_STD_BACKOFF (pos->backoff);
+          if (GNUNET_SCHEDULER_NO_TASK != child_restart_task)
+            GNUNET_SCHEDULER_cancel (child_restart_task);
+          child_restart_task = GNUNET_SCHEDULER_add_with_priority (
+            GNUNET_SCHEDULER_PRIORITY_IDLE, &delayed_restart_task, NULL);
         }
-       if (GNUNET_SCHEDULER_NO_TASK != child_restart_task)
-         GNUNET_SCHEDULER_cancel (child_restart_task);
-       child_restart_task = GNUNET_SCHEDULER_add_with_priority (
-            GNUNET_SCHEDULER_PRIORITY_IDLE, &delayed_restart_task, NULL);
       }
       else
       {




reply via email to

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