From bc25e36e89779538adfd395c8d937c1677c20900 Mon Sep 17 00:00:00 2001
From: Rawng <rawng.github@gmail.com>
Date: Sun, 7 Jun 2015 18:52:06 -0400
Subject: Check usePersistentIP when switching map servers

---
 src/net/eathena/charserverhandler.cpp | 10 +++++++++-
 src/net/tmwa/charserverhandler.cpp    | 10 +++++++++-
 2 files changed, 18 insertions(+), 2 deletions(-)

(limited to 'src/net')

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();
-- 
cgit v1.2.3-70-g09d2