fixed compiling netdb.c after LWIP_IPV4 changes

This commit is contained in:
goldsimon 2015-04-22 09:17:31 +02:00
parent fe195a86cd
commit 0142f113a3

View File

@ -265,7 +265,7 @@ lwip_getaddrinfo(const char *nodename, const char *servname,
err_t err;
ip_addr_t addr;
struct addrinfo *ai;
struct sockaddr_in *sa = NULL;
struct sockaddr_storage *sa = NULL;
int port_nr = 0;
size_t total_size;
size_t namelen = 0;
@ -318,9 +318,10 @@ lwip_getaddrinfo(const char *nodename, const char *servname,
return EAI_MEMORY;
}
memset(ai, 0, total_size);
sa = (struct sockaddr_storage *)(void*)((u8_t*)ai + sizeof(struct addrinfo));
if (IP_IS_V6(addr)) {
#if LWIP_IPV6
struct sockaddr_in6 *sa6 = (struct sockaddr_in6*)((u8_t*)ai + sizeof(struct addrinfo));
struct sockaddr_in6 *sa6 = (struct sockaddr_in6*)sa;
/* set up sockaddr */
inet6_addr_from_ip6addr(&sa6->sin6_addr, ip_2_ip6(&addr));
sa->sin_family = AF_INET6;
@ -329,12 +330,12 @@ lwip_getaddrinfo(const char *nodename, const char *servname,
#endif /* LWIP_IPV6 */
} else {
#if LWIP_IPV4
struct sockaddr_in *sa = (struct sockaddr_in*)((u8_t*)ai + sizeof(struct addrinfo));
struct sockaddr_in *sa4 = (struct sockaddr_in*)sa;
/* set up sockaddr */
inet_addr_from_ipaddr(&sa->sin_addr, ip_2_ip4(&addr));
sa->sin_family = AF_INET;
sa->sin_len = sizeof(struct sockaddr_in);
sa->sin_port = htons((u16_t)port_nr);
inet_addr_from_ipaddr(&sa4->sin_addr, ip_2_ip4(&addr));
sa4->sin_family = AF_INET;
sa4->sin_len = sizeof(struct sockaddr_in);
sa4->sin_port = htons((u16_t)port_nr);
#endif /* LWIP_IPV4 */
}