[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r11577 - gnunet/src/transport
From: |
gnunet |
Subject: |
[GNUnet-SVN] r11577 - gnunet/src/transport |
Date: |
Mon, 31 May 2010 18:03:43 +0200 |
Author: wachs
Date: 2010-05-31 18:03:43 +0200 (Mon, 31 May 2010)
New Revision: 11577
Modified:
gnunet/src/transport/plugin_transport_http.c
gnunet/src/transport/test_plugin_transport_http.c
Log:
Modified: gnunet/src/transport/plugin_transport_http.c
===================================================================
--- gnunet/src/transport/plugin_transport_http.c 2010-05-31 15:28:34 UTC
(rev 11576)
+++ gnunet/src/transport/plugin_transport_http.c 2010-05-31 16:03:43 UTC
(rev 11577)
@@ -1199,11 +1199,42 @@
http_plugin_address_suggested (void *cls,
void *addr, size_t addrlen)
{
- /* struct Plugin *plugin = cls; */
+ struct IPv4HttpAddress *v4;
+ struct IPv6HttpAddress *v6;
- /* check if the address is plausible; if so,
- add it to our list! */
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"HTTP Plugin:
http_plugin_address_suggested\n");
+ 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;
+
+ v4->u_port = ntohs (v4->u_port);
+ if (v4->u_port != plugin->port_inbound)
+ {
+ GNUNET_break_op (0);
+ return GNUNET_SYSERR;
+ }
+ }
+ else
+ {
+ v6 = (struct IPv6HttpAddress *) addr;
+ if (IN6_IS_ADDR_LINKLOCAL (&v6->ipv6_addr))
+ {
+ GNUNET_break_op (0);
+ return GNUNET_SYSERR;
+ }
+ v6->u6_port = ntohs (v6->u6_port);
+ if (v6->u6_port != plugin->port_inbound)
+ {
+ GNUNET_break_op (0);
+ return GNUNET_SYSERR;
+ }
+
+ }
return GNUNET_OK;
}
Modified: gnunet/src/transport/test_plugin_transport_http.c
===================================================================
--- gnunet/src/transport/test_plugin_transport_http.c 2010-05-31 15:28:34 UTC
(rev 11576)
+++ gnunet/src/transport/test_plugin_transport_http.c 2010-05-31 16:03:43 UTC
(rev 11577)
@@ -394,7 +394,7 @@
{
if (NULL==address)
return;
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Plugin returned: `%s'\n",address);
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Plugin returnedp pretty address:
`%s'\n",address);
fail_pretty_printer_count++;
}
@@ -421,6 +421,7 @@
struct Plugin_Address * tmp;
const char * addr_str;
unsigned int count_str_addr;
+ unsigned int suggest_res;
fail_pretty_printer = GNUNET_YES;
fail_notify_address = GNUNET_YES;
@@ -485,8 +486,11 @@
{
cur = addr_head;
-
api->address_pretty_printer(NULL,"http",cur->addr,cur->addrlen,GNUNET_NO,TEST_TIMEOUT,&pretty_printer_cb,NULL);
- addr_str = api->address_to_string(NULL,cur->addr,cur->addrlen);
+ api->address_pretty_printer
(NULL,"http",cur->addr,cur->addrlen,GNUNET_NO,TEST_TIMEOUT,&pretty_printer_cb,NULL);
+ addr_str = api->address_to_string (NULL,cur->addr,cur->addrlen);
+ suggest_res = api->check_address (NULL,cur->addr,cur->addrlen);
+
+ GNUNET_assert (GNUNET_OK == suggest_res);
GNUNET_assert (NULL != addr_str);
count_str_addr++;
@@ -501,6 +505,25 @@
fail_pretty_printer=GNUNET_NO;
fail_addr_to_str=GNUNET_NO;
+ /* Suggesting addresses with wrong port*/
+ struct IPv4HttpAddress failing_addr;
+ failing_addr.ipv4_addr = INADDR_LOOPBACK;
+ failing_addr.u_port = 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;
+ 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;
+ suggest_res = api->check_address (NULL,&failing_addr,sizeof (struct
IPv4HttpAddress));
+ GNUNET_assert (GNUNET_SYSERR == suggest_res);
+
/* testing finished, shutting down */
if ((fail_notify_address == GNUNET_NO) && (fail_pretty_printer == GNUNET_NO)
&& (fail_addr_to_str == GNUNET_NO) )
fail = 0;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r11577 - gnunet/src/transport,
gnunet <=