From d6a2a9c0225fd5e52cd965125095b848a07f9c2e Mon Sep 17 00:00:00 2001 From: Abhik Roy Date: Tue, 13 Dec 2022 15:07:19 +0530 Subject: [PATCH] netdb: Fix addrtype and length in gethostbyname 2.1.3-esp: aee6b3ed netdb:fixed addrtype and length in gethostbyname --- src/api/netdb.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/api/netdb.c b/src/api/netdb.c index 158dd865..1b0694b7 100644 --- a/src/api/netdb.c +++ b/src/api/netdb.c @@ -118,8 +118,8 @@ lwip_gethostbyname(const char *name) s_hostent.h_name = s_hostname; s_aliases = NULL; s_hostent.h_aliases = &s_aliases; - s_hostent.h_addrtype = AF_INET; - s_hostent.h_length = sizeof(ip_addr_t); + s_hostent.h_addrtype = (IPADDR_TYPE_V4 == IP_GET_TYPE(&addr)? AF_INET : AF_INET6); + s_hostent.h_length = IP_ADDR_RAW_SIZE(addr); s_hostent.h_addr_list = (char **)&s_phostent_addr; #if DNS_DEBUG @@ -218,8 +218,8 @@ lwip_gethostbyname_r(const char *name, struct hostent *ret, char *buf, h->aliases = NULL; ret->h_name = hostname; ret->h_aliases = &h->aliases; - ret->h_addrtype = AF_INET; - ret->h_length = sizeof(ip_addr_t); + ret->h_addrtype = (IPADDR_TYPE_V4 == IP_GET_TYPE(&h->addr)? AF_INET : AF_INET6); + ret->h_length = IP_ADDR_RAW_SIZE(h->addr); ret->h_addr_list = (char **)&h->addr_list; /* set result != NULL */