doc: gnunet-c-tutorial: Add nodes.
[oweals/gnunet.git] / src / nat / test_nat_mini.c
index 4aac3d17f08f51c2c892f404ca3b363342059929..d6ab2a32141c64ab0dcd45d988bdecda208f1bda 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2009, 2011 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2009, 2011 GNUnet e.V.
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
 
      You should have received a copy of the GNU General Public License
      along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
 */
 
 /**
  * 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_NO
-
 /* Time to wait before stopping NAT, in seconds */
 #define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5)
 
  * believes to be valid for the transport.
  */
 static void
-addr_callback (void *cls, int add_remove, const struct sockaddr *addr,
-               socklen_t addrlen)
+addr_callback (void *cls, int add_remove,
+               const struct sockaddr *addr,
+               socklen_t addrlen,
+               enum GNUNET_NAT_StatusCode ret)
 {
-  fprintf (stderr, "Address changed: %s `%s' (%u bytes)\n",
-           add_remove == GNUNET_YES ? "added" : "removed", GNUNET_a2s (addr,
-                                                                       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!
 }
 
 
@@ -60,7 +67,7 @@ addr_callback (void *cls, int add_remove, const struct sockaddr *addr,
  * Function that terminates the test.
  */
 static void
-stop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+stop (void *cls)
 {
   struct GNUNET_NAT_MiniHandle *mini = cls;
 
@@ -80,7 +87,8 @@ run (void *cls, char *const *args, const char *cfgfile,
   struct GNUNET_NAT_MiniHandle *mini;
 
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-              "Requesting NAT redirection for port %u...\n", PORT);
+              "Requesting NAT redirection for port %u...\n",
+              PORT);
   mini = GNUNET_NAT_mini_map_start (PORT, GNUNET_YES /* tcp */ ,
                                     &addr_callback, NULL);
   if (NULL == mini)
@@ -104,25 +112,18 @@ 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);
+              "UPnP test for NAT library, timeout set to %s\n",
+              GNUNET_STRINGS_relative_time_to_string (TIMEOUT,
+                                                      GNUNET_YES));
   GNUNET_PROGRAM_run (5, argv_prog, "test-nat-mini", "nohelp", options, &run,
                       NULL);
   return 0;