diff options
author | Haru <haru@dotalux.com> | 2019-02-01 21:06:06 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-01 21:06:06 +0100 |
commit | 034e47087595adabace0bf86771bbeba47de5713 (patch) | |
tree | b88da54d04aa0bbf4a18806af8b2b29c164d2e05 | |
parent | 0c79697fd26c26aa3aca9f8db651c3c85d209624 (diff) | |
parent | dd50f75ad8ec7c4810206600de0ca32cf0af2899 (diff) | |
download | hercules-034e47087595adabace0bf86771bbeba47de5713.tar.gz hercules-034e47087595adabace0bf86771bbeba47de5713.tar.bz2 hercules-034e47087595adabace0bf86771bbeba47de5713.tar.xz hercules-034e47087595adabace0bf86771bbeba47de5713.zip |
Merge pull request #2151 from dastgirp/login/message
Updated message on char-server
-rw-r--r-- | src/char/char.c | 22 | ||||
-rw-r--r-- | src/login/login.c | 15 |
2 files changed, 24 insertions, 13 deletions
diff --git a/src/char/char.c b/src/char/char.c index 330b0639f..750f5fd69 100644 --- a/src/char/char.c +++ b/src/char/char.c @@ -2381,19 +2381,29 @@ static void char_ping_login_server(int fd) static int char_parse_fromlogin_connection_state(int fd) { - if (RFIFOB(fd,2)) { - //printf("connect login server error : %d\n", RFIFOB(fd,2)); + switch (RFIFOB(fd,2)) { + case 0: + ShowStatus("Connected to login-server (connection #%d).\n", fd); + loginif->on_ready(); + break; + case 1: // Invalid username/password ShowError("Can not connect to login-server.\n"); ShowError("The server communication passwords (default s1/p1) are probably invalid.\n"); ShowError("Also, please make sure your login db has the correct communication username/passwords and the gender of the account is S.\n"); ShowError("The communication passwords are set in /conf/map/map-server.conf and /conf/char/char-server.conf\n"); sockt->eof(fd); return 1; - } else { - ShowStatus("Connected to login-server (connection #%d).\n", fd); - loginif->on_ready(); + case 2: // IP not allowed + ShowError("Can not connect to login-server.\n"); + ShowError("Please make sure your IP is allowed in conf/network.conf\n"); + sockt->eof(fd); + return 1; + default: + ShowError("Invalid response from the login-server. Error code: %d\n", (int)RFIFOB(fd,2)); + sockt->eof(fd); + return 1; } - RFIFOSKIP(fd,3); + RFIFOSKIP(fd, 3); return 0; } diff --git a/src/login/login.c b/src/login/login.c index 4c40677fa..580f79ebb 100644 --- a/src/login/login.c +++ b/src/login/login.c @@ -1441,13 +1441,16 @@ static void login_parse_request_connection(int fd, struct login_session_data* sd loginlog->log(sockt->session[fd]->client_addr, sd->userid, 100, message); result = login->mmo_auth(sd, true); - if (core->runflag == LOGINSERVER_ST_RUNNING && + + if (!sockt->allowed_ip_check(ipl)) { + ShowNotice("Connection of the char-server '%s' REFUSED (IP not allowed).\n", server_name); + login->char_server_connection_status(fd, sd, 2); + } else if (core->runflag == LOGINSERVER_ST_RUNNING && result == -1 && sd->sex == 'S' && sd->account_id >= 0 && sd->account_id < ARRAYLENGTH(login->dbs->server) && - !sockt->session_is_valid(login->dbs->server[sd->account_id].fd) && - sockt->allowed_ip_check(ipl)) + !sockt->session_is_valid(login->dbs->server[sd->account_id].fd)) { ShowStatus("Connection of the char-server '%s' accepted.\n", server_name); safestrncpy(login->dbs->server[sd->account_id].name, server_name, sizeof(login->dbs->server[sd->account_id].name)); @@ -1465,11 +1468,9 @@ static void login_parse_request_connection(int fd, struct login_session_data* sd // send connection success login->char_server_connection_status(fd, sd, 0); - } - else - { + } else { ShowNotice("Connection of the char-server '%s' REFUSED.\n", server_name); - login->char_server_connection_status(fd, sd, 3); + login->char_server_connection_status(fd, sd, 1); } } |