(svn r15934) -Fix: work around Solaris' inability to "parse" 0 as defined in the specifications.

This commit is contained in:
rubidium 2009-04-03 15:24:39 +00:00
parent cfac582c36
commit 627163b785

View File

@ -69,7 +69,14 @@ static SOCKET ResolveLoopProc(addrinfo *runp)
const sockaddr_storage *NetworkAddress::GetAddress()
{
if (!this->IsResolved()) this->Resolve(this->address.ss_family, 0, AI_ADDRCONFIG, ResolveLoopProc);
if (!this->IsResolved()) {
/* Here we try to resolve a network address. We use SOCK_STREAM as
* socket type because some stupid OSes, like Solaris, cannot be
* bothered to implement the specifications and allow '0' as value
* that means "don't care whether it is SOCK_STREAM or SOCK_DGRAM".
*/
this->Resolve(this->address.ss_family, SOCK_STREAM, AI_ADDRCONFIG, ResolveLoopProc);
}
return &this->address;
}