diff options
author | Schanzenbach, Martin <mschanzenbach@posteo.de> | 2019-12-27 04:48:12 +0900 |
---|---|---|
committer | Schanzenbach, Martin <mschanzenbach@posteo.de> | 2019-12-27 04:48:12 +0900 |
commit | 852b6710fb70b3943e2b2f02252bfa58bca3ce45 (patch) | |
tree | d50fd98d94f2acbf487b792e6bff1b5ffce83d63 /src/transport/gnunet-communicator-tcp.c | |
parent | 705ef31579622b7ad033ae4a22ddc30fa7040148 (diff) | |
download | gnunet-852b6710fb70b3943e2b2f02252bfa58bca3ce45.tar.gz gnunet-852b6710fb70b3943e2b2f02252bfa58bca3ce45.zip |
fix communicator IP parsing, debug udp communicator
Diffstat (limited to 'src/transport/gnunet-communicator-tcp.c')
-rw-r--r-- | src/transport/gnunet-communicator-tcp.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/transport/gnunet-communicator-tcp.c b/src/transport/gnunet-communicator-tcp.c index e902e2316..107a37838 100644 --- a/src/transport/gnunet-communicator-tcp.c +++ b/src/transport/gnunet-communicator-tcp.c | |||
@@ -1183,10 +1183,13 @@ tcp_address_to_sockaddr (const char *bindto, socklen_t *sock_len) | |||
1183 | /* try IPv4 */ | 1183 | /* try IPv4 */ |
1184 | struct sockaddr_in v4; | 1184 | struct sockaddr_in v4; |
1185 | 1185 | ||
1186 | if (1 == inet_pton (AF_INET, cp, &v4)) | 1186 | if (1 == inet_pton (AF_INET, cp, &v4.sin_addr)) |
1187 | { | 1187 | { |
1188 | v4.sin_family = AF_INET; | 1188 | v4.sin_family = AF_INET; |
1189 | v4.sin_port = htons ((uint16_t) port); | 1189 | v4.sin_port = htons ((uint16_t) port); |
1190 | #if HAVE_SOCKADDR_IN_SIN_LEN | ||
1191 | v4.sin_len = sizeof(struct sockaddr_in); | ||
1192 | #endif | ||
1190 | in = GNUNET_memdup (&v4, sizeof(v4)); | 1193 | in = GNUNET_memdup (&v4, sizeof(v4)); |
1191 | *sock_len = sizeof(v4); | 1194 | *sock_len = sizeof(v4); |
1192 | GNUNET_free (cp); | 1195 | GNUNET_free (cp); |
@@ -1204,10 +1207,13 @@ tcp_address_to_sockaddr (const char *bindto, socklen_t *sock_len) | |||
1204 | start++; /* skip over '[' */ | 1207 | start++; /* skip over '[' */ |
1205 | cp[strlen (cp) - 1] = '\0'; /* eat ']' */ | 1208 | cp[strlen (cp) - 1] = '\0'; /* eat ']' */ |
1206 | } | 1209 | } |
1207 | if (1 == inet_pton (AF_INET6, start, &v6)) | 1210 | if (1 == inet_pton (AF_INET6, start, &v6.sin6_addr)) |
1208 | { | 1211 | { |
1209 | v6.sin6_family = AF_INET6; | 1212 | v6.sin6_family = AF_INET6; |
1210 | v6.sin6_port = htons ((uint16_t) port); | 1213 | v6.sin6_port = htons ((uint16_t) port); |
1214 | #if HAVE_SOCKADDR_IN_SIN_LEN | ||
1215 | v6.sin6_len = sizeof(sizeof(struct sockaddr_in6)); | ||
1216 | #endif | ||
1211 | in = GNUNET_memdup (&v6, sizeof(v6)); | 1217 | in = GNUNET_memdup (&v6, sizeof(v6)); |
1212 | *sock_len = sizeof(v6); | 1218 | *sock_len = sizeof(v6); |
1213 | GNUNET_free (cp); | 1219 | GNUNET_free (cp); |