Better detection of loopback and local addresses

This commit is contained in:
Subsonic154 2026-04-16 10:58:43 -04:00
parent 8a786fb7b3
commit bb2acae949

View file

@ -91,10 +91,15 @@ object LoginActor {
* @return the appropriate host address
*/
private def selectHostAddress(ipAddress: String): InetSocketAddress = {
ipAddress.substring(0, ipAddress.indexOf(".")) match {
case "127" => localHostAddress
case "10" | "169" | "172" | "192" => gameTestServerAddressLocal
case _ => gameTestServerAddressPublic
val address = InetAddress.getByName(ipAddress)
if (address.isLoopbackAddress()) {
localHostAddress
}
else if (address.isSiteLocalAddress()) {
gameTestServerAddressLocal
}
else {
gameTestServerAddressPublic
}
}
}