summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/net/eathena/charserverhandler.cpp10
-rw-r--r--src/net/tmwa/charserverhandler.cpp10
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();