* @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 *
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)
{
struct sockaddr_storage *s;
(*res) = GNUNET_SYSERR;
char * to_conv;
+ size_t urlen;
ha = (const struct HttpAddress *) addr;
if (NULL == addr)
- {
- GNUNET_break (0);
- return NULL;
- }
+ {
+ GNUNET_break(0);
+ return NULL ;
+ }
if (0 >= addrlen)
- {
- GNUNET_break (0);
- return NULL;
- }
- if (addrlen < sizeof (struct HttpAddress))
- {
- GNUNET_break (0);
- return NULL;
- }
- if (addrlen < sizeof (struct HttpAddress) + ntohl (ha->urlen))
- {
- /* This is a legacy addresses */
- return NULL;
- }
- if (((char *) addr)[addrlen-1] != '\0')
- {
- GNUNET_break (0);
- return NULL;
- }
+ {
+ GNUNET_break(0);
+ return NULL ;
+ }
+ if (addrlen < sizeof(struct HttpAddress))
+ {
+ GNUNET_break(0);
+ return NULL ;
+ }
+ urlen = ntohl (ha->urlen);
+ if (sizeof(struct HttpAddress) + urlen != addrlen)
+ {
+ /* This is a legacy addresses */
+ return NULL ;
+ }
+ if (addrlen < sizeof(struct HttpAddress) + urlen)
+ {
+ /* This is a legacy addresses */
+ return NULL ;
+ }
+ if (((char *) addr)[addrlen - 1] != '\0')
+ {
+ GNUNET_break(0);
+ return NULL ;
+ }
spa = http_split_address ((const char *) &ha[1]);
if (NULL == spa)
{