nameserv: avoid sockaddr_in6 with disabled IPv6 support
Fixes: 10c760a80c
("nameserv: require getaddrinfo() and getnameinfo()")
This commit is contained in:
parent
3f6528da77
commit
039b388c82
1 changed files with 7 additions and 3 deletions
10
nameserv.c
10
nameserv.c
|
@ -130,7 +130,11 @@ int
|
||||||
DNS_IPAddress2Name(IPAddr *ip_addr, char *name, int len)
|
DNS_IPAddress2Name(IPAddr *ip_addr, char *name, int len)
|
||||||
{
|
{
|
||||||
char *result = NULL;
|
char *result = NULL;
|
||||||
struct sockaddr_in6 in6;
|
#ifdef FEAT_IPV6
|
||||||
|
struct sockaddr_in6 saddr;
|
||||||
|
#else
|
||||||
|
struct sockaddr_in saddr;
|
||||||
|
#endif
|
||||||
IPSockAddr ip_saddr;
|
IPSockAddr ip_saddr;
|
||||||
socklen_t slen;
|
socklen_t slen;
|
||||||
char hbuf[NI_MAXHOST];
|
char hbuf[NI_MAXHOST];
|
||||||
|
@ -138,8 +142,8 @@ DNS_IPAddress2Name(IPAddr *ip_addr, char *name, int len)
|
||||||
ip_saddr.ip_addr = *ip_addr;
|
ip_saddr.ip_addr = *ip_addr;
|
||||||
ip_saddr.port = 0;
|
ip_saddr.port = 0;
|
||||||
|
|
||||||
slen = SCK_IPSockAddrToSockaddr(&ip_saddr, (struct sockaddr *)&in6, sizeof (in6));
|
slen = SCK_IPSockAddrToSockaddr(&ip_saddr, (struct sockaddr *)&saddr, sizeof (saddr));
|
||||||
if (!getnameinfo((struct sockaddr *)&in6, slen, hbuf, sizeof (hbuf), NULL, 0, 0))
|
if (!getnameinfo((struct sockaddr *)&saddr, slen, hbuf, sizeof (hbuf), NULL, 0, 0))
|
||||||
result = hbuf;
|
result = hbuf;
|
||||||
|
|
||||||
if (result == NULL)
|
if (result == NULL)
|
||||||
|
|
Loading…
Reference in a new issue