summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2011-10-04 15:53:31 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2011-10-04 15:53:31 +0000
commit87322b3289b601a2b9ac69fb47f613930060c742 (patch)
tree60a747c8e19a731af9f55011eb728ddbeeda1bd6
parentc0903135587174db426e04f7a50f1f319be9fad3 (diff)
implemented: client-only mode
-rw-r--r--src/transport/plugin_transport_http.c34
-rw-r--r--src/transport/plugin_transport_http.h12
2 files changed, 32 insertions, 14 deletions
diff --git a/src/transport/plugin_transport_http.c b/src/transport/plugin_transport_http.c
index bafc7f15b..3c61cf242 100644
--- a/src/transport/plugin_transport_http.c
+++ b/src/transport/plugin_transport_http.c
@@ -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);
diff --git a/src/transport/plugin_transport_http.h b/src/transport/plugin_transport_http.h
index 9b057d1b0..e62c980b4 100644
--- a/src/transport/plugin_transport_http.h
+++ b/src/transport/plugin_transport_http.h
@@ -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
@@ -143,6 +143,12 @@ struct Plugin
int ipv6;
/**
+ * Does plugin just use outbound connections and not accept inbound?
+ */
+
+ int client_only;
+
+ /**
* Port used
*/
uint16_t port;