diff options
Diffstat (limited to 'src/login_sql/login.c')
-rw-r--r-- | src/login_sql/login.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/login_sql/login.c b/src/login_sql/login.c index c8c9496ec..ecf09ae98 100644 --- a/src/login_sql/login.c +++ b/src/login_sql/login.c @@ -1345,8 +1345,9 @@ int parse_login(int fd) break; case 0x0064: // request client login - case 0x0277: // New login packet (layout is same as 0x64 but different length) case 0x01dd: // request client login (encryption mode) + case 0x0277: // New login packet (layout is same as 0x64 but different length) + case 0x02b0: // New login packet (kRO 2007-05-14aSakexe langtype 0) { int packet_len = RFIFOREST(fd); @@ -1362,14 +1363,16 @@ int parse_login(int fd) break; } - if ((command == 0x0064 && packet_len < 55) || - (command == 0x0277 && packet_len < 84) || - (command == 0x01dd && packet_len < 47)) + if( (command == 0x0064 && packet_len < 55) + || (command == 0x01dd && packet_len < 47) + || (command == 0x0277 && packet_len < 84) + || (command == 0x02b0 && packet_len < 85) ) return 0; // S 0064 <version>.l <account name>.24B <password>.24B <version2>.B - // S 0277 ?? // S 01dd <version>.l <account name>.24B <md5 binary>.16B <version2>.B + // S 0277 ?? + // S 02b0 <version>.l <account name>.24B <password>.24B <?>.B <ip address>.16B <?>.13 <version2>.B memset(&account, 0, sizeof(account)); account.version = RFIFOL(fd,2); |