Fix for not having address/localaddress set from not localhost

This commit is contained in:
KimLS 2015-07-16 14:35:20 -07:00
parent c8f6b098c2
commit 87d42931aa

View File

@ -1224,23 +1224,36 @@ void Client::Clearance(int8 response)
const char *zs_addr = nullptr; const char *zs_addr = nullptr;
if(cle && cle->IsLocalClient()) { if(cle && cle->IsLocalClient()) {
const char *local_addr = zs->GetCLocalAddress(); const char *local_addr = zs->GetCLocalAddress();
if(local_addr[0]) { if(local_addr[0]) {
zs_addr = local_addr; zs_addr = local_addr;
} else {
if(strcmp(local_addr, "127.0.0.1") == 0)
{
zs_addr = WorldConfig::get()->LocalAddress.c_str();
} else { } else {
struct in_addr in; struct in_addr in;
in.s_addr = zs->GetIP(); in.s_addr = zs->GetIP();
zs_addr = inet_ntoa(in); zs_addr = inet_ntoa(in);
} }
}
} else { } else {
const char *addr = zs->GetCAddress(); const char *addr = zs->GetCAddress();
if(addr[0]) { if(addr[0]) {
zs_addr = addr; zs_addr = addr;
} else { } else {
if(strcmp(addr, "127.0.0.1") == 0)
{
zs_addr = WorldConfig::get()->WorldAddress.c_str();
}
else {
struct in_addr in; struct in_addr in;
in.s_addr = zs->GetIP(); in.s_addr = zs->GetIP();
zs_addr = inet_ntoa(in); zs_addr = inet_ntoa(in);
} }
} }
}
strcpy(zsi->ip, zs_addr); strcpy(zsi->ip, zs_addr);
zsi->port =zs->GetCPort(); zsi->port =zs->GetCPort();