* @brief functionality shared by http client and server transport service plugin
* @author Matthias Wachs
*/
-
#include "platform.h"
-#include "gnunet_common.h"
+#include "gnunet_util_lib.h"
#include "gnunet_transport_plugin.h"
#include "plugin_transport_http_common.h"
int port;
};
+
static void
http_clean_splitted (struct SplittedHTTPAddress *spa)
{
- if (NULL != spa)
- {
- GNUNET_free_non_null (spa->protocol);
- GNUNET_free_non_null (spa->host);
- GNUNET_free_non_null (spa->path);
- GNUNET_free_non_null (spa);
- }
+ if (NULL != spa)
+ {
+ GNUNET_free_non_null (spa->protocol);
+ GNUNET_free_non_null (spa->host);
+ GNUNET_free_non_null (spa->path);
+ GNUNET_free_non_null (spa);
+ }
}
struct SplittedHTTPAddress *
const char * addr_str;
char *res;
+ GNUNET_assert (NULL != plugin);
if (NULL == addr)
return NULL;
- if (0 >= addrlen)
- return NULL;
+ if (0 == addrlen)
+ return TRANSPORT_SESSION_INBOUND_STRING;
if (addrlen != http_common_address_get_size (address))
return NULL;
addr_str = (char *) &address[1];
if (addr_str[ntohl(address->urlen) -1] != '\0')
return NULL;
-
GNUNET_asprintf (&res, "%s.%u.%s", plugin, ntohl(address->options), &address[1]);
if (strlen(res) + 1 < 500)
{
address = NULL;
plugin = NULL;
optionstr = NULL;
- options = 0;
if ((NULL == addr) || (addrlen == 0))
{
GNUNET_break (0);
}
optionstr[0] = '\0';
optionstr ++;
- options = atol (optionstr);
+ options = atol (optionstr); /* 0 on conversion error, that's ok */
address = strchr (optionstr, '.');
if (NULL == address)
{