diff --git a/src/api/netdb.c b/src/api/netdb.c index 87714259d55dc680be4501392bcd3afcabe4bcec..52a6fdf0fc2fb79e4e7469e5e2c29d83cac16558 100644 --- a/src/api/netdb.c +++ b/src/api/netdb.c @@ -378,6 +378,7 @@ lwip_getaddrinfo(const char *nodename, const char *servname, sa6->sin6_port = lwip_htons((u16_t)port_nr); sa6->sin6_scope_id = ip6_addr_zone(ip_2_ip6(&addr)); ai->ai_family = AF_INET6; + ai->ai_addrlen = sizeof(struct sockaddr_in6); #endif /* LWIP_IPV6 */ } else { #if LWIP_IPV4 @@ -388,6 +389,7 @@ lwip_getaddrinfo(const char *nodename, const char *servname, sa4->sin_len = sizeof(struct sockaddr_in); sa4->sin_port = lwip_htons((u16_t)port_nr); ai->ai_family = AF_INET; + ai->ai_addrlen = sizeof(struct sockaddr_in); #endif /* LWIP_IPV4 */ } @@ -403,7 +405,6 @@ lwip_getaddrinfo(const char *nodename, const char *servname, MEMCPY(ai->ai_canonname, nodename, namelen); ai->ai_canonname[namelen] = 0; } - ai->ai_addrlen = sizeof(struct sockaddr_storage); ai->ai_addr = (struct sockaddr *)sa; *res = ai;