now trying to convert hostname as a dot notation address before
trying name lookup. not all platforms will do this for us in gethostbyname().
This commit is contained in:
parent
327af03d3d
commit
a996db6600
|
@ -99,6 +99,18 @@ CNetworkAddress::CNetworkAddress(const CString& hostname_, UInt16 port) :
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// convert dot notation to address
|
||||||
|
unsigned long addr = CNetwork::inet_addr(hostname.c_str());
|
||||||
|
if (addr != INADDR_NONE) {
|
||||||
|
struct sockaddr_in* inetAddress = reinterpret_cast<
|
||||||
|
struct sockaddr_in*>(&m_address);
|
||||||
|
inetAddress->sin_family = AF_INET;
|
||||||
|
inetAddress->sin_port = CNetwork::swaphtons(port);
|
||||||
|
inetAddress->sin_addr.s_addr = addr;
|
||||||
|
memset(inetAddress->sin_zero, 0, sizeof(inetAddress->sin_zero));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// look up name
|
// look up name
|
||||||
struct hostent* hent = CNetwork::gethostbyname(hostname.c_str());
|
struct hostent* hent = CNetwork::gethostbyname(hostname.c_str());
|
||||||
if (hent == NULL) {
|
if (hent == NULL) {
|
||||||
|
|
Loading…
Reference in New Issue