Important Update:
- SelectableCore: - Skip IP address "0.0.0.0" when resolving localhost
This commit is contained in:
@@ -575,11 +575,13 @@ bool CSelectableCore::ResolveAddress( THandle * Handle )
|
||||
int result;
|
||||
|
||||
// Check if more addresses
|
||||
if (Handle->AddressInfo && Handle->AddressInfo->ai_next)
|
||||
{
|
||||
// Set next address
|
||||
if (Handle->AddressInfo)
|
||||
Handle->AddressInfo = Handle->AddressInfo->ai_next;
|
||||
if (Handle->AddressInfo && !strcmp( inet_ntoa(((struct sockaddr_in *)Handle->AddressInfo->ai_addr)->sin_addr), "0.0.0.0" ))
|
||||
Handle->AddressInfo = Handle->AddressInfo->ai_next;
|
||||
|
||||
// Return address
|
||||
if (Handle->AddressInfo) {
|
||||
if (Log) Log->Message( LogLevel, dlMedium, "%s: Handle '%s' - Use next resolved Address [%s:%s]->[%s:%u]",
|
||||
Name, Handle->Name, Handle->HostName, Handle->PortName,
|
||||
inet_ntoa(((struct sockaddr_in *)Handle->AddressInfo->ai_addr)->sin_addr),
|
||||
@@ -610,9 +612,20 @@ bool CSelectableCore::ResolveAddress( THandle * Handle )
|
||||
return false;
|
||||
}
|
||||
|
||||
// Select first address
|
||||
// Select first address, skip "0.0.0.0"
|
||||
Handle->AddressInfo = Handle->AddressList;
|
||||
if (!strcmp( inet_ntoa(((struct sockaddr_in *)Handle->AddressInfo->ai_addr)->sin_addr), "0.0.0.0" ))
|
||||
Handle->AddressInfo = Handle->AddressInfo->ai_next;
|
||||
if (!Handle->AddressInfo) {
|
||||
if (Log) Log->Message( LogLevel, dlMedium, "%s: Handle '%s' - Failed to resolve Host Name [%s:%s] (%s)",
|
||||
Name, Handle->Name, Handle->HostName, Handle->PortName, gai_strerror(result) );
|
||||
freeaddrinfo( Handle->AddressList );
|
||||
Handle->AddressList = NULL;
|
||||
Handle->AddressInfo = NULL;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Return address
|
||||
if (Log) Log->Message( LogLevel, dlMedium, "%s: Handle '%s' - Host name resolved [%s:%s]->[%s:%u]",
|
||||
Name, Handle->Name, Handle->HostName, Handle->PortName,
|
||||
inet_ntoa(((struct sockaddr_in *)Handle->AddressInfo->ai_addr)->sin_addr),
|
||||
|
||||
Reference in New Issue
Block a user