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.cpp143
1 files changed, 123 insertions, 20 deletions
diff --git a/server/server/config.cpp b/server/server/config.cpp
index 33a8124..2b28ed0 100644
--- a/server/server/config.cpp
+++ b/server/server/config.cpp
@@ -2,32 +2,56 @@
config::config(const char *pth)
{
- std::ifstream config;
- if(!pth)
{
+ std::ifstream config;
+ if(!pth)
+ {
+ std::string cfg_path = boost::filesystem::initial_path().string();
+ cfg_path += "/server.cfg";
+ config.open(cfg_path.c_str(), std::fstream::in);
+ }
+ else
+ config.open(pth, std::fstream::in);
+ if(config.is_open())
+ {
+ std::string cfg_str((std::istreambuf_iterator<char>(config)), std::istreambuf_iterator<char>());
+ config.close();
+ vars.ban_time = get_int(cfg_str, "BanTime=", 60);
+ vars.check_interval = get_int(cfg_str, "ConnListCheckInterval=", 30);
+ vars.conn_count = get_int(cfg_str, "ConnectionCount=", 30);
+ vars.conn_time = get_int(cfg_str, "ConnectionTimeOut=", 60);
+ vars.dos_conn_count = get_int(cfg_str, "DosConnectionCount=", 200);
+ vars.debug = get_int(cfg_str, "Debug=", 0);
+ 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);
+ }
+ }
+ {
+ std::ifstream config;
std::string cfg_path = boost::filesystem::initial_path().string();
- cfg_path += "/server.cfg";
+ cfg_path += "/cli_config.cfg";
config.open(cfg_path.c_str(), std::fstream::in);
+ if(config.is_open())
+ {
+ std::string cfg_str((std::istreambuf_iterator<char>(config)), std::istreambuf_iterator<char>());
+ config.close();
+ cvars.config_update_interval = get_int(cfg_str, "config_update_interval=", 300);
+ cvars.client_update_interval = get_int(cfg_str, "client_update_interval=", 60000);
+ cvars.welcome_msg = get_string(cfg_str, "welcome_msg=", "");
+ cvars.cfg_downloaded_msg = get_string(cfg_str, "config_downloaded_msg=", "");
+ cvars.top_text = get_string(cfg_str, "top_panel_text=", "");
+ cvars.bottom_text = get_string(cfg_str, "bottom_panel_text=", "");
+ cvars.speed_visibility = get_int(cfg_str, "speed_visibility=", 1);
+ }
}
- else
- config.open(pth, std::fstream::in);
- std::string cfg_str((std::istreambuf_iterator<char>(config)), std::istreambuf_iterator<char>());
- config.close();
- vars.ban_time = get_int(cfg_str, "BanTime=", 60);
- vars.check_interval = get_int(cfg_str, "ConnListCheckInterval=", 30);
- vars.conn_count = get_int(cfg_str, "ConnectionCount=", 30);
- vars.conn_time = get_int(cfg_str, "ConnectionTimeOut=", 60);
- vars.dos_conn_count = get_int(cfg_str, "DosConnectionCount=", 200);
- vars.debug = get_int(cfg_str, "Debug=", 0);
- 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();
load_deleted_list();
load_upload_list();
+ load_servers_list();
}
const int config::get_int(const std::string& data, const char* var, int default_)
{
@@ -58,6 +82,45 @@ const std::string config::get_string(const std::string& data, const char* var, c
return default_;
}
+void config::load_servers_list(char* pth)
+{
+ std::ifstream config;
+ if(!pth)
+ {
+ std::string cfg_path = boost::filesystem::initial_path().string();
+ cfg_path += "/server_list.cfg";
+ config.open(cfg_path.c_str(), 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+1;
+ std::string::size_type lp1 = 0, lp2 = 0;
+ std::string serv, interval, timeout;
+ lp1++;
+ lp2 = line.find(" ", lp1);
+ serv = line.substr(lp1, lp2-lp1);
+ lp1 = lp2+1;
+ lp2 = line.find(' ', lp1);
+ interval = line.substr(lp1, lp2-lp1);
+ lp2++;
+ timeout = line.substr(lp2);
+ servers_list.push_back(conn_server(serv, atoi(interval.c_str()), atoi(timeout.c_str())));
+ p2 = cfg_str.find(';', p1);
+ }
+ }
+}
+
void config::load_upload_list(char *pth)
{
std::ifstream config;
@@ -349,11 +412,11 @@ const std::string& config::dos_log_path()
{
return vars.dos_log_path;
}
-std::list<proxy_entry> *config::get_proxy_list()
+std::list<config::proxy_entry> *config::get_proxy_list()
{
return &proxy_list;
}
-std::list<static_proxy_entry> *config::get_static_proxy_list()
+std::list<config::static_proxy_entry> *config::get_static_proxy_list()
{
return &static_proxy_list;
}
@@ -366,7 +429,7 @@ std::list<std::string> *config::get_deleted_list()
return &deleted_list;
}
-std::list<upload_entry> *config::get_upload_list()
+std::list<config::upload_entry> *config::get_upload_list()
{
return &upload_list;
}
@@ -375,3 +438,43 @@ bool config::ignore_ssl_errors()
{
return vars.ignore_ssl_errors;
}
+
+const int config::c_cfg_upd_int()
+{
+ return cvars.config_update_interval;
+}
+
+const int config::c_cli_upd_int()
+{
+ return cvars.client_update_interval;
+}
+
+bool config::c_speed_visibility()
+{
+ return cvars.speed_visibility;
+}
+
+const std::string& config::c_welcome_msg()
+{
+ return cvars.welcome_msg;
+}
+
+const std::string& config::c_cfg_download_msg()
+{
+ return cvars.cfg_downloaded_msg;
+}
+
+const std::string& config::c_top_text()
+{
+ return cvars.top_text;
+}
+
+const std::string& config::c_bottom_text()
+{
+ return cvars.bottom_text;
+}
+
+std::list<config::conn_server> *config::get_server_list()
+{
+ return &servers_list;
+}