Core/Network: Refactor local/remote ip address selection code and allow using hostnames in LoginREST bnetserver config options

Port From (https://github.com/TrinityCore/TrinityCore/commit/6be536a73bc8a6e331ce20e7d19e2ea56b99b4d0)
This commit is contained in:
hondacrx
2023-08-28 11:15:57 -04:00
parent 0e3b271db3
commit c9ab9e4635
7 changed files with 49 additions and 51 deletions
+2 -11
View File
@@ -18,7 +18,7 @@ public class Realm : IEquatable<Realm>
public IPEndPoint GetAddressForClient(IPAddress clientAddr)
{
IPAddress realmIp;
IPAddress realmIp = ExternalAddress;
// Attempt to send best address for client
if (IPAddress.IsLoopback(clientAddr))
@@ -33,13 +33,6 @@ public class Realm : IEquatable<Realm>
realmIp = LocalAddress;
}
}
else
{
if (clientAddr.AddressFamily == AddressFamily.InterNetwork && clientAddr.GetNetworkAddress(LocalSubnetMask).Equals(LocalAddress.GetNetworkAddress(LocalSubnetMask)))
realmIp = LocalAddress;
else
realmIp = ExternalAddress;
}
IPEndPoint endpoint = new(realmIp, Port);
@@ -66,7 +59,6 @@ public class Realm : IEquatable<Realm>
{
return other.ExternalAddress.Equals(ExternalAddress)
&& other.LocalAddress.Equals(LocalAddress)
&& other.LocalSubnetMask.Equals(LocalSubnetMask)
&& other.Port == Port
&& other.Name == Name
&& other.Type == Type
@@ -78,14 +70,13 @@ public class Realm : IEquatable<Realm>
public override int GetHashCode()
{
return new { ExternalAddress, LocalAddress, LocalSubnetMask, Port, Name, Type, Flags, Timezone, AllowedSecurityLevel, PopulationLevel }.GetHashCode();
return new { ExternalAddress, LocalAddress, Port, Name, Type, Flags, Timezone, AllowedSecurityLevel, PopulationLevel }.GetHashCode();
}
public RealmId Id;
public uint Build;
public IPAddress ExternalAddress;
public IPAddress LocalAddress;
public IPAddress LocalSubnetMask;
public ushort Port;
public string Name;
public string NormalizedName;