summaryrefslogtreecommitdiff
path: root/src/login
diff options
context:
space:
mode:
authorDastgir <dastgirp@gmail.com>2018-07-26 11:02:21 +0530
committerHaru <haru@dotalux.com>2019-02-01 20:18:03 +0100
commitdd50f75ad8ec7c4810206600de0ca32cf0af2899 (patch)
treef4ee2bb81c49637bba8d9a848d5f3110b0cedd4f /src/login
parent504ad2ca7d6ef4923093f74ac2afd5fc1bd39fd1 (diff)
downloadhercules-dd50f75ad8ec7c4810206600de0ca32cf0af2899.tar.gz
hercules-dd50f75ad8ec7c4810206600de0ca32cf0af2899.tar.bz2
hercules-dd50f75ad8ec7c4810206600de0ca32cf0af2899.tar.xz
hercules-dd50f75ad8ec7c4810206600de0ca32cf0af2899.zip
Updated login-server to give appropriate response code to char-server when IP is not allowed
Updated char-server to show proper error message. Fixes #737 Signed-off-by: Haru <haru@dotalux.com>
Diffstat (limited to 'src/login')
-rw-r--r--src/login/login.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/login/login.c b/src/login/login.c
index d54348834..d1a5bf684 100644
--- a/src/login/login.c
+++ b/src/login/login.c
@@ -1438,13 +1438,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));
@@ -1461,11 +1464,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);
}
}