summaryrefslogtreecommitdiff
path: root/src/login/parse.c
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-11-29 15:16:44 +0300
committerAndrei Karas <akaras@inbox.ru>2014-11-29 15:16:44 +0300
commitaa3110d092a545c027a4c568a9158e7c1210d547 (patch)
tree43de0da3044881dee26ff9af4de47c1c925e5282 /src/login/parse.c
parent33dd27e7025553d3635dc06200c1189901243ede (diff)
downloadevol-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.c13
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);
+ }
+}