diff options
Diffstat (limited to 'src/transport/plugin_transport_tcp.c')
-rw-r--r-- | src/transport/plugin_transport_tcp.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/transport/plugin_transport_tcp.c b/src/transport/plugin_transport_tcp.c index d93c4423c..a0dd80617 100644 --- a/src/transport/plugin_transport_tcp.c +++ b/src/transport/plugin_transport_tcp.c | |||
@@ -11,7 +11,7 @@ | |||
11 | WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | Affero General Public License for more details. | 13 | Affero General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU Affero General Public License | 15 | You should have received a copy of the GNU Affero General Public License |
16 | along with this program. If not, see <http://www.gnu.org/licenses/>. | 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. |
17 | 17 | ||
@@ -1471,6 +1471,12 @@ tcp_nat_port_map_callback (void *cls, | |||
1471 | args = sizeof (t4); | 1471 | args = sizeof (t4); |
1472 | break; | 1472 | break; |
1473 | case AF_INET6: | 1473 | case AF_INET6: |
1474 | if (IN6_IS_ADDR_LINKLOCAL (&((struct sockaddr_in6 *) addr)->sin6_addr)) | ||
1475 | { | ||
1476 | /* skip link local, we don't allow them in | ||
1477 | #tcp_plugin_check_address() */ | ||
1478 | return; | ||
1479 | } | ||
1474 | GNUNET_assert(addrlen == sizeof(struct sockaddr_in6)); | 1480 | GNUNET_assert(addrlen == sizeof(struct sockaddr_in6)); |
1475 | memset (&t6, 0, sizeof(t6)); | 1481 | memset (&t6, 0, sizeof(t6)); |
1476 | GNUNET_memcpy (&t6.ipv6_addr, | 1482 | GNUNET_memcpy (&t6.ipv6_addr, |