fixing uninit sin_addr; now successfully tested external hole punching support in...
authorChristian Grothoff <christian@grothoff.org>
Sat, 7 Jan 2017 12:05:27 +0000 (13:05 +0100)
committerChristian Grothoff <christian@grothoff.org>
Sat, 7 Jan 2017 12:05:27 +0000 (13:05 +0100)
src/nat/gnunet-service-nat.c
src/transport/transport.conf.in

index a8a824b48d32017552cc73bf3e1a4b0940a316c8..b3e81127b8a6c680ecf8452ebfc0a010aca2ce52 100644 (file)
@@ -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,
index 4e9f17f771460cb7fb3d23726392b3a52aabb044..7b5413bbe6cf5f3f44bfe98d467ed5b0fadaeee5 100644 (file)
@@ -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 = <your hostname/path>
 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