http_server_plugin_address_suggested (void *cls, const void *addr,
size_t addrlen)
{
- struct HttpAddressWrapper *next;
- struct HttpAddressWrapper *pos;
- struct HttpAddress *h_addr;
- h_addr = (struct HttpAddress *) addr;
-
- if ((NULL != p->ext_addr) &&
- GNUNET_YES == (http_common_cmp_addresses (addr, addrlen,
- p->ext_addr, p->ext_addr_len)))
- {
- /* Checking HTTP_OPTIONS_VERIFY_CERTIFICATE option for external hostname */
- if ((ntohl(h_addr->options) & HTTP_OPTIONS_VERIFY_CERTIFICATE) !=
- (p->options & HTTP_OPTIONS_VERIFY_CERTIFICATE))
+ struct HttpAddressWrapper *next;
+ struct HttpAddressWrapper *pos;
+ const struct HttpAddress *haddr = addr;
+
+ if ((NULL != p->ext_addr) &&
+ GNUNET_YES == (http_common_cmp_addresses (addr, addrlen,
+ p->ext_addr, p->ext_addr_len)))
+ {
+ /* Checking HTTP_OPTIONS_VERIFY_CERTIFICATE option for external hostname */
+ if ((ntohl(haddr->options) & HTTP_OPTIONS_VERIFY_CERTIFICATE) !=
+ (p->options & HTTP_OPTIONS_VERIFY_CERTIFICATE))
return GNUNET_NO; /* VERIFY option not set as required! */
- return GNUNET_OK;
- }
-
- next = p->addr_head;
- while (NULL != (pos = next))
- {
- next = pos->next;
- if (GNUNET_YES == (http_common_cmp_addresses(addr,
- addrlen,
- pos->address,
- pos->addrlen)))
- return GNUNET_OK;
-
- }
-
- return GNUNET_NO;
+ return GNUNET_OK;
+ }
+
+ next = p->addr_head;
+ while (NULL != (pos = next))
+ {
+ next = pos->next;
+ if (GNUNET_YES == (http_common_cmp_addresses(addr,
+ addrlen,
+ pos->address,
+ pos->addrlen)))
+ return GNUNET_OK;
+
+ }
+ return GNUNET_NO;
}
server_start (struct HTTP_Server_Plugin *plugin)
{
unsigned int timeout;
+ char *msg;
GNUNET_assert (NULL != plugin);
#if BUILD_HTTPS
"MHD cannot set timeout per connection! Default time out %u sec.\n",
timeout);
#endif
+
plugin->server_v4 = NULL;
if (plugin->use_ipv4 == GNUNET_YES)
{
&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);
}
+
+
plugin->server_v6 = NULL;
if (plugin->use_ipv6 == GNUNET_YES)
{
&server_disconnect_cb, plugin,
MHD_OPTION_EXTERNAL_LOGGER,
server_log, NULL, MHD_OPTION_END);
-
- }
-
- if ((plugin->use_ipv4 == GNUNET_YES) && (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);
- return GNUNET_SYSERR;
+ 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);
}
- server_reschedule (plugin, plugin->server_v4, GNUNET_NO);
- if ((plugin->use_ipv6 == GNUNET_YES) && (plugin->server_v6 == NULL))
+ msg = "No";
+ if ((plugin->server_v6 == NULL) && (plugin->server_v4 == 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);
+ "%s %s server component started on port %u\n",
+ msg, plugin->name, plugin->port);
+ sleep (10);
return GNUNET_SYSERR;
}
- server_reschedule (plugin, plugin->server_v6, GNUNET_NO);
+ else if ((plugin->server_v6 != NULL) && (plugin->server_v4 != 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 server component started on port %u\n", plugin->name,
- plugin->port);
+ "%s %s server component started on port %u\n",
+ msg, plugin->name, plugin->port);
return GNUNET_OK;
}
LIBGNUNET_PLUGIN_TRANSPORT_DONE (api);
return NULL;
}
-
return api;
}