X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/b3139bf3f37b3b0244efea8b4b5e5a7d0bc90095..0907aa4037b12b6b88ee24495d4577a064d4f8db:/projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.cpp diff --git a/projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.cpp b/projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.cpp index dca87fbe..2d45f109 100644 --- a/projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.cpp +++ b/projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.cpp @@ -1,51 +1,45 @@ -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include // xmlrpc-c devs have missed something :) - -#include "stg/common.h" -#include "stg/admin.h" -#include "stg/module_settings.h" -#include "stg/settings.h" -#include "stg/plugin_creator.h" - #include "rpcconfig.h" + #include "info_methods.h" #include "users_methods.h" #include "tariffs_methods.h" #include "admins_methods.h" #include "messages_methods.h" -namespace -{ -PLUGIN_CREATOR rpcc; -} +#include "stg/admins.h" +#include "stg/admin.h" +#include "stg/module_settings.h" +#include "stg/settings.h" +#include "stg/common.h" +#include "stg/const.h" -extern "C" PLUGIN * GetPlugin(); +#include +#include +#include // xmlrpc-c devs have missed something :) +#include +#include +#include +#include + +#include +#include +#include +#include +#include RPC_CONFIG_SETTINGS::RPC_CONFIG_SETTINGS() - : errorStr(), - port(0), + : port(0), cookieTimeout(0) { } -int RPC_CONFIG_SETTINGS::ParseSettings(const MODULE_SETTINGS & s) +int RPC_CONFIG_SETTINGS::ParseSettings(const STG::ModuleSettings & s) { -PARAM_VALUE pv; +STG::ParamValue pv; pv.param = "Port"; -std::vector::const_iterator pvi; +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"); @@ -62,7 +56,7 @@ 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 } @@ -79,29 +73,23 @@ else return 0; } -PLUGIN * GetPlugin() +extern "C" STG::Plugin* GetPlugin() { -return rpcc.GetPlugin(); + static RPC_CONFIG plugin; + return &plugin; } 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")) + logger(STG::PluginLogger::get("conf_rpc")) { } @@ -121,7 +109,7 @@ if (ret) return ret; } -void RPC_CONFIG::SetStgSettings(const SETTINGS * s) +void RPC_CONFIG::SetStgSettings(const STG::Settings * s) { dayFee = s->GetDayFee(); dirNames.erase(dirNames.begin(), dirNames.end()); @@ -269,9 +257,9 @@ bool RPC_CONFIG::CheckAdmin(const std::string & login, const std::string & password, std::string * cookie) { -ADMIN * admin = NULL; +STG::Admin * admin = NULL; -if (!admins->Correct(login, password, &admin)) +if (!admins->correct(login, password, &admin)) { logger("Attempt to connect with invalid credentials. Login: %s", login.c_str()); return true; @@ -280,7 +268,7 @@ if (!admins->Correct(login, password, &admin)) ADMIN_INFO info; time(&info.accessTime); info.admin = login; -info.priviledges = *admin->GetPriv(); +info.priviledges = admin->priv(); *cookie = GetCookie(); cookies[*cookie] = info;