--- bzflag-2.0.4.20050930/src/net/Address.cxx.lookup 2005-09-07 23:57:38.000000000 +0200 +++ bzflag-2.0.4.20050930/src/net/Address.cxx 2005-11-21 16:49:23.000000000 +0100 @@ -136,6 +136,8 @@ int j; struct hostent* hent; + struct hostent myhostent; + if (hname == "") { // local address char hostname[MAXHOSTNAMELEN+1]; if (gethostname(hostname, sizeof(hostname)) >= 0) @@ -147,7 +149,21 @@ a.addr.push_back(tempAddr); return a; } else { // non-local address - hent = gethostbyname(hname.c_str()); + // hent = gethostbyname(hname.c_str()); + { + const char *hn = hname.c_str() ; + char buf[1024] ; + int my_herrno = 0; + + memset(&myhostent, 0, sizeof(myhostent)) ; + hent = 0 ; + + if(gethostbyname2_r (hn, AF_INET, &myhostent, buf,sizeof(buf), + &hent, &my_herrno) != 0) { + sprintf(buf,"gethostbyname2_r failed %d", my_herrno) ; + printError(buf) ; + } + } } if (!hent) {