#include <cstdlib>
#include <csignal>
+#include <vector>
+#include <algorithm>
+
#include "rpcconfig.h"
+#include "common.h"
#include "admin.h"
#include "module_settings.h"
-#include "common.h"
+#include "settings.h"
#include "info_methods.h"
#include "users_methods.h"
{
int p;
PARAM_VALUE pv;
-vector<PARAM_VALUE>::const_iterator pvi;
+std::vector<PARAM_VALUE>::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.";
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
return 0;
}
-BASE_PLUGIN * GetPlugin()
+PLUGIN * GetPlugin()
{
return rpcc.GetPlugin();
}
admins(NULL),
tariffs(NULL),
store(NULL),
- stgSettings(NULL),
rpcServer(NULL),
running(false),
- stopped(true)
+ stopped(true),
+ dayFee(0)
{
}
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();
const std::string & password,
std::string * cookie)
{
-ADMIN admin;
+ADMIN * admin = NULL;
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;
xmlrpc_c::methodPtr const methodInfoPtr(new METHOD_INFO(
tariffs,
users,
- stgSettings
+ dayFee,
+ dirNames
));
rpcRegistry.addMethod("stargazer.info", methodInfoPtr);