diff options
author | Ben Longbons <b.r.longbons@gmail.com> | 2014-04-18 22:09:42 -0700 |
---|---|---|
committer | Ben Longbons <b.r.longbons@gmail.com> | 2014-04-18 22:23:16 -0700 |
commit | 7f16d356995d4e9c29105f98d502a7e51a4c775d (patch) | |
tree | 3fc9f782d67f68d44c36d0dff2c197fc33dac206 /src/admin | |
parent | 56e149a51562b9d2620bc9037a81735c29ea95af (diff) | |
parent | 6d631217271fcdc57143a7f8e03a2595a93ab50f (diff) | |
download | tmwa-7f16d356995d4e9c29105f98d502a7e51a4c775d.tar.gz tmwa-7f16d356995d4e9c29105f98d502a7e51a4c775d.tar.bz2 tmwa-7f16d356995d4e9c29105f98d502a7e51a4c775d.tar.xz tmwa-7f16d356995d4e9c29105f98d502a7e51a4c775d.zip |
Merge tag 'v14.4.18' into master
Conflicts:
src/admin/ladmin.cpp
src/char/char.cpp
src/login/login.cpp
src/map/chrif.cpp
src/map/clif.cpp
src/mmo/socket.cpp
Diffstat (limited to 'src/admin')
-rw-r--r-- | src/admin/ladmin.cpp | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/src/admin/ladmin.cpp b/src/admin/ladmin.cpp index c635379..307e13b 100644 --- a/src/admin/ladmin.cpp +++ b/src/admin/ladmin.cpp @@ -286,6 +286,18 @@ void ladmin_log(XString line) } static +void delete_fromlogin(Session *) +{ + { + PRINTF("Impossible to have a connection with the login-server [%s:%d] !\n"_fmt, + login_ip, login_port); + LADMIN_LOG("Impossible to have a connection with the login-server [%s:%d] !\n"_fmt, + login_ip, login_port); + exit(0); + } +} + +static bool qsplit(ZString src) { return !src; @@ -1940,16 +1952,6 @@ void prompt(void) static void parse_fromlogin(Session *s) { - if (s->eof) - { - PRINTF("Impossible to have a connection with the login-server [%s:%d] !\n"_fmt, - login_ip, login_port); - LADMIN_LOG("Impossible to have a connection with the login-server [%s:%d] !\n"_fmt, - login_ip, login_port); - delete_session(s); - exit(0); - } - while (RFIFOREST(s) >= 2) { switch (RFIFOW(s, 0)) @@ -1964,7 +1966,7 @@ void parse_fromlogin(Session *s) PRINTF(" - administration system not activated, or\n"_fmt); PRINTF(" - unauthorised IP.\n"_fmt); LADMIN_LOG("Error at login: incorrect password, administration system not activated, or unauthorised IP.\n"_fmt); - s->eof = 1; + s->set_eof(); //bytes_to_read = 1; // not stop at prompt } else @@ -2763,7 +2765,7 @@ void parse_fromlogin(Session *s) default: PRINTF("Remote administration has been disconnected (unknown packet).\n"_fmt); LADMIN_LOG("'End of connection, unknown packet.\n"_fmt); - s->eof = 1; + s->set_eof(); return; } } @@ -2781,7 +2783,8 @@ int Connect_login_server(void) Iprintf("Attempt to connect to login-server...\n"_fmt); LADMIN_LOG("Attempt to connect to login-server...\n"_fmt); - login_session = make_connection(login_ip, login_port); + login_session = make_connection(login_ip, login_port, SessionParsers{func_parse: parse_fromlogin, func_delete: delete_fromlogin}); + if (!login_session) return 0; @@ -2900,8 +2903,6 @@ int do_init(Slice<ZString> argv) LADMIN_LOG(""_fmt); LADMIN_LOG("Configuration file readed.\n"_fmt); - set_defaultparse(parse_fromlogin); - Iprintf("EAthena login-server administration tool.\n"_fmt); Version version = CURRENT_LOGIN_SERVER_VERSION; Iprintf("for tmwA version %hhu.%hhu.%hhu (dev? %hhu) (flags %hhx) (which %hhx) (vend %hu)\n"_fmt, |