aboutsummaryrefslogtreecommitdiff
path: root/src/transport
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2011-05-16 13:51:05 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2011-05-16 13:51:05 +0000
commit096a81591d3a485f7ac83c8b81c5bd8b25a3a29a (patch)
treeb62ef1b54869acc8edf024bdc2ed4814219506a3 /src/transport
parent60858280816615ca9c70332af76bbb797f2984be (diff)
downloadgnunet-096a81591d3a485f7ac83c8b81c5bd8b25a3a29a.tar.gz
gnunet-096a81591d3a485f7ac83c8b81c5bd8b25a3a29a.zip
Another fix for specific bind addresses
Diffstat (limited to 'src/transport')
-rw-r--r--src/transport/plugin_transport_tcp.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/transport/plugin_transport_tcp.c b/src/transport/plugin_transport_tcp.c
index cca50c1ca..677157194 100644
--- a/src/transport/plugin_transport_tcp.c
+++ b/src/transport/plugin_transport_tcp.c
@@ -2663,7 +2663,7 @@ process_external_ip (void *cls,
2663 struct Plugin *plugin = cls; 2663 struct Plugin *plugin = cls;
2664 const struct sockaddr_in *s; 2664 const struct sockaddr_in *s;
2665 struct IPv4TcpAddress t4; 2665 struct IPv4TcpAddress t4;
2666 2666 char buf[INET_ADDRSTRLEN];
2667 2667
2668 plugin->ext_dns = NULL; 2668 plugin->ext_dns = NULL;
2669 if (addr == NULL) 2669 if (addr == NULL)
@@ -2690,9 +2690,29 @@ process_external_ip (void *cls,
2690 plugin->external_address, 2690 plugin->external_address,
2691 (int) plugin->adv_port); 2691 (int) plugin->adv_port);
2692 } 2692 }
2693
2694 if ((plugin->bind_address != NULL) && (plugin->behind_nat == GNUNET_NO))
2695 {
2696 GNUNET_assert (NULL != inet_ntop(AF_INET,
2697 &t4.ipv4_addr,
2698 buf,
2699 sizeof (buf)));
2700 if (0 != strcmp (plugin->bind_address, buf))
2701 {
2702 GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR,
2703 "tcp",
2704 "NAT is not enabled and specific bind address `%s' differs from external address `%s'! Not notifying about external address `%s'\n",
2705 plugin->bind_address,
2706 plugin->external_address,
2707 plugin->external_address);
2708 return;
2709 }
2710 }
2711
2693 add_to_address_list (plugin, 2712 add_to_address_list (plugin,
2694 &t4.ipv4_addr, 2713 &t4.ipv4_addr,
2695 sizeof (struct in_addr)); 2714 sizeof (struct in_addr));
2715
2696 plugin->env->notify_address (plugin->env->cls, 2716 plugin->env->notify_address (plugin->env->cls,
2697 "tcp", 2717 "tcp",
2698 &t4, sizeof(t4), 2718 &t4, sizeof(t4),