#include <cerrno>
#include <string>
+#include "stg/logger.h"
+#include "stg/dotconfpp.h"
#include "settings_impl.h"
-#include "stg_logger.h"
-#include "dotconfpp.h"
using namespace std;
SETTINGS_IMPL::SETTINGS_IMPL()
: strError(),
modulesPath("/usr/lib/stg"),
+ dirName(DIR_NUM),
confDir("/etc/stargazer"),
scriptsDir("/etc/stargazer"),
rules("/etc/stargazer/rules"),
writeFreeMbTraffCost(false),
showFeeInCash(true),
messageTimeout(0),
+ feeChargeType(0),
+ reconnectOnTariffChange(false),
modulesSettings(),
storeModuleSettings(),
logger(GetStgLogger())
SETTINGS_IMPL::SETTINGS_IMPL(const std::string & cd)
: strError(),
modulesPath("/usr/lib/stg"),
+ dirName(DIR_NUM),
confDir(cd),
scriptsDir(cd),
rules(cd + "/rules"),
writeFreeMbTraffCost(false),
showFeeInCash(true),
messageTimeout(0),
+ feeChargeType(0),
+ reconnectOnTariffChange(false),
modulesSettings(),
storeModuleSettings(),
logger(GetStgLogger())
SETTINGS_IMPL::SETTINGS_IMPL(const SETTINGS_IMPL & rval)
: strError(),
modulesPath(rval.modulesPath),
+ dirName(rval.dirName),
confDir(rval.confDir),
scriptsDir(rval.scriptsDir),
rules(rval.rules),
writeFreeMbTraffCost(rval.writeFreeMbTraffCost),
showFeeInCash(rval.showFeeInCash),
messageTimeout(rval.messageTimeout),
+ feeChargeType(rval.feeChargeType),
+ reconnectOnTariffChange(rval.reconnectOnTariffChange),
modulesSettings(rval.modulesSettings),
storeModuleSettings(rval.storeModuleSettings),
logger(GetStgLogger())
//-----------------------------------------------------------------------------
void SETTINGS_IMPL::ErrorCallback(void * data, const char * buf)
{
- printfd(__FILE__, buf);
+ printfd(__FILE__, "SETTINGS_IMPL::ErrorCallback() - %s\n", buf);
SETTINGS_IMPL * settings = static_cast<SETTINGS_IMPL *>(data);
- settings->logger(buf);
+ settings->logger("%s", buf);
}
//-----------------------------------------------------------------------------
int SETTINGS_IMPL::ReadSettings()
}
}
+ if (strcasecmp(node->getName(), "FeeChargeType") == 0)
+ {
+ if (ParseUnsignedInRange(node->getValue(0), 0, 2, &feeChargeType) != 0)
+ {
+ strError = "Incorrect FeeChargeType value: \'" + string(node->getValue(0)) + "\'";
+ return -1;
+ }
+ }
+
+ if (strcasecmp(node->getName(), "ReconnectOnTariffChange") == 0)
+ {
+ if (ParseYesNo(node->getValue(0), &reconnectOnTariffChange) != 0)
+ {
+ strError = "Incorrect ReconnectOnTariffChange value: \'" + string(node->getValue(0)) + "\'";
+ return -1;
+ }
+ }
+
if (strcasecmp(node->getName(), "DirNames") == 0)
{
const DOTCONFDocumentNode * child = node->getChildNode();
if (child)
{
const DOTCONFDocumentNode * dirNameNode;
+ dirName.reserve(DIR_NUM);
for (int i = 0; i < DIR_NUM; i++)
{
char strDirName[12];