diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c index 940e19603cf00287698eeb203aa552b0aec27d36..b88a87207893e0f0763a15d5b33d2d3753e47401 100644 --- a/src/sbbs3/mailsrvr.c +++ b/src/sbbs3/mailsrvr.c @@ -1004,6 +1004,7 @@ static in_addr_t resolve_ip(const char *inaddr) char* addr; char buf[128]; struct addrinfo* res; + struct addrinfo hints = {0}; in_addr_t ipa = INADDR_NONE; SAFECOPY(buf, inaddr); @@ -1022,7 +1023,8 @@ static in_addr_t resolve_ip(const char *inaddr) if (!(*p)) return parseIPv4Address(addr); - if (getaddrinfo(addr, NULL, NULL, &res) != 0) + hints.ai_family = AF_INET; + if (getaddrinfo(addr, NULL, &hints, &res) != 0) return INADDR_NONE; if (res->ai_family == AF_INET) diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index 20bea4fad629d17e756a4f979553c6aba448d9f9..9033bcbeb144297648d39d87021715d9d40b5713 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -460,6 +460,7 @@ in_addr_t resolve_ip(char *addr) { char* p; struct addrinfo* res; + struct addrinfo hints = {0}; in_addr_t ipa = INADDR_NONE; if (*addr == 0) @@ -471,7 +472,8 @@ in_addr_t resolve_ip(char *addr) if (!(*p)) return parseIPv4Address(addr); - if (getaddrinfo(addr, NULL, NULL, &res) != 0) + hints.ai_family = AF_INET; + if (getaddrinfo(addr, NULL, &hints, &res) != 0) return INADDR_NONE; if (res->ai_family == AF_INET)