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