X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/70778b6263943f67b0e85aa50a16d48805d714e5..b6dc7c53f5374b1798d74fe752e962266645cca0:/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 46905b15..a5467aae 100644 --- a/projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.cpp +++ b/projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.cpp @@ -1,16 +1,15 @@ #include #include +#include +#include + #include "rpcconfig.h" -#include "../../../admin.h" -#include "../../../admins.h" -#include "../../../users.h" -#include "../../../tariffs.h" -#include "../../../traffcounter.h" -#include "../../../settings.h" -#include "base_store.h" -#include "base_settings.h" +#include "common.h" +#include "admin.h" +#include "module_settings.h" +#include "settings.h" #include "info_methods.h" #include "users_methods.h" @@ -18,8 +17,7 @@ #include "admins_methods.h" #include "messages_methods.h" -class RPC_CONFIG_CREATOR -{ +class RPC_CONFIG_CREATOR { private: RPC_CONFIG * rpcconfig; @@ -27,16 +25,16 @@ public: RPC_CONFIG_CREATOR() : rpcconfig(new RPC_CONFIG()) { - }; + } ~RPC_CONFIG_CREATOR() { delete rpcconfig; - }; + } RPC_CONFIG * GetPlugin() { return rpcconfig; - }; + } }; RPC_CONFIG_CREATOR rpcc; @@ -48,7 +46,7 @@ RPC_CONFIG_SETTINGS::RPC_CONFIG_SETTINGS() { } -int RPC_CONFIG_SETTINGS::ParseIntInRange(const string & str, +int RPC_CONFIG_SETTINGS::ParseIntInRange(const std::string & str, int min, int max, int * val) @@ -70,10 +68,10 @@ int RPC_CONFIG_SETTINGS::ParseSettings(const MODULE_SETTINGS & s) { int p; PARAM_VALUE pv; -vector::const_iterator pvi; +std::vector::const_iterator pvi; pv.param = "Port"; -pvi = find(s.moduleParams.begin(), s.moduleParams.end(), pv); +pvi = std::find(s.moduleParams.begin(), s.moduleParams.end(), pv); if (pvi == s.moduleParams.end()) { errorStr = "Parameter \'Port\' not found."; @@ -89,7 +87,7 @@ if (ParseIntInRange(pvi->value[0], 2, 65535, &p)) port = p; pv.param = "CookieTimeout"; -pvi = find(s.moduleParams.begin(), s.moduleParams.end(), pv); +pvi = std::find(s.moduleParams.begin(), s.moduleParams.end(), pv); if (pvi == s.moduleParams.end()) { cookieTimeout = 1800; // 30 * 60 @@ -107,15 +105,21 @@ else return 0; } -BASE_PLUGIN * GetPlugin() +PLUGIN * GetPlugin() { return rpcc.GetPlugin(); } RPC_CONFIG::RPC_CONFIG() - : rpcServer(NULL) + : users(NULL), + admins(NULL), + tariffs(NULL), + store(NULL), + rpcServer(NULL), + running(false), + stopped(true), + dayFee(0) { - } RPC_CONFIG::~RPC_CONFIG() @@ -134,6 +138,15 @@ if (ret) return ret; } +void RPC_CONFIG::SetStgSettings(const SETTINGS * settings) +{ + dayFee = settings->GetDayFee(); + dirNames.erase(dirNames.begin(), dirNames.end()); + for (size_t i = 0; i < DIR_NUM; ++i) { + dirNames.push_back(settings->GetDirName(i)); + } +} + int RPC_CONFIG::Start() { InitiateRegistry(); @@ -225,7 +238,7 @@ bool RPC_CONFIG::CheckAdmin(const std::string & login, const std::string & password, std::string * cookie) { -ADMIN admin; +ADMIN * admin = NULL; if (!admins->AdminCorrect(login, password, &admin)) { @@ -235,7 +248,7 @@ if (!admins->AdminCorrect(login, password, &admin)) ADMIN_INFO info; time(&info.accessTime); info.admin = login; -info.priviledges = *admin.GetPriv(); +info.priviledges = *admin->GetPriv(); *cookie = GetCookie(); cookies[*cookie] = info; @@ -278,7 +291,8 @@ void RPC_CONFIG::InitiateRegistry() xmlrpc_c::methodPtr const methodInfoPtr(new METHOD_INFO( tariffs, users, - stgSettings + dayFee, + dirNames )); rpcRegistry.addMethod("stargazer.info", methodInfoPtr);