#ifndef RSCRIPT_H
#define RSCRIPT_H
-#include <pthread.h>
-
-#include <string>
-#include <list>
-#include <map>
-#include <functional>
-#include <utility>
-
#include "stg/plugin.h"
#include "stg/module_settings.h"
#include "stg/os_int.h"
#include "nrmap_parser.h"
+#include <string>
+#include <list>
+#include <map>
+#include <functional>
+#include <utility>
+
+#include <pthread.h>
+
extern "C" PLUGIN * GetPlugin();
#define RS_DEBUG (1)
//-----------------------------------------------------------------------------
class ADD_USER_NONIFIER: public NOTIFIER_BASE<USER_PTR> {
public:
- ADD_USER_NONIFIER(REMOTE_SCRIPT & r)
+ explicit ADD_USER_NONIFIER(REMOTE_SCRIPT & r)
: NOTIFIER_BASE<USER_PTR>(), rs(r) {}
virtual ~ADD_USER_NONIFIER() {}
void Notify(const USER_PTR & user);
//-----------------------------------------------------------------------------
class DEL_USER_NONIFIER: public NOTIFIER_BASE<USER_PTR> {
public:
- DEL_USER_NONIFIER(REMOTE_SCRIPT & r)
+ explicit DEL_USER_NONIFIER(REMOTE_SCRIPT & r)
: NOTIFIER_BASE<USER_PTR>(), rs(r) {}
virtual ~DEL_USER_NONIFIER() {}
void Notify(const USER_PTR & user);
//-----------------------------------------------------------------------------
struct USER {
USER(const std::vector<uint32_t> & r, USER_PTR it)
- : user(it),
+ : lastSentTime(0),
+ user(it),
routers(r),
+ shortPacketsCount(0),
ip(user->GetCurrIP())
{}
const std::string & GetStrError() const { return errorStr; }
int ParseSettings(const MODULE_SETTINGS & s);
int GetSendPeriod() const { return sendPeriod; }
- int GetPort() const { return port; }
+ uint16_t GetPort() const { return port; }
const std::vector<NET_ROUTER> & GetSubnetsMap() const { return netRouters; }
const std::vector<std::string> & GetUserParams() const { return userParams; }
const std::string & GetPassword() const { return password; }
private:
int sendPeriod;
uint16_t port;
- string errorStr;
+ std::string errorStr;
std::vector<NET_ROUTER> netRouters;
- std::vector<string> userParams;
- string password;
- string subnetFile;
+ std::vector<std::string> userParams;
+ std::string password;
+ std::string subnetFile;
};
//-----------------------------------------------------------------------------
class REMOTE_SCRIPT : public PLUGIN {
int Start();
int Stop();
- int Reload();
+ int Reload(const MODULE_SETTINGS & ms);
bool IsRunning() { return isRunning; }
const std::string & GetStrError() const { return errorStr; }
- const std::string GetVersion() const { return "Remote script v 0.3"; }
+ std::string GetVersion() const { return "Remote script v 0.3"; }
uint16_t GetStartPosition() const { return 10; }
uint16_t GetStopPosition() const { return 10; }
void DelUser(USER_PTR u) { UnSetUserNotifiers(u); }
void AddUser(USER_PTR u) { SetUserNotifiers(u); }
- void ChangedIP(USER_PTR u, uint32_t oldIP, uint32_t newIP);
void AddRSU(USER_PTR user);
void DelRSU(USER_PTR user);
std::vector<uint32_t> IP2Routers(uint32_t ip);
bool GetUsers();
- std::string GetUserParam(USER_PTR u, const std::string & paramName) const;
void SetUserNotifiers(USER_PTR u);
void UnSetUserNotifiers(USER_PTR u);
- void InitEncrypt(BLOWFISH_CTX * ctx, const string & password) const;
- void Encrypt(BLOWFISH_CTX * ctx, char * dst, const char * src, size_t len8) const;
+ void InitEncrypt(BLOWFISH_CTX * ctx, const std::string & password) const;
+ void Encrypt(BLOWFISH_CTX * ctx, void * dst, const void * src, size_t len8) const;
mutable BLOWFISH_CTX ctx;
//-----------------------------------------------------------------------------
class DisconnectUser : public std::unary_function<std::pair<const uint32_t, USER> &, void> {
public:
- DisconnectUser(REMOTE_SCRIPT & rs) : rscript(rs) {}
+ explicit DisconnectUser(REMOTE_SCRIPT & rs) : rscript(rs) {}
void operator()(std::pair<const uint32_t, USER> & p)
{
rscript.Send(p.second, true);