diff options
author | Andrei Karas <akaras@inbox.ru> | 2013-08-08 01:45:28 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2013-08-08 01:45:28 +0300 |
commit | e2dfb4d9242f74e566416be7f3ad6ac529fac520 (patch) | |
tree | acdd8fd106ba993a0c54cfe7d82925c2532cc185 /src/net/tmwa/loginhandler.cpp | |
parent | bd7052d90ce2c493f8f93d2be46625bb8297ad79 (diff) | |
download | manaplus-e2dfb4d9242f74e566416be7f3ad6ac529fac520.tar.gz manaplus-e2dfb4d9242f74e566416be7f3ad6ac529fac520.tar.bz2 manaplus-e2dfb4d9242f74e566416be7f3ad6ac529fac520.tar.xz manaplus-e2dfb4d9242f74e566416be7f3ad6ac529fac520.zip |
Add support for different server flags in server version packet.
This can break old tmwAthena builds.
Registration on this servers may work or may not work by random.
Diffstat (limited to 'src/net/tmwa/loginhandler.cpp')
-rw-r--r-- | src/net/tmwa/loginhandler.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/net/tmwa/loginhandler.cpp b/src/net/tmwa/loginhandler.cpp index 00e0563e8..9dc9c5447 100644 --- a/src/net/tmwa/loginhandler.cpp +++ b/src/net/tmwa/loginhandler.cpp @@ -41,6 +41,11 @@ namespace TmwAthena extern ServerInfo charServer; +enum ServerFlags +{ + FLAG_REGISTRATION = 1 +}; + LoginHandler::LoginHandler() : MessageHandler(), Ea::LoginHandler() @@ -188,7 +193,7 @@ void LoginHandler::processServerVersion(Net::MessageIn &msg) if (b1 == 255 && b2 == 'E' && b3 == 'V' && b4 == 'L') { const unsigned int options = msg.readInt8(); - mRegistrationEnabled = options; + mRegistrationEnabled = options & FLAG_REGISTRATION; msg.skip(2); // 0 unused serverVersion = msg.readInt8(); if (serverVersion >= 5) @@ -197,7 +202,7 @@ void LoginHandler::processServerVersion(Net::MessageIn &msg) else { const unsigned int options = msg.readInt32(); - mRegistrationEnabled = options; + mRegistrationEnabled = options & FLAG_REGISTRATION; serverVersion = 0; } logger->log("Server version: %d", serverVersion); |