-fix NPE in NAT test
[oweals/gnunet.git] / src / nat / test_nat_mini.c
index 57abca3d0ca94cec90edc898241eb33b2248695e..da6e09d760d7b6a6c6b447303bd034fb9ecde2bc 100644 (file)
  * Testcase for port redirection and public IP address retrieval.
  * This test never fails, because there need to be a NAT box set up for tha *
  * @file nat/test_nat_mini.c
- * @brief Testcase for NAT library - mini 
+ * @brief Testcase for NAT library - mini
  * @author Christian Grothoff
  *
  * TODO: actually use ARM to start resolver service to make DNS work!
  */
 
 #include "platform.h"
-#include "gnunet_common.h"
 #include "gnunet_util_lib.h"
 #include "gnunet_program_lib.h"
 #include "gnunet_scheduler_lib.h"
 #include "gnunet_nat_lib.h"
 
-
-#define VERBOSE GNUNET_YES
-
-
 /* Time to wait before stopping NAT, in seconds */
-#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 60)
-
-
-
-
+#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5)
 
 /**
  * Function called on each address that the NAT service
  */
 static void
 addr_callback (void *cls, int add_remove,
-               const struct sockaddr *addr, socklen_t addrlen)
+               const struct sockaddr *addr,
+               socklen_t addrlen,
+               enum GNUNET_NAT_StatusCode ret)
 {
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, 
-             "Address changed: %s `%s' (%u bytes)\n",
-              add_remove == GNUNET_YES ? "added" : "removed",
-              GNUNET_a2s (addr, addrlen),
-             (unsigned int) addrlen);
+  if (GNUNET_NAT_ERROR_SUCCESS == ret)
+  {
+    fprintf (stderr,
+           "Address changed: %s `%s' (%u bytes)\n",
+           add_remove == GNUNET_YES
+           ? "added" : "removed",
+           GNUNET_a2s (addr,
+                       addrlen),
+           (unsigned int) addrlen);
+  }
+  else
+    ;
+    //TODO: proper error handling!
 }
 
 
@@ -70,8 +71,7 @@ stop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
   struct GNUNET_NAT_MiniHandle *mini = cls;
 
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, 
-             "Stopping NAT and quitting...\n");
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Stopping NAT and quitting...\n");
   GNUNET_NAT_mini_map_stop (mini);
 }
 
@@ -81,25 +81,21 @@ stop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
  * Main function run with scheduler.
  */
 static void
-run (void *cls,
-     char *const *args,
-     const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg)
+run (void *cls, char *const *args, const char *cfgfile,
+     const struct GNUNET_CONFIGURATION_Handle *cfg)
 {
   struct GNUNET_NAT_MiniHandle *mini;
 
-  GNUNET_log_setup ("test-nat-mini", "DEBUG", NULL);
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
               "Requesting NAT redirection for port %u...\n",
               PORT);
-  mini = GNUNET_NAT_mini_map_start (PORT,
-                                   GNUNET_YES /* tcp */,
-                                   &addr_callback, NULL);
+  mini = GNUNET_NAT_mini_map_start (PORT, GNUNET_YES /* tcp */ ,
+                                    &addr_callback, NULL);
   if (NULL == mini)
-    {
-      GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-                 "Could not start UPnP interaction\n");
-      return;
-    }
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Could not start UPnP interaction\n");
+    return;
+  }
   GNUNET_SCHEDULER_add_delayed (TIMEOUT, &stop, mini);
 }
 
@@ -116,26 +112,19 @@ main (int argc, char *const argv[])
     "-c",
     "test_nat_data.conf",
     "-L",
-#if VERBOSE
-    "DEBUG",
-#else
     "WARNING",
-#endif
     NULL
   };
 
   GNUNET_log_setup ("test-nat-mini",
-#if VERBOSE
-                    "DEBUG",
-#else
                     "WARNING",
-#endif
                     NULL);
 
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-              "UPnP test for NAT library, timeout set to %d seconds\n", TIMEOUT);
-  GNUNET_PROGRAM_run (5, argv_prog, "test-nat-mini",
-                     "nohelp", options, &run, NULL);
+              "UPnP test for NAT library, timeout set to %d seconds\n",
+              TIMEOUT);
+  GNUNET_PROGRAM_run (5, argv_prog, "test-nat-mini", "nohelp", options, &run,
+                      NULL);
   return 0;
 }