From 87322b3289b601a2b9ac69fb47f613930060c742 Mon Sep 17 00:00:00 2001 From: Matthias Wachs Date: Tue, 4 Oct 2011 15:53:31 +0000 Subject: implemented: client-only mode --- src/transport/plugin_transport_http.c | 34 +++++++++++++++++++++++----------- src/transport/plugin_transport_http.h | 12 +++++++++--- 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 -#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 */ -- cgit v1.2.3