From fe7e93cbcc20631e611c1a5505a03d00e73e0cc2 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sat, 7 Jan 2017 13:05:27 +0100 Subject: [PATCH] fixing uninit sin_addr; now successfully tested external hole punching support in new NAT code; documenting options to be used in the future --- src/nat/gnunet-service-nat.c | 2 +- src/transport/transport.conf.in | 40 +++++++++++++++++++++++++++++++-- 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/src/nat/gnunet-service-nat.c b/src/nat/gnunet-service-nat.c index a8a824b48..b3e81127b 100644 --- a/src/nat/gnunet-service-nat.c +++ b/src/nat/gnunet-service-nat.c @@ -28,7 +28,6 @@ * knowledge about the local network topology. * * TODO: - * - test manual hole punching support * - adapt existing transports to use new NAT logic * - abandon legacy NAT code * @@ -863,6 +862,7 @@ notify_client_external_ipv4_change (void *cls, s4 = (struct sockaddr_in *) &lal.addr; s4->sin_family = AF_INET; s4->sin_port = htons (ch->ext_dns_port); + s4->sin_addr = *v4; lal.af = AF_INET; lal.ac = GNUNET_NAT_AC_GLOBAL | GNUNET_NAT_AC_MANUAL; check_notify_client (&lal, diff --git a/src/transport/transport.conf.in b/src/transport/transport.conf.in index 4e9f17f77..7b5413bbe 100644 --- a/src/transport/transport.conf.in +++ b/src/transport/transport.conf.in @@ -38,7 +38,17 @@ TESTING_IGNORE_KEYS = ACCEPT_FROM; [transport-tcp] # Use 0 to ONLY advertise as a peer behind NAT (no port binding) PORT = 2086 + +# Obsolete option, to be replaced by HOLE_EXTERNAL (soon) ADVERTISED_PORT = 2086 + +# If we have a manually punched NAT, what is the external IP and port? +# Can use DNS names for DynDNS-based detection of external IP. +# Can use IPv6 addresses ([fefc::]:PORT). +# Use "AUTO" for the hostname to automatically detect external IP. +# Do not set if NAT is not manually punched. +# HOLE_EXTERNAL = AUTO:2086 + TESTING_IGNORE_KEYS = ACCEPT_FROM; # Maximum number of open TCP connections allowed @@ -72,8 +82,13 @@ BROADCAST_INTERVAL = 30 s MAX_BPS = 1000000 TESTING_IGNORE_KEYS = ACCEPT_FROM; -# Configuration for manually punched holes in NAT. -# HOLE_EXTERNAL = auto:2086 +# If we have a manually punched NAT, what is the external IP and port? +# Can use DNS names for DynDNS-based detection of external IP. +# Can use IPv6 addresses ([fefc::]:PORT). +# Use "AUTO" for the hostname to automatically detect external IP. +# Do not set if NAT is not manually punched. +# HOLE_EXTERNAL = AUTO:2086 + [transport-http_client] MAX_CONNECTIONS = 128 @@ -98,7 +113,18 @@ TESTING_IGNORE_KEYS = ACCEPT_FROM; [transport-http_server] #EXTERNAL_HOSTNAME = PORT = 1080 + +# Obsolete option, to be replaced by HOLE_EXTERNAL (soon) ADVERTISED_PORT = 1080 + +# If we have a manually punched NAT, what is the external IP and port? +# Can use DNS names for DynDNS-based detection of external IP. +# Can use IPv6 addresses ([fefc::]:PORT). +# Use "AUTO" for the hostname to automatically detect external IP. +# Do not set if NAT is not manually punched. +# HOLE_EXTERNAL = AUTO:2086 + + MAX_CONNECTIONS = 128 TESTING_IGNORE_KEYS = ACCEPT_FROM; @@ -139,7 +165,17 @@ TESTING_IGNORE_KEYS = ACCEPT_FROM; # Does the external hostname use the same port? # EXTERNAL_HOSTNAME_USE_PORT = YES PORT = 4433 + +# Obsolete option, to be replaced by HOLE_EXTERNAL (soon) ADVERTISED_PORT = 4433 + +# If we have a manually punched NAT, what is the external IP and port? +# Can use DNS names for DynDNS-based detection of external IP. +# Can use IPv6 addresses ([fefc::]:PORT). +# Use "AUTO" for the hostname to automatically detect external IP. +# Do not set if NAT is not manually punched. +# HOLE_EXTERNAL = AUTO:2086 + CRYPTO_INIT = NORMAL KEY_FILE = $GNUNET_DATA_HOME/transport/https.key CERT_FILE = $GNUNET_DATA_HOME/transport/https.cert -- 2.25.1