summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaru <haru@dotalux.com>2019-02-01 21:06:06 +0100
committerGitHub <noreply@github.com>2019-02-01 21:06:06 +0100
commit034e47087595adabace0bf86771bbeba47de5713 (patch)
treeb88da54d04aa0bbf4a18806af8b2b29c164d2e05
parent0c79697fd26c26aa3aca9f8db651c3c85d209624 (diff)
parentdd50f75ad8ec7c4810206600de0ca32cf0af2899 (diff)
downloadhercules-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.c22
-rw-r--r--src/login/login.c15
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);
}
}