- add 2s for new state, reduce buffer
[oweals/gnunet.git] / src / arm / mockup-service.c
index d9896997be404a98f008f7496b63c8650a93a599..d525dfbd9e9cd12a12e771fb130ad974b63ccf0b 100644 (file)
 
 #include <stdlib.h>
 #include "platform.h"
-#include "gnunet_disk_lib.h"
-#include "gnunet_getopt_lib.h"
+#include "gnunet_util_lib.h"
 #include "gnunet_protocols.h"
-#include "gnunet_service_lib.h"
-#include "gnunet_statistics_service.h"
-#include "gnunet_strings_lib.h"
-#include "gnunet_time_lib.h"
 
 
+static int special_ret = 0;
+
 /**
- * Handler for SHUTDOWN message.
+ * Handler for STOP message.
  *
  * @param cls closure (refers to service)
  * @param client identification of the client
  * @param message the actual message
  */
 static void
-handle_shutdown (void *cls, struct GNUNET_SERVER_Client *client,
+handle_stop (void *cls, struct GNUNET_SERVER_Client *client,
                  const struct GNUNET_MessageHeader *message)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
               _("Initiating shutdown as requested by client.\n"));
   GNUNET_SERVER_client_persist_ (client);
   GNUNET_SCHEDULER_shutdown ();
+  /* ARM won't exponentially increase restart delay if we
+   * terminate normally. This changes the return code.
+   */
+  special_ret = 1;
 }
 
 
@@ -52,7 +53,7 @@ run (void *cls, struct GNUNET_SERVER_Handle *server,
      const struct GNUNET_CONFIGURATION_Handle *cfg)
 {
   static const struct GNUNET_SERVER_MessageHandler handlers[] = {
-    {&handle_shutdown, NULL, GNUNET_MESSAGE_TYPE_ARM_SHUTDOWN,
+    {&handle_stop, NULL, GNUNET_MESSAGE_TYPE_ARM_STOP,
      sizeof (struct GNUNET_MessageHeader)},
     {NULL, NULL, 0, 0}
   };
@@ -70,5 +71,7 @@ main (int argc, char *const *argv)
       (GNUNET_OK ==
        GNUNET_SERVICE_run (argc, argv, "do-nothing", GNUNET_SERVICE_OPTION_NONE,
                            &run, NULL)) ? 0 : 1;
+  if (0 != special_ret)
+    return special_ret;
   return ret;
 }