[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r28979 - gnunet/src/transport
From: |
gnunet |
Subject: |
[GNUnet-SVN] r28979 - gnunet/src/transport |
Date: |
Wed, 4 Sep 2013 11:41:55 +0200 |
Author: wachs
Date: 2013-09-04 11:41:55 +0200 (Wed, 04 Sep 2013)
New Revision: 28979
Modified:
gnunet/src/transport/plugin_transport_http_server.c
Log:
mhd is failing to bind both IPv4 and IPv6 -> restructured http plugin to no
fail if one fails
Modified: gnunet/src/transport/plugin_transport_http_server.c
===================================================================
--- gnunet/src/transport/plugin_transport_http_server.c 2013-09-04 08:00:17 UTC
(rev 28978)
+++ gnunet/src/transport/plugin_transport_http_server.c 2013-09-04 09:41:55 UTC
(rev 28979)
@@ -2006,6 +2006,7 @@
server_start (struct HTTP_Server_Plugin *plugin)
{
unsigned int timeout;
+ char *msg;
GNUNET_assert (NULL != plugin);
#if BUILD_HTTPS
@@ -2029,22 +2030,23 @@
"MHD cannot set timeout per connection! Default time out %u
sec.\n",
timeout);
#endif
- plugin->server_v4 = NULL;
- if (plugin->use_ipv4 == GNUNET_YES)
+
+ plugin->server_v6 = NULL;
+ if (plugin->use_ipv6 == GNUNET_YES)
{
- plugin->server_v4 = MHD_start_daemon (
+ plugin->server_v6 = MHD_start_daemon (
#if VERBOSE_SERVER
MHD_USE_DEBUG |
#endif
#if BUILD_HTTPS
MHD_USE_SSL |
#endif
- MHD_NO_FLAG, plugin->port,
+ MHD_USE_IPv6, plugin->port,
&server_accept_cb, plugin,
&server_access_cb, plugin,
MHD_OPTION_SOCK_ADDR,
- (struct sockaddr_in *)
- plugin->server_addr_v4,
+ (struct sockaddr_in6 *)
+ plugin->server_addr_v6,
MHD_OPTION_CONNECTION_LIMIT,
(unsigned int)
plugin->max_connections,
@@ -2065,23 +2067,32 @@
&server_disconnect_cb, plugin,
MHD_OPTION_EXTERNAL_LOGGER,
server_log, NULL, MHD_OPTION_END);
+ if (plugin->server_v6 == NULL)
+ {
+ GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, plugin->name,
+ "Failed to start %s IPv6 server component on port %u\n",
+ plugin->name, plugin->port);
+ }
+ else
+ server_reschedule (plugin, plugin->server_v6, GNUNET_NO);
}
- plugin->server_v6 = NULL;
- if (plugin->use_ipv6 == GNUNET_YES)
+
+ plugin->server_v4 = NULL;
+ if (plugin->use_ipv4 == GNUNET_YES)
{
- plugin->server_v6 = MHD_start_daemon (
+ plugin->server_v4 = MHD_start_daemon (
#if VERBOSE_SERVER
MHD_USE_DEBUG |
#endif
#if BUILD_HTTPS
MHD_USE_SSL |
#endif
- MHD_USE_IPv6, plugin->port,
+ MHD_NO_FLAG, plugin->port,
&server_accept_cb, plugin,
&server_access_cb, plugin,
MHD_OPTION_SOCK_ADDR,
- (struct sockaddr_in6 *)
- plugin->server_addr_v6,
+ (struct sockaddr_in *)
+ plugin->server_addr_v4,
MHD_OPTION_CONNECTION_LIMIT,
(unsigned int)
plugin->max_connections,
@@ -2102,29 +2113,34 @@
&server_disconnect_cb, plugin,
MHD_OPTION_EXTERNAL_LOGGER,
server_log, NULL, MHD_OPTION_END);
-
+ if (plugin->server_v4 == NULL)
+ {
+ GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, plugin->name,
+ "Failed to start %s IPv4 server component on port %u\n",
+ plugin->name, plugin->port);
+ }
+ else
+ server_reschedule (plugin, plugin->server_v4, GNUNET_NO);
}
- if ((plugin->use_ipv4 == GNUNET_YES) && (plugin->server_v4 == NULL))
+ msg = "No";
+ if ((plugin->server_v6 == NULL) && (plugin->server_v6 == NULL))
{
GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, plugin->name,
- "Failed to start %s IPv4 server component on port %u\n",
- plugin->name, plugin->port);
+ "%s %s server component started on port %u\n",
+ msg, plugin->name, plugin->port);
return GNUNET_SYSERR;
}
- server_reschedule (plugin, plugin->server_v4, GNUNET_NO);
+ else if ((plugin->server_v6 != NULL) && (plugin->server_v6 != NULL))
+ msg = "IPv4 and IPv6";
+ else if (plugin->server_v6 != NULL)
+ msg = "IPv6";
+ else if (plugin->server_v4 != NULL)
+ msg = "IPv4";
+ GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name,
+ "%s %s server component started on port %u\n",
+ msg, plugin->name, plugin->port);
- if ((plugin->use_ipv6 == GNUNET_YES) && (plugin->server_v6 == NULL))
- {
- GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, plugin->name,
- "Failed to start %s IPv6 server component on port %u\n",
- plugin->name, plugin->port);
- return GNUNET_SYSERR;
- }
- server_reschedule (plugin, plugin->server_v6, GNUNET_NO);
- GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name,
- "%s server component started on port %u\n", plugin->name,
- plugin->port);
return GNUNET_OK;
}
@@ -3124,7 +3140,6 @@
LIBGNUNET_PLUGIN_TRANSPORT_DONE (api);
return NULL;
}
-
return api;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r28979 - gnunet/src/transport,
gnunet <=