*/
#include "platform.h"
-#include "gnunet_common.h"
-#include "gnunet_server_lib.h"
+#include "gnunet_util_lib.h"
#include "gnunet_statistics_service.h"
#include "gnunet_transport_plugin.h"
#include "gnunet_nat_lib.h"
*/
static int
-server_parse_url (struct HTTP_Server_Plugin *plugin, const char * url, struct GNUNET_PeerIdentity * target, uint32_t *tag)
+server_parse_url (struct HTTP_Server_Plugin *plugin,
+ const char *url,
+ struct GNUNET_PeerIdentity *target,
+ uint32_t *tag)
{
char * tag_start = NULL;
char * tag_end = NULL;
char * target_start = NULL;
char * separator = NULL;
- char hash[plugin->peer_id_length+1];
- int hash_length;
+ unsigned int hash_length;
unsigned long int ctag;
/* URL parsing
if (DEBUG_URL_PARSE) GNUNET_break (0);
return GNUNET_SYSERR;
}
- memcpy (hash, target_start, hash_length);
- hash[hash_length] = '\0';
-
- if (GNUNET_OK != GNUNET_CRYPTO_hash_from_string ((const char *) hash, &(target->hashPubKey)))
- {
+ if (GNUNET_OK !=
+ GNUNET_CRYPTO_ecc_public_sign_key_from_string (target_start,
+ hash_length,
+ &target->public_key))
+ {
/* hash conversion failed */
if (DEBUG_URL_PARSE) GNUNET_break (0);
return GNUNET_SYSERR;
}
-
- GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name,
- "Found target `%s' in url\n", GNUNET_h2s_full(&target->hashPubKey));
+ GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG,
+ plugin->name,
+ "Found target `%s' in URL\n",
+ GNUNET_i2s_full (target));
return GNUNET_OK;
}
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;
}
plugin->max_connections);
- plugin->peer_id_length = strlen (GNUNET_h2s_full (&plugin->env->my_identity->hashPubKey));
+ plugin->peer_id_length = strlen (GNUNET_i2s_full (plugin->env->my_identity));
return GNUNET_OK;
}
LIBGNUNET_PLUGIN_TRANSPORT_DONE (api);
return NULL;
}
-
return api;
}