if ((addrlen != sizeof (struct IPv4HttpAddress)) &&
(addrlen != sizeof (struct IPv6HttpAddress)))
{
- GNUNET_break_op (0);
return GNUNET_SYSERR;
}
if (addrlen == sizeof (struct IPv4HttpAddress))
{
v4 = (struct IPv4HttpAddress *) addr;
-
+ if (INADDR_LOOPBACK == ntohl(v4->ipv4_addr))
+ {
+ return GNUNET_SYSERR;
+ }
port = ntohs (v4->u_port);
if (port != plugin->port_inbound)
{
- GNUNET_break_op (0);
return GNUNET_SYSERR;
}
}
v6 = (struct IPv6HttpAddress *) addr;
if (IN6_IS_ADDR_LINKLOCAL (&v6->ipv6_addr))
{
- GNUNET_break_op (0);
return GNUNET_SYSERR;
}
port = ntohs (v6->u6_port);
if (port != plugin->port_inbound)
{
- GNUNET_break_op (0);
return GNUNET_SYSERR;
}
-
}
+
+
return GNUNET_OK;
}
/* Suggesting addresses with wrong port*/
struct IPv4HttpAddress failing_addr;
- failing_addr.ipv4_addr = INADDR_LOOPBACK;
- failing_addr.u_port = 0;
+ failing_addr.ipv4_addr = htonl(INADDR_LOOPBACK);
+ failing_addr.u_port = htons(0);
suggest_res = api->check_address (NULL,&failing_addr,sizeof (struct IPv4HttpAddress));
GNUNET_assert (GNUNET_SYSERR == suggest_res);
/* Suggesting addresses with wrong size*/
- failing_addr.ipv4_addr = INADDR_LOOPBACK;
- failing_addr.u_port = 0;
+ failing_addr.ipv4_addr = htonl(INADDR_LOOPBACK);
+ failing_addr.u_port = htons(0);
suggest_res = api->check_address (NULL,&failing_addr,sizeof (struct IPv6HttpAddress));
GNUNET_assert (GNUNET_SYSERR == suggest_res);
/* Suggesting addresses with wrong address*/
- failing_addr.ipv4_addr = 0;
- failing_addr.u_port = 12389;
+ failing_addr.ipv4_addr = htonl(INADDR_LOOPBACK);
+ failing_addr.u_port = htons(12389);
suggest_res = api->check_address (NULL,&failing_addr,sizeof (struct IPv4HttpAddress));
GNUNET_assert (GNUNET_SYSERR == suggest_res);