Skip to content
Snippets Groups Projects
Commit 29b93c32 authored by Rob Swindell's avatar Rob Swindell :speech_balloon:
Browse files

Don't use deprecated functions: inet_addr() and gethostbyname()

parent eda230f7
No related branches found
No related tags found
No related merge requests found
......@@ -1003,7 +1003,8 @@ static in_addr_t resolve_ip(const char *inaddr)
char* p;
char* addr;
char buf[128];
HOSTENT* host;
struct addrinfo* res;
in_addr_t ipa = INADDR_NONE;
SAFECOPY(buf, inaddr);
addr = buf;
......@@ -1019,15 +1020,15 @@ static in_addr_t resolve_ip(const char *inaddr)
if (*p != '.' && !IS_DIGIT(*p))
break;
if (!(*p))
return inet_addr(addr);
return parseIPv4Address(addr);
if ((host = gethostbyname(inaddr)) == NULL)
if (getaddrinfo(addr, NULL, NULL, &res) != 0)
return INADDR_NONE;
if (host->h_addr_list[0] == NULL)
return INADDR_NONE;
return *((in_addr_t*)host->h_addr_list[0]);
if (res->ai_family == AF_INET)
ipa = ((struct sockaddr_in*)res->ai_addr)->sin_addr.s_addr;
freeaddrinfo(res);
return ipa;
}
/****************************************************************************/
......@@ -2788,7 +2789,7 @@ static int chk_received_hdr(SOCKET socket, const char* prot, const char *buf, IN
strncpy(ip, p, 16);
ip[15] = 0;
addr.in.sin_family = AF_INET;
addr.in.sin_addr.s_addr = inet_addr(ip);
addr.in.sin_addr.s_addr = parseIPv4Address(ip);
lprintf(LOG_DEBUG, "%04d %s DNSBL checking received header address %s [%s]", socket, prot, host_name, ip);
}
......
......@@ -458,8 +458,9 @@ int close_socket(SOCKET sock)
/* TODO: IPv6 */
in_addr_t resolve_ip(char *addr)
{
HOSTENT* host;
char* p;
struct addrinfo* res;
in_addr_t ipa = INADDR_NONE;
if (*addr == 0)
return INADDR_NONE;
......@@ -468,12 +469,15 @@ in_addr_t resolve_ip(char *addr)
if (*p != '.' && !IS_DIGIT(*p))
break;
if (!(*p))
return inet_addr(addr);
if ((host = gethostbyname(addr)) == NULL)
return INADDR_NONE;
if (host->h_addr_list[0] == NULL)
return parseIPv4Address(addr);
if (getaddrinfo(addr, NULL, NULL, &res) != 0)
return INADDR_NONE;
return *((in_addr_t*)host->h_addr_list[0]);
if (res->ai_family == AF_INET)
ipa = ((struct sockaddr_in*)res->ai_addr)->sin_addr.s_addr;
freeaddrinfo(res);
return ipa;
}
} /* extern "C" */
......@@ -5921,8 +5925,10 @@ NO_SSH:
result = connect(new_node->passthru_socket, (struct sockaddr *)&tmp_addr, tmp_addr_len);
if (result != 0) {
char tmp[16];
lprintf(LOG_ERR, "Node %d !ERROR %d (%d) connecting to passthru socket: %s port %u"
, new_node->cfg.node_num, result, SOCKET_ERRNO, inet_ntoa(tmp_addr.sin_addr), htons(tmp_addr.sin_port));
, new_node->cfg.node_num, result, SOCKET_ERRNO
, inet_ntop(AF_INET, &tmp_addr.sin_addr.s_addr, tmp, sizeof tmp), htons(tmp_addr.sin_port));
close_socket(new_node->passthru_socket);
new_node->passthru_socket = INVALID_SOCKET;
close_socket(tmp_sock);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment