X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/8381ca69f471b4066ee9b01d2918b92cdf1aa91e..4edf68ce20f7dc22d19cd6dc390a48255f2e784a:/projects/stargazer/settings_impl.cpp?ds=sidebyside diff --git a/projects/stargazer/settings_impl.cpp b/projects/stargazer/settings_impl.cpp index 0d0bc2ff..f9135a1a 100644 --- a/projects/stargazer/settings_impl.cpp +++ b/projects/stargazer/settings_impl.cpp @@ -32,9 +32,9 @@ $Author: faust $ #include #include +#include "stg/logger.h" +#include "stg/dotconfpp.h" #include "settings_impl.h" -#include "stg_logger.h" -#include "dotconfpp.h" using namespace std; @@ -42,6 +42,7 @@ 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"), @@ -62,6 +63,8 @@ SETTINGS_IMPL::SETTINGS_IMPL() writeFreeMbTraffCost(false), showFeeInCash(true), messageTimeout(0), + feeChargeType(0), + reconnectOnTariffChange(false), modulesSettings(), storeModuleSettings(), logger(GetStgLogger()) @@ -71,6 +74,7 @@ SETTINGS_IMPL::SETTINGS_IMPL() SETTINGS_IMPL::SETTINGS_IMPL(const std::string & cd) : strError(), modulesPath("/usr/lib/stg"), + dirName(DIR_NUM), confDir(cd), scriptsDir(cd), rules(cd + "/rules"), @@ -91,6 +95,8 @@ SETTINGS_IMPL::SETTINGS_IMPL(const std::string & cd) writeFreeMbTraffCost(false), showFeeInCash(true), messageTimeout(0), + feeChargeType(0), + reconnectOnTariffChange(false), modulesSettings(), storeModuleSettings(), logger(GetStgLogger()) @@ -100,6 +106,7 @@ SETTINGS_IMPL::SETTINGS_IMPL(const std::string & cd) SETTINGS_IMPL::SETTINGS_IMPL(const SETTINGS_IMPL & rval) : strError(), modulesPath(rval.modulesPath), + dirName(rval.dirName), confDir(rval.confDir), scriptsDir(rval.scriptsDir), rules(rval.rules), @@ -120,6 +127,8 @@ SETTINGS_IMPL::SETTINGS_IMPL(const SETTINGS_IMPL & rval) writeFreeMbTraffCost(rval.writeFreeMbTraffCost), showFeeInCash(rval.showFeeInCash), messageTimeout(rval.messageTimeout), + feeChargeType(rval.feeChargeType), + reconnectOnTariffChange(rval.reconnectOnTariffChange), modulesSettings(rval.modulesSettings), storeModuleSettings(rval.storeModuleSettings), logger(GetStgLogger()) @@ -232,9 +241,9 @@ return 0; //----------------------------------------------------------------------------- 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(data); - settings->logger(buf); + settings->logger("%s", buf); } //----------------------------------------------------------------------------- int SETTINGS_IMPL::ReadSettings() @@ -426,12 +435,31 @@ while (node) } } + 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];