summaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-09-09 22:15:19 +0300
committerAndrei Karas <akaras@inbox.ru>2015-09-09 22:15:19 +0300
commita2af952c687ff666208a316d8b7b4e394df19d2f (patch)
treeef20e0d49ac16397d3aa7b47db8657e89e175dc7 /src/net
parent847ad4c18e4355cac45102f5ad8f8bbf4e43f84f (diff)
downloadmv-a2af952c687ff666208a316d8b7b4e394df19d2f.tar.gz
mv-a2af952c687ff666208a316d8b7b4e394df19d2f.tar.bz2
mv-a2af952c687ff666208a316d8b7b4e394df19d2f.tar.xz
mv-a2af952c687ff666208a316d8b7b4e394df19d2f.zip
Read server packet version from server (hercules).
Diffstat (limited to 'src/net')
-rw-r--r--src/net/eathena/loginrecv.cpp16
-rw-r--r--src/net/tmwa/loginrecv.cpp3
2 files changed, 19 insertions, 0 deletions
diff --git a/src/net/eathena/loginrecv.cpp b/src/net/eathena/loginrecv.cpp
index 472ce76be..cd0a09060 100644
--- a/src/net/eathena/loginrecv.cpp
+++ b/src/net/eathena/loginrecv.cpp
@@ -35,6 +35,8 @@
#include "debug.h"
+extern int packetVersion;
+
namespace EAthena
{
@@ -145,9 +147,23 @@ void LoginRecv::processServerVersion(Net::MessageIn &msg)
msg.readInt32("unused");
serverVersion = msg.readInt32("server version");
if (serverVersion > 0)
+ {
logger->log("Evol2 server version: %d", serverVersion);
+ if (serverVersion >= 8)
+ {
+ packetVersion = msg.readInt32("packet version");
+ logger->log("Hercules packet version: %d", packetVersion);
+ }
+ else
+ {
+ packetVersion = 20150000;
+ logger->log("Possible hercules packet version: %d", packetVersion);
+ }
+ }
else
+ {
logger->log("Hercules without version");
+ }
client->setState(STATE_LOGIN);
}
diff --git a/src/net/tmwa/loginrecv.cpp b/src/net/tmwa/loginrecv.cpp
index 772691573..d5ca68241 100644
--- a/src/net/tmwa/loginrecv.cpp
+++ b/src/net/tmwa/loginrecv.cpp
@@ -33,6 +33,8 @@
#include "debug.h"
+extern int packetVersion;
+
namespace TmwAthena
{
@@ -45,6 +47,7 @@ enum ServerFlags
void LoginRecv::processServerVersion(Net::MessageIn &msg)
{
+ packetVersion = 0;
const uint8_t b1 = msg.readUInt8("b1"); // -1
const uint8_t b2 = msg.readUInt8("b2");
const uint8_t b3 = msg.readUInt8("b3");