Merge pull request #1271 from EQEmu/cleanup/world_client_clearance

[ASan] Make Client::Clearance less gross
This commit is contained in:
Alex 2021-03-05 19:14:26 -08:00 committed by GitHub
commit fdca333280
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1307,23 +1307,23 @@ void Client::Clearance(int8 response)
outapp = new EQApplicationPacket(OP_ZoneServerInfo, sizeof(ZoneServerInfo_Struct)); outapp = new EQApplicationPacket(OP_ZoneServerInfo, sizeof(ZoneServerInfo_Struct));
ZoneServerInfo_Struct* zsi = (ZoneServerInfo_Struct*)outapp->pBuffer; ZoneServerInfo_Struct* zsi = (ZoneServerInfo_Struct*)outapp->pBuffer;
const char *zs_addr = nullptr; std::string zs_addr;
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 { } else {
zs_addr = zs->GetIP().c_str(); zs_addr = zs->GetIP();
if (!zs_addr[0]) { if (zs_addr.empty()) {
zs_addr = WorldConfig::get()->LocalAddress.c_str(); zs_addr = WorldConfig::get()->LocalAddress;
} }
if(strcmp(zs_addr, "127.0.0.1") == 0) if(zs_addr == "127.0.0.1")
{ {
LogInfo("Local zone address was [{}], setting local address to: [{}]", zs_addr, WorldConfig::get()->LocalAddress.c_str()); LogInfo("Local zone address was [{}], setting local address to: [{}]", zs_addr, WorldConfig::get()->LocalAddress.c_str());
zs_addr = WorldConfig::get()->LocalAddress.c_str(); zs_addr = WorldConfig::get()->LocalAddress;
} else { } else {
LogInfo("Local zone address [{}]", zs_addr); LogInfo("Local zone address [{}]", zs_addr);
} }
@ -1334,11 +1334,11 @@ void Client::Clearance(int8 response)
if(addr[0]) { if(addr[0]) {
zs_addr = addr; zs_addr = addr;
} else { } else {
zs_addr = WorldConfig::get()->WorldAddress.c_str(); zs_addr = WorldConfig::get()->WorldAddress;
} }
} }
strcpy(zsi->ip, zs_addr); strcpy(zsi->ip, zs_addr.c_str());
zsi->port =zs->GetCPort(); zsi->port =zs->GetCPort();
LogInfo("Sending client to zone [{}] ([{}]:[{}]) at [{}]:[{}]", zonename, zone_id, instance_id, zsi->ip, zsi->port); LogInfo("Sending client to zone [{}] ([{}]:[{}]) at [{}]:[{}]", zonename, zone_id, instance_id, zsi->ip, zsi->port);
QueuePacket(outapp); QueuePacket(outapp);