X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/de673871df0a5f56ce8c8ee1c075eb405b019f70..9c6406d76392a55a85d3ec25586a47ab892b88fe:/projects/stargazer/plugins/other/rscript/rscript.cpp?ds=inline diff --git a/projects/stargazer/plugins/other/rscript/rscript.cpp b/projects/stargazer/plugins/other/rscript/rscript.cpp index 5c94606b..00114df4 100644 --- a/projects/stargazer/plugins/other/rscript/rscript.cpp +++ b/projects/stargazer/plugins/other/rscript/rscript.cpp @@ -313,7 +313,7 @@ if (nrMapParser.ReadFile(rsSettings.GetMapFileName())) } { - STG_LOCKER lock(&mutex, __FILE__, __LINE__); + STG_LOCKER lock(&mutex); printfd(__FILE__, "REMOTE_SCRIPT::Reload()\n"); @@ -324,6 +324,9 @@ std::for_each(authorizedUsers.begin(), authorizedUsers.end(), UpdateRouter(*this)); +logger("%s reloaded successfully.", rsSettings.GetMapFileName().c_str()); +printfd(__FILE__, "REMOTE_SCRIPT::Reload() %s reloaded successfully.\n"); + return 0; } //----------------------------------------------------------------------------- @@ -350,7 +353,7 @@ return false; //----------------------------------------------------------------------------- void REMOTE_SCRIPT::PeriodicSend() { -STG_LOCKER lock(&mutex, __FILE__, __LINE__); +STG_LOCKER lock(&mutex); std::map::iterator it(authorizedUsers.begin()); while (it != authorizedUsers.end()) @@ -428,7 +431,10 @@ for(it = rsSettings.GetUserParams().begin(); { std::string parameter(rsu.user->GetParamValue(it->c_str())); if (params.length() + parameter.length() > RS_PARAMS_LEN - 1) + { + logger("Script params string length %d exceeds the limit of %d symbols.", params.length() + parameter.length(), RS_PARAMS_LEN); break; + } params += parameter + " "; } strncpy((char *)packetTail.params, params.c_str(), RS_PARAMS_LEN); @@ -504,7 +510,7 @@ return false; //----------------------------------------------------------------------------- std::vector REMOTE_SCRIPT::IP2Routers(uint32_t ip) { -STG_LOCKER lock(&mutex, __FILE__, __LINE__); +STG_LOCKER lock(&mutex); for (size_t i = 0; i < netRouters.size(); ++i) { if ((ip & netRouters[i].subnetMask) == (netRouters[i].subnetIP & netRouters[i].subnetMask)) @@ -539,21 +545,32 @@ void REMOTE_SCRIPT::AddRSU(USER_PTR user) RS::USER rsu(IP2Routers(user->GetCurrIP()), user); Send(rsu); -STG_LOCKER lock(&mutex, __FILE__, __LINE__); +STG_LOCKER lock(&mutex); authorizedUsers.insert(std::make_pair(user->GetCurrIP(), rsu)); } //----------------------------------------------------------------------------- void REMOTE_SCRIPT::DelRSU(USER_PTR user) { -STG_LOCKER lock(&mutex, __FILE__, __LINE__); -const std::map::iterator it( +STG_LOCKER lock(&mutex); +std::map::iterator it(authorizedUsers.begin()); +while (it != authorizedUsers.end()) + { + if (it->second.user == user) + { + Send(it->second, true); + authorizedUsers.erase(it); + return; + } + ++it; + } +/*const std::map::iterator it( authorizedUsers.find(user->GetCurrIP()) ); if (it != authorizedUsers.end()) { Send(it->second, true); authorizedUsers.erase(it); - } + }*/ } //----------------------------------------------------------------------------- void RS::IP_NOTIFIER::Notify(const uint32_t & /*oldValue*/, const uint32_t & newValue)