diff options
Diffstat (limited to 'src/char')
-rw-r--r-- | src/char/char.cpp | 9 | ||||
-rw-r--r-- | src/char/char.hpp | 3 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/char/char.cpp b/src/char/char.cpp index 345265f..7ad6dff 100644 --- a/src/char/char.cpp +++ b/src/char/char.cpp @@ -62,6 +62,7 @@ #include "../proto2/any-user.hpp" #include "../proto2/login-admin.hpp" #include "../proto2/login-char.hpp" +#include "../proto2/login-user.hpp" #include "../proto2/char-map.hpp" #include "../proto2/char-user.hpp" @@ -2259,6 +2260,14 @@ void parse_char(Session *s) special.magic_packet_length = 4; send_ppacket<0x8000>(s, special); + if(sd->packet_client_version < MIN_CLIENT_VERSION) + { + Packet_Fixed<0x006a> fixed_6a; + fixed_6a.error_code = 5; + send_fpacket<0x006a, 23>(s, fixed_6a); + goto x65_out; + } + // search authentification for (AuthFifoEntry& afi : auth_fifo) { diff --git a/src/char/char.hpp b/src/char/char.hpp index 049875b..8adac4d 100644 --- a/src/char/char.hpp +++ b/src/char/char.hpp @@ -42,6 +42,9 @@ std::chrono::seconds DEFAULT_AUTOSAVE_INTERVAL = 5_min; constexpr GmLevel default_gm_level = GmLevel::from(0_u32); +// increase the min version when the protocol is incompatible with old m+ versions +#define MIN_CLIENT_VERSION 1 + struct AuthFifoEntry { AccountId account_id; |