Smallers steps to keep plugin running
[oweals/gnunet.git] / src / arm / test_gnunet_service_manager.c
index 454fa0e9875cf49e0ddcb5041594ed656628d646..26ea774d6647fc90e45f9feda1714720b627851c 100644 (file)
@@ -4,7 +4,7 @@
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
+     by the Free Software Foundation; either version 3, or (at your
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
@@ -25,6 +25,7 @@
 #include "platform.h"
 #include "gnunet_arm_service.h"
 #include "gnunet_resolver_service.h"
+#include "gnunet_os_lib.h"
 #include "gnunet_program_lib.h"
 
 /**
@@ -58,8 +59,15 @@ arm_stopped (void *cls, int success)
       GNUNET_break (0);
       ret = 4;
     }
+  else
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 
+                 "ARM stopped\n");
+    }
+#if START_ARM
   GNUNET_ARM_disconnect (arm);
   arm = NULL;
+#endif
 }
 
 static void 
@@ -79,6 +87,8 @@ hostNameResolveCB(void *cls,
       ret = 3;
       return;
     }  
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 
+             "Resolved hostname, now stopping ARM\n");
   ret = 0;
 #if START_ARM
   GNUNET_ARM_stop_service (arm, "arm", TIMEOUT, &arm_stopped, NULL);
@@ -95,6 +105,8 @@ arm_notify (void *cls, int success)
       ret = 1;
       return;
     }
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 
+             "Trying to resolve our own hostname!\n");
   /* connect to the resolver service */
   if (NULL == GNUNET_RESOLVER_hostname_resolve (sched,
                                                cfg, AF_UNSPEC,
@@ -102,8 +114,8 @@ arm_notify (void *cls, int success)
                                                &hostNameResolveCB,
                                                NULL))
     {
-      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG
-                 "Unable to resolve our own hostname!\n");
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR
+                 "Unable initiate connection to resolver service\n");
       ret = 2;
 #if START_ARM
       GNUNET_ARM_stop_service (arm, "arm", TIMEOUT, &arm_stopped, NULL);
@@ -155,6 +167,22 @@ check()
 int
 main (int argc, char *argv[])
 {
+  char hostname[GNUNET_OS_get_hostname_max_length() + 1];
+
+  if (0 != gethostname (hostname, sizeof (hostname) - 1))
+    {
+      GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR |
+                           GNUNET_ERROR_TYPE_BULK, "gethostname");
+      fprintf (stderr, "Failed to determine my own hostname, testcase not run.\n");
+      return 0;
+    }
+  if (NULL == gethostbyname (hostname))
+    {
+      fprintf (stderr, "Failed to resolve my hostname `%s', testcase not run.\n",
+              hostname);
+      return 0;
+    }
+
   GNUNET_log_setup("test-gnunet-service-manager",
 #if VERBOSE
                   "DEBUG",