diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-11-29 15:16:44 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-11-29 15:16:44 +0300 |
commit | aa3110d092a545c027a4c568a9158e7c1210d547 (patch) | |
tree | 43de0da3044881dee26ff9af4de47c1c925e5282 /src/login/parse.c | |
parent | 33dd27e7025553d3635dc06200c1189901243ede (diff) | |
download | evol-hercules-aa3110d092a545c027a4c568a9158e7c1210d547.tar.gz evol-hercules-aa3110d092a545c027a4c568a9158e7c1210d547.tar.bz2 evol-hercules-aa3110d092a545c027a4c568a9158e7c1210d547.tar.xz evol-hercules-aa3110d092a545c027a4c568a9158e7c1210d547.zip |
login: add ability to filter inter servers connections by ip
New config option: inter_server_ip
Example:
inter_server_ip 127.0.0.1,127.0.0.2
Diffstat (limited to 'src/login/parse.c')
-rw-r--r-- | src/login/parse.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/login/parse.c b/src/login/parse.c index ba4efbd..9f1ffcb 100644 --- a/src/login/parse.c +++ b/src/login/parse.c @@ -13,6 +13,7 @@ #include "../../../login/account.h" #include "../../../login/login.h" +#include "login/config.h" #include "login/parse.h" #include "login/send.h" @@ -134,3 +135,15 @@ void elogin_parse_client_login2(int fd) return; } + +void elogin_parse_request_connection(int *fd, struct login_session_data* sd, const char *const ip) +{ + if (!inter_server_ip || !ip) + return; + if (!strstr(inter_server_ip, ip)) + { + hookStop(); + login->char_server_connection_status(*fd, sd, 3); + ShowNotice("Connection of the char-server from ip %s REFUSED.\n", ip); + } +} |