implemented: client-only mode
authorMatthias Wachs <wachs@net.in.tum.de>
Tue, 4 Oct 2011 15:53:31 +0000 (15:53 +0000)
committerMatthias Wachs <wachs@net.in.tum.de>
Tue, 4 Oct 2011 15:53:31 +0000 (15:53 +0000)
src/transport/plugin_transport_http.c
src/transport/plugin_transport_http.h

index bafc7f15bcb7bda0ad0694928e90fbc983606569..3c61cf2427a306b9c943e44ee34a53b7b84dfaa6 100644 (file)
@@ -581,6 +581,9 @@ http_plugin_disconnect (void *cls, const struct GNUNET_PeerIdentity *target)
   struct Session *next = NULL;
   struct Session *s = plugin->head;
 
+  GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name,
+                   "Transport tells me to disconnect `%s'\n",
+                   GNUNET_i2s (target));
   while (s != NULL)
   {
     next = s->next;
@@ -907,6 +910,13 @@ configure_plugin (struct Plugin *plugin)
   }
   plugin->port = port;
 
+  plugin->client_only = GNUNET_NO;
+  if (plugin->port == 0)
+  {
+    GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, plugin->name,
+                   _("Port 0, client only mode\n"));
+    plugin->client_only = GNUNET_YES;
+  }
 
   char * bind4_address = NULL;
   if ((plugin->ipv4 == GNUNET_YES) && (GNUNET_YES ==
@@ -1024,19 +1034,21 @@ LIBGNUNET_PLUGIN_TRANSPORT_INIT (void *cls)
   }
 
   /* Start server */
-  res = server_start (plugin);
-  if (res == GNUNET_SYSERR)
+  if (plugin->client_only == GNUNET_NO)
   {
-    server_stop (plugin);
-    client_stop (plugin);
-
-    GNUNET_free_non_null (plugin->server_addr_v4);
-    GNUNET_free_non_null (plugin->server_addr_v6);
-    GNUNET_free (plugin);
-    GNUNET_free (api);
-    return NULL;
+    res = server_start (plugin);
+    if (res == GNUNET_SYSERR)
+    {
+      server_stop (plugin);
+      client_stop (plugin);
+
+      GNUNET_free_non_null (plugin->server_addr_v4);
+      GNUNET_free_non_null (plugin->server_addr_v6);
+      GNUNET_free (plugin);
+      GNUNET_free (api);
+      return NULL;
+    }
   }
-
   /* Report addresses to transport service */
   start_report_addresses (plugin);
 
index 9b057d1b0f8b8ae58d089348c21a0576a7424965..e62c980b45dd92a0600cee5fe9c324e2aca15c91 100644 (file)
@@ -42,9 +42,9 @@
 #include <curl/curl.h>
 
 
-#define DEBUG_HTTP GNUNET_YES
-#define VERBOSE_SERVER GNUNET_YES
-#define VERBOSE_CLIENT GNUNET_YES
+#define DEBUG_HTTP GNUNET_NO
+#define VERBOSE_SERVER GNUNET_NO
+#define VERBOSE_CLIENT GNUNET_NO
 #define VERBOSE_CURL GNUNET_EXTRA_LOGGING
 
 #if BUILD_HTTPS
@@ -142,6 +142,12 @@ struct Plugin
    */
   int ipv6;
 
+  /**
+   * Does plugin just use outbound connections and not accept inbound?
+   */
+
+  int client_only;
+
   /**
    * Port used
    */