summaryrefslogtreecommitdiff
path: root/toxcore/network.c
diff options
context:
space:
mode:
Diffstat (limited to 'toxcore/network.c')
-rw-r--r--toxcore/network.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/toxcore/network.c b/toxcore/network.c
index 08fb71c7..1186a468 100644
--- a/toxcore/network.c
+++ b/toxcore/network.c
@@ -258,10 +258,14 @@ static int receivepacket(sock_t sock, IP_Port *ip_port, uint8_t *data, uint32_t
258 ip_port->port = addr_in->sin_port; 258 ip_port->port = addr_in->sin_port;
259 } else if (addr.ss_family == AF_INET6) { 259 } else if (addr.ss_family == AF_INET6) {
260 struct sockaddr_in6 *addr_in6 = (struct sockaddr_in6 *)&addr; 260 struct sockaddr_in6 *addr_in6 = (struct sockaddr_in6 *)&addr;
261
262 ip_port->ip.family = addr_in6->sin6_family; 261 ip_port->ip.family = addr_in6->sin6_family;
263 ip_port->ip.ip6.in6_addr = addr_in6->sin6_addr; 262 ip_port->ip.ip6.in6_addr = addr_in6->sin6_addr;
264 ip_port->port = addr_in6->sin6_port; 263 ip_port->port = addr_in6->sin6_port;
264
265 if (IN6_IS_ADDR_V4MAPPED(&ip_port->ip.ip6.in6_addr)) {
266 ip_port->ip.family = AF_INET;
267 ip_port->ip.ip4.uint32 = ip_port->ip.ip6.uint32[3];
268 }
265 } else 269 } else
266 return -1; 270 return -1;
267 271