remove dependency on old NAT logic from gnunet-transport
authorChristian Grothoff <christian@grothoff.org>
Sat, 7 Jan 2017 15:28:52 +0000 (16:28 +0100)
committerChristian Grothoff <christian@grothoff.org>
Sat, 7 Jan 2017 15:28:52 +0000 (16:28 +0100)
doc/man/gnunet-transport.1
src/transport/Makefile.am
src/transport/gnunet-transport.c

index 6914481577557565ce47ffc6a981db7647ebea62..1680f9cf7503958e6beff04f846151eb7703ed48 100644 (file)
@@ -48,9 +48,6 @@ monitor session state of transport plugins
 \fB\-s\fR, \fB\-\-send\fR
 transmit (dummy) traffic as quickly as possible to the peer specified with the \-p option.  The rate will still be limited by the quota(s) determined by the peers (ATS subsystem).  Will run until CTRL\-C is pressed or until the connection to the other peer is disrupted.
 .TP
-\fB\-t\fR, \fB\-\-test\fR
-test transport configuration.  With this flag, the tool will check if each of the configured transport plugins has a working address.  Plugins that do not have a listen port configured will be ignored.  The test is performed with the help of an external server (by default running on gnunet.org) which tries to contact the local machine.  The test can only work if the local GNUnet peer is not yet running.
-.TP
 \fB\-v\fR, \fB\-\-version\fR
 print the version number
 .TP
index 57ea184932d06fddf1de23b83869d9a7bb8e62b3..8f2df40a15f5fc60155e985371ff1da601a7fbf6 100644 (file)
@@ -245,7 +245,6 @@ gnunet_transport_SOURCES = \
  gnunet-transport.c
 gnunet_transport_LDADD = \
   libgnunettransport.la \
-  $(top_builddir)/src/nat/libgnunetnat.la \
   $(top_builddir)/src/hello/libgnunethello.la \
   $(top_builddir)/src/util/libgnunetutil.la \
   $(GN_LIBINTL)
index c5eb58361bc5d44063b8f6f0cc5f6f67394feb9f..fcfc94ac8e8b8c50c41f580d8753eafe5452ce40 100644 (file)
@@ -23,9 +23,6 @@
  * @brief Tool to help configure, measure and control the transport subsystem.
  * @author Christian Grothoff
  * @author Nathan Evans
- *
- * This utility can be used to test if a transport mechanism for
- * GNUnet is properly configured.
  */
 #include "platform.h"
 #include "gnunet_util_lib.h"
 #include "gnunet_protocols.h"
 #include "gnunet_transport_service.h"
 #include "gnunet_transport_core_service.h"
-#include "gnunet_nat_lib.h"
-
-/**
- * How long do we wait for the NAT test to report success?
- * Should match NAT_SERVER_TIMEOUT in 'nat_test.c'.
- */
-#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 20)
 
 /**
  * Timeout for a name resolution
@@ -171,49 +161,6 @@ struct PeerResolutionContext
 };
 
 
-/**
- * Context for a plugin test.
- */
-struct TestContext
-{
-  /**
-   * Previous in DLL
-   */
-  struct TestContext *prev;
-
-  /**
-   * Next in DLL
-   */
-  struct TestContext *next;
-
-  /**
-   * Handle to the active NAT test.
-   */
-  struct GNUNET_NAT_Test *tst;
-
-  /**
-   * Task identifier for the timeout.
-   */
-  struct GNUNET_SCHEDULER_Task *tsk;
-
-  /**
-   * Name of plugin under test.
-   */
-  char *name;
-
-  /**
-   * Bound port
-   */
-  unsigned long long bnd_port;
-
-  /**
-   * Advertised ports
-   */
-  unsigned long long adv_port;
-
-};
-
-
 /**
  * Benchmarking block size in KB
  */
@@ -264,11 +211,6 @@ static int iterate_connections;
  */
 static int iterate_all;
 
-/**
- * Option -t.
- */
-static int test_configuration;
-
 /**
  * Option -c.
  */
@@ -365,16 +307,6 @@ struct GNUNET_OS_Process *resolver;
  */
 static unsigned int address_resolutions;
 
-/**
- * DLL for NAT Test Contexts: head
- */
-static struct TestContext *head;
-
-/**
- * DLL for NAT Test Contexts: tail
- */
-static struct TestContext *tail;
-
 /**
  * DLL: head of validation resolution entries
  */
@@ -553,11 +485,13 @@ operation_timeout (void *cls)
                _("Failed to resolve address for peer `%s'\n"),
                GNUNET_i2s (&cur->addrcp->peer));
 
-      GNUNET_CONTAINER_DLL_remove(rc_head, rc_tail, cur);
+      GNUNET_CONTAINER_DLL_remove(rc_head, 
+                                 rc_tail,
+                                 cur);
       GNUNET_TRANSPORT_address_to_string_cancel (cur->asc);
-      GNUNET_free(cur->transport);
-      GNUNET_free(cur->addrcp);
-      GNUNET_free(cur);
+      GNUNET_free (cur->transport);
+      GNUNET_free (cur->addrcp);
+      GNUNET_free (cur);
 
     }
     FPRINTF (stdout,
@@ -570,158 +504,6 @@ operation_timeout (void *cls)
 }
 
 
-static void
-run_nat_test (void);
-
-
-/**
- * Display the result of the test.
- *
- * @param tc test context
- * @param result #GNUNET_YES on success
- */
-static void
-display_test_result (struct TestContext *tc,
-                     enum GNUNET_NAT_StatusCode result)
-{
-  FPRINTF (stderr,
-           _("NAT plugin `%s' reports: %s\n"),
-           tc->name,
-           GNUNET_NAT_status2string (result));
-  if (NULL != tc->tsk)
-  {
-    GNUNET_SCHEDULER_cancel (tc->tsk);
-    tc->tsk = NULL;
-  }
-  if (NULL != tc->tst)
-  {
-    GNUNET_NAT_test_stop (tc->tst);
-    tc->tst = NULL;
-  }
-
-  GNUNET_CONTAINER_DLL_remove (head, tail, tc);
-  GNUNET_free (tc->name);
-  GNUNET_free (tc);
-
-  if ((NULL == head) && (NULL != resolver))
-  {
-    GNUNET_break (0 == GNUNET_OS_process_kill (resolver,
-                                               GNUNET_TERM_SIG));
-    GNUNET_OS_process_destroy (resolver);
-    resolver = NULL;
-  }
-  if (NULL != head)
-    run_nat_test ();
-}
-
-
-/**
- * Function called by NAT to report the outcome of the nat-test.
- * Clean up and update GUI.
- *
- * @param cls test context
- * @param result status code
- */
-static void
-result_callback (void *cls,
-                 enum GNUNET_NAT_StatusCode result)
-{
-  struct TestContext *tc = cls;
-
-  display_test_result (tc,
-                      result);
-}
-
-
-static void
-run_nat_test ()
-{
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-              "Running test for plugin `%s' using bind port %u and advertised port %u \n",
-              head->name,
-              (uint16_t) head->bnd_port,
-              (uint16_t) head->adv_port);
-
-  head->tst = GNUNET_NAT_test_start (cfg,
-                                    (0 == strcasecmp (head->name, "udp"))
-                                    ? GNUNET_NO : GNUNET_YES,
-                                    (uint16_t) head->bnd_port,
-                                    (uint16_t) head->adv_port,
-                                    TIMEOUT,
-                                    &result_callback, head);
-}
-
-
-/**
- * Test our plugin's configuration (NAT traversal, etc.).
- *
- * @param cfg configuration to test
- */
-static void
-do_test_configuration (const struct GNUNET_CONFIGURATION_Handle *cfg)
-{
-  char *plugins;
-  char *tok;
-  unsigned long long bnd_port;
-  unsigned long long adv_port;
-  struct TestContext *tc;
-  char *binary;
-
-  if (GNUNET_OK
-      != GNUNET_CONFIGURATION_get_value_string (cfg, "transport", "plugins",
-          &plugins))
-  {
-    FPRINTF (stderr, "%s", _
-    ("No transport plugins configured, peer will never communicate\n"));
-    ret = 4;
-    return;
-  }
-
-  for (tok = strtok (plugins, " "); tok != NULL ; tok = strtok (NULL, " "))
-  {
-    char section[12 + strlen (tok)];
-    GNUNET_snprintf (section, sizeof(section), "transport-%s", tok);
-    if (GNUNET_OK
-        != GNUNET_CONFIGURATION_get_value_number (cfg, section, "PORT",
-            &bnd_port))
-    {
-      FPRINTF (stderr,
-          _("No port configured for plugin `%s', cannot test it\n"), tok);
-      continue;
-    }
-    if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_number (cfg, section,
-            "ADVERTISED_PORT", &adv_port))
-      adv_port = bnd_port;
-
-    tc = GNUNET_new (struct TestContext);
-    tc->name = GNUNET_strdup (tok);
-    tc->adv_port = adv_port;
-    tc->bnd_port = bnd_port;
-    GNUNET_CONTAINER_DLL_insert_tail (head, tail, tc);
-  }
-  GNUNET_free(plugins);
-
-  if ((NULL != head) && (NULL == resolver))
-  {
-    binary = GNUNET_OS_get_libexec_binary_path ("gnunet-service-resolver");
-    resolver = GNUNET_OS_start_process (GNUNET_YES,
-                                        GNUNET_OS_INHERIT_STD_OUT_AND_ERR,
-                                        NULL, NULL, NULL,
-                                        binary,
-                                        "gnunet-service-resolver", NULL);
-    if (NULL == resolver)
-    {
-      FPRINTF (stderr, _("Failed to start resolver!\n"));
-      return;
-    }
-
-    GNUNET_free(binary);
-    GNUNET_RESOLVER_connect (cfg);
-    run_nat_test ();
-  }
-}
-
-
 /**
  * Function called to notify a client about the socket
  * begin ready to queue more data.  Sends another message.
@@ -1041,7 +823,9 @@ process_peer_string (void *cls,
   }
   GNUNET_free (rc->transport);
   GNUNET_free (rc->addrcp);
-  GNUNET_CONTAINER_DLL_remove (rc_head, rc_tail, rc);
+  GNUNET_CONTAINER_DLL_remove (rc_head,
+                              rc_tail,
+                              rc);
   GNUNET_free (rc);
   if ((0 == address_resolutions) && (iterate_connections))
   {
@@ -1461,11 +1245,6 @@ run (void *cls,
   ret = 1;
 
   cfg = (struct GNUNET_CONFIGURATION_Handle *) mycfg;
-  if (test_configuration)
-  {
-    do_test_configuration (cfg);
-    return;
-  }
   if ( (NULL != cpid) &&
        (GNUNET_OK !=
         GNUNET_CRYPTO_eddsa_public_key_from_string (cpid,
@@ -1691,9 +1470,6 @@ main (int argc,
     { 's', "send", NULL, gettext_noop
       ("send data for benchmarking to the other peer (until CTRL-C)"), 0,
       &GNUNET_GETOPT_set_one, &benchmark_send },
-    { 't', "test", NULL,
-      gettext_noop ("test transport configuration (involves external server)"),
-      0, &GNUNET_GETOPT_set_one, &test_configuration },
     GNUNET_GETOPT_OPTION_VERBOSE (&verbosity),
     GNUNET_GETOPT_OPTION_END
   };
@@ -1706,7 +1482,7 @@ main (int argc,
                             gettext_noop ("Direct access to transport service."),
                             options,
                             &run, NULL);
-  GNUNET_free((void *) argv);
+  GNUNET_free ((void *) argv);
   if (GNUNET_OK == res)
     return ret;
   return 1;