diff options
Diffstat (limited to 'src/login/parse.c')
-rw-r--r-- | src/login/parse.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/login/parse.c b/src/login/parse.c index b50f52e..7b6bb11 100644 --- a/src/login/parse.c +++ b/src/login/parse.c @@ -14,12 +14,22 @@ #include "login/parse.h" +int clientVersion = 0; + void login_parse_version(int fd) { struct login_session_data* sd = (struct login_session_data*)session[fd]->session_data; if (!sd) return; + clientVersion = RFIFOL(fd, 2); + + if (clientVersion < 2) + { + login->login_error(fd, 5); + return; + } + WFIFOHEAD(fd, 4 + 8); WFIFOW(fd, 0) = 0x7531; WFIFOW(fd, 2) = 4 + 8; @@ -27,3 +37,14 @@ void login_parse_version(int fd) WFIFOL(fd, 8) = 1; // server version WFIFOSET(fd, WFIFOW(fd,2)); } + +int elogin_parse_client_login_pre(int *fd, struct login_session_data* sd, const char *const ip) +{ + if (clientVersion < 2) + { + login->login_error(*fd, 5); + hookStop(); + return 1; + } + return 0; +} |