aboutsummaryrefslogtreecommitdiff
path: root/src/transport/gnunet-communicator-tcp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/gnunet-communicator-tcp.c')
-rw-r--r--src/transport/gnunet-communicator-tcp.c10
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);