diff options
-rw-r--r-- | src/net/eathena/charserverhandler.cpp | 10 | ||||
-rw-r--r-- | src/net/tmwa/charserverhandler.cpp | 10 |
2 files changed, 18 insertions, 2 deletions
diff --git a/src/net/eathena/charserverhandler.cpp b/src/net/eathena/charserverhandler.cpp index 63ca3f277..893be8f4f 100644 --- a/src/net/eathena/charserverhandler.cpp +++ b/src/net/eathena/charserverhandler.cpp @@ -478,7 +478,15 @@ void CharServerHandler::processChangeMapServer(Net::MessageIn &msg) gh->setMap(msg.readString(16, "map name")); const int x = msg.readInt16("x"); const int y = msg.readInt16("y"); - server.hostname = ipToString(msg.readInt32("host")); + if (config.getBoolValue("usePersistentIP") || settings.persistentIp) + { + msg.readInt32("host"); + server.hostname = settings.serverName; + } + else + { + server.hostname = ipToString(msg.readInt32("host")); + } server.port = msg.readInt16("port"); network->disconnect(); diff --git a/src/net/tmwa/charserverhandler.cpp b/src/net/tmwa/charserverhandler.cpp index 71c56e457..e27e2c125 100644 --- a/src/net/tmwa/charserverhandler.cpp +++ b/src/net/tmwa/charserverhandler.cpp @@ -450,7 +450,15 @@ void CharServerHandler::processChangeMapServer(Net::MessageIn &msg) gh->setMap(msg.readString(16, "map name")); const int x = msg.readInt16("x"); const int y = msg.readInt16("y"); - server.hostname = ipToString(msg.readInt32("ip address")); + if (config.getBoolValue("usePersistentIP") || settings.persistentIp) + { + msg.readInt32("ip address"); + server.hostname = settings.serverName; + } + else + { + server.hostname = ipToString(msg.readInt32("ip address")); + } server.port = msg.readInt16("port"); network->disconnect(); |