X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/f91192c77eec33a27dea7fcd0d451823ef478529..b8e62274efa1ed7f13bc6f8ab27e97d9eb6a73f0:/projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.cpp?ds=sidebyside diff --git a/projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.cpp b/projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.cpp index 86072bcf..3b28ddd8 100644 --- a/projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.cpp +++ b/projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.cpp @@ -25,40 +25,43 @@ #include "admins_methods.h" #include "messages_methods.h" +namespace +{ PLUGIN_CREATOR rpcc; +} + +extern "C" PLUGIN * GetPlugin(); RPC_CONFIG_SETTINGS::RPC_CONFIG_SETTINGS() - : errorStr(), - port(0), + : port(0), cookieTimeout(0) { } int RPC_CONFIG_SETTINGS::ParseSettings(const MODULE_SETTINGS & s) { -int p; PARAM_VALUE pv; -std::vector::const_iterator pvi; - pv.param = "Port"; +std::vector::const_iterator pvi; pvi = std::find(s.moduleParams.begin(), s.moduleParams.end(), pv); -if (pvi == s.moduleParams.end()) +if (pvi == s.moduleParams.end() || pvi->value.empty()) { errorStr = "Parameter \'Port\' not found."; printfd(__FILE__, "Parameter 'Port' not found\n"); return -1; } +int p; if (ParseIntInRange(pvi->value[0], 2, 65535, &p)) { errorStr = "Cannot parse parameter \'Port\': " + errorStr; printfd(__FILE__, "Cannot parse parameter 'Port'\n"); return -1; } -port = p; +port = static_cast(p); pv.param = "CookieTimeout"; pvi = std::find(s.moduleParams.begin(), s.moduleParams.end(), pv); -if (pvi == s.moduleParams.end()) +if (pvi == s.moduleParams.end() || pvi->value.empty()) { cookieTimeout = 1800; // 30 * 60 } @@ -81,22 +84,15 @@ return rpcc.GetPlugin(); } RPC_CONFIG::RPC_CONFIG() - : errorStr(), - rpcConfigSettings(), - users(NULL), + : users(NULL), admins(NULL), tariffs(NULL), store(NULL), - settings(), fd(-1), - rpcRegistry(), rpcServer(NULL), running(false), stopped(true), - tid(), - cookies(), dayFee(0), - dirNames(), logger(GetPluginLogger(GetStgLogger(), "conf_rpc")) { } @@ -117,12 +113,12 @@ if (ret) return ret; } -void RPC_CONFIG::SetStgSettings(const SETTINGS * settings) +void RPC_CONFIG::SetStgSettings(const SETTINGS * s) { - dayFee = settings->GetDayFee(); + dayFee = s->GetDayFee(); dirNames.erase(dirNames.begin(), dirNames.end()); for (size_t i = 0; i < DIR_NUM; ++i) { - dirNames.push_back(settings->GetDirName(i)); + dirNames.push_back(s->GetDirName(i)); } } @@ -469,5 +465,11 @@ xmlrpc_c::methodPtr const methodGetOnlinIPsPtr(new METHOD_GET_ONLINE_IPS( users )); rpcRegistry.addMethod("stargazer.get_online_ips", methodGetOnlinIPsPtr); + +xmlrpc_c::methodPtr const methodGetUserAuthByPtr(new METHOD_GET_USER_AUTH_BY( + this, + users + )); +rpcRegistry.addMethod("stargazer.get_user_auth_by", methodGetUserAuthByPtr); }