diff options
Diffstat (limited to 'src/transport')
-rw-r--r-- | src/transport/test_transport_nat_icmp_tcp_topo.conf | 7 | ||||
-rw-r--r-- | src/transport/transport_api_cmd_connecting_peers.c | 27 |
2 files changed, 33 insertions, 1 deletions
diff --git a/src/transport/test_transport_nat_icmp_tcp_topo.conf b/src/transport/test_transport_nat_icmp_tcp_topo.conf new file mode 100644 index 000000000..37738c80f --- /dev/null +++ b/src/transport/test_transport_nat_icmp_tcp_topo.conf | |||
@@ -0,0 +1,7 @@ | |||
1 | M:1 | ||
2 | N:1 | ||
3 | X:1 | ||
4 | T:libgnunet_test_transport_plugin_cmd_nat_upnp | ||
5 | K:1|{connect:{P:1:1:tcp_natted}} | ||
6 | R:1|{tcp_port:0}|{udp_port:0} | ||
7 | P:1:1 \ No newline at end of file | ||
diff --git a/src/transport/transport_api_cmd_connecting_peers.c b/src/transport/transport_api_cmd_connecting_peers.c index d399e9d0a..7feecbcc7 100644 --- a/src/transport/transport_api_cmd_connecting_peers.c +++ b/src/transport/transport_api_cmd_connecting_peers.c | |||
@@ -97,6 +97,13 @@ connect_peers_run (void *cls, | |||
97 | pos_prefix->address_prefix); | 97 | pos_prefix->address_prefix); |
98 | if (NULL != addr) | 98 | if (NULL != addr) |
99 | { | 99 | { |
100 | char *natted_p = strstr (pos_prefix->address_prefix, "_"); | ||
101 | |||
102 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
103 | "0 validating peer number %s %s %s\n", | ||
104 | natted_p, | ||
105 | pos_prefix->address_prefix, | ||
106 | addr); | ||
100 | if (0 == GNUNET_memcmp (pos_prefix->address_prefix, "udp")) | 107 | if (0 == GNUNET_memcmp (pos_prefix->address_prefix, "udp")) |
101 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 108 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
102 | "validating memcmp\n"); | 109 | "validating memcmp\n"); |
@@ -108,10 +115,28 @@ connect_peers_run (void *cls, | |||
108 | GNUNET_asprintf (&addr_and_port, | 115 | GNUNET_asprintf (&addr_and_port, |
109 | "%s:2086", | 116 | "%s:2086", |
110 | addr); | 117 | addr); |
111 | else | 118 | else if (NULL == natted_p) |
112 | GNUNET_asprintf (&addr_and_port, | 119 | GNUNET_asprintf (&addr_and_port, |
113 | "%s:60002", | 120 | "%s:60002", |
114 | addr); | 121 | addr); |
122 | else if (NULL != natted_p) | ||
123 | { | ||
124 | char *prefix; | ||
125 | char *rest; | ||
126 | char *rest2; | ||
127 | char *address; | ||
128 | |||
129 | prefix = strtok(addr, "_"); | ||
130 | rest = strtok(NULL, "_"); | ||
131 | rest2 = strtok(rest, "-"); | ||
132 | address = strtok(NULL, "-"); | ||
133 | |||
134 | GNUNET_asprintf (&addr_and_port, | ||
135 | "%s-%s:0", | ||
136 | prefix, | ||
137 | address); | ||
138 | |||
139 | } | ||
115 | peer = GNUNET_TESTING_get_peer (num, tl_system); | 140 | peer = GNUNET_TESTING_get_peer (num, tl_system); |
116 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 141 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
117 | "validating peer number %u with identity %s and address %s %u %s\n", | 142 | "validating peer number %u with identity %s and address %s %u %s\n", |