From 7afa921bf5d21f5b8260e71d7ec0d7927fb085e3 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Fri, 21 May 2010 07:57:48 +0000 Subject: [PATCH] do not use link local addresses --- src/transport/plugin_transport_tcp.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/transport/plugin_transport_tcp.c b/src/transport/plugin_transport_tcp.c index 5aa1b8c2f..5daa29532 100644 --- a/src/transport/plugin_transport_tcp.c +++ b/src/transport/plugin_transport_tcp.c @@ -1174,6 +1174,11 @@ tcp_plugin_check_address (void *cls, void *addr, size_t addrlen) else { v6 = (struct IPv6TcpAddress *) addr; + if (IN6_IS_ADDR_LINKLOCAL (v6->ipv6_addr)) + { + GNUNET_break_op (0); + return GNUNET_SYSERR; + } v6->t6_port = htons (check_port (plugin, ntohs (v6->t6_port))); } return GNUNET_OK; @@ -1444,6 +1449,11 @@ process_interfaces (void *cls, } else if (af == AF_INET6) { + if (IN6_IS_ADDR_LINKLOCAL (((struct sockaddr_in6 *) addr)->sin6_addr.s6_addr)) + { + /* skip link local addresses */ + return GNUNET_OK; + } memcpy (t6.ipv6_addr, ((struct sockaddr_in6 *) addr)->sin6_addr.s6_addr, 16); -- 2.25.1