summaryrefslogtreecommitdiff
path: root/server/server/config.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'server/server/config.cpp')
-rw-r--r--server/server/config.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/server/server/config.cpp b/server/server/config.cpp
index d4602da..b6b343d 100644
--- a/server/server/config.cpp
+++ b/server/server/config.cpp
@@ -22,8 +22,10 @@ config::config(const char *pth)
vars.bind_ip = get_string(cfg_str, "BindAddress=", "0.0.0.0");
vars.log_path = get_string(cfg_str, "LogPath=", "./server.log");
vars.dos_log_path = get_string(cfg_str, "DosLogPath=", "./server_dos.log");
+ vars.ignore_ssl_errors = get_int(cfg_str, "IgnoreSslErrors=", 0);
load_proxy_list();
load_static_proxy_list();
+ load_firewall_list();
}
const int config::get_int(const std::string& data, const char* var, int default_)
{
@@ -183,6 +185,30 @@ void config::load_static_proxy_list(char *pth)
}
}
}
+void config::load_firewall_list(char* pth)
+{
+ std::ifstream config;
+ if(!pth)
+ config.open("./firewall_list.cfg", std::fstream::in);
+ else
+ config.open(pth, std::fstream::in);
+ std::string cfg_str((std::istreambuf_iterator<char>(config)), std::istreambuf_iterator<char>());
+ config.close();
+ if(!cfg_str.empty())
+ {
+ std::string::size_type p1 = 0, p2 = 0, l = 1;
+ if(cfg_str.find("\r\n") != std::string::npos)
+ l = 2;
+ p2 = cfg_str.find(';');
+ while(p2 != std::string::npos)
+ {
+ std::string line = cfg_str.substr(p1, p2-p1);
+ p1 = p2+l;
+ firewall_list.push_back(line);
+ p2 = cfg_str.find(';', p1);
+ }
+ }
+}
const int config::ban_time()
{
@@ -228,4 +254,12 @@ std::list<static_proxy_entry> *config::get_static_proxy_list()
{
return &static_proxy_list;
}
+std::list<std::string> *config::get_firewall_list()
+{
+ return &firewall_list;
+}
+bool config::ignore_ssl_errors()
+{
+ return vars.ignore_ssl_errors;
+}