X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/3a45cd9275dc9279e133deb0932402ae5f4d0b5f..df56b2568e80784a3350fa9527430538fa792b79:/projects/stargazer/plugins/other/radius/radius.h diff --git a/projects/stargazer/plugins/other/radius/radius.h b/projects/stargazer/plugins/other/radius/radius.h index 70c904ae..0f1c95fc 100644 --- a/projects/stargazer/plugins/other/radius/radius.h +++ b/projects/stargazer/plugins/other/radius/radius.h @@ -47,6 +47,7 @@ #include "stg/users.h" #include "stg/blowfish.h" #include "stg/rad_packets.h" +#include "stg/logger.h" extern "C" PLUGIN * GetPlugin(); @@ -56,14 +57,17 @@ class RADIUS; //----------------------------------------------------------------------------- class RAD_SETTINGS { public: - RAD_SETTINGS() : port(0) {} + RAD_SETTINGS() + : port(0), errorStr(), password(), + authServices(), acctServices() + {} virtual ~RAD_SETTINGS() {} - const string & GetStrError() const { return errorStr; } + const std::string & GetStrError() const { return errorStr; } int ParseSettings(const MODULE_SETTINGS & s); uint16_t GetPort() const { return port; } const std::string & GetPassword() const { return password; } - const std::list & GetAuthServices() const { return authServices; } - const std::list & GetAcctServices() const { return acctServices; } + const std::list & GetAuthServices() const { return authServices; } + const std::list & GetAcctServices() const { return acctServices; } private: int ParseServices(const std::vector & str, std::list * lst); @@ -76,6 +80,7 @@ private: }; //----------------------------------------------------------------------------- struct RAD_SESSION { + RAD_SESSION() : userName(), serviceType() {} std::string userName; std::string serviceType; }; @@ -83,35 +88,35 @@ struct RAD_SESSION { class RADIUS :public AUTH { public: RADIUS(); - virtual ~RADIUS() {}; - - void SetUsers(USERS * u); - void SetTariffs(TARIFFS *) {} - void SetAdmins(ADMINS *) {} - void SetTraffcounter(TRAFFCOUNTER *) {} - void SetStore(STORE * ); - void SetStgSettings(const SETTINGS * s); - void SetSettings(const MODULE_SETTINGS & s); + virtual ~RADIUS() {} + + void SetUsers(USERS * u) { users = u; } + void SetStore(STORE * s) { store = s; } + void SetStgSettings(const SETTINGS *) {} + void SetSettings(const MODULE_SETTINGS & s) { settings = s; } int ParseSettings(); int Start(); int Stop(); - int Reload() { return 0; } - bool IsRunning(); + int Reload(const MODULE_SETTINGS & /*ms*/) { return 0; } + bool IsRunning() { return isRunning; } const std::string & GetStrError() const { return errorStr; } - const std::string GetVersion() const; - uint16_t GetStartPosition() const; - uint16_t GetStopPosition() const; + std::string GetVersion() const { return "RADIUS data access plugin v 0.6"; } + uint16_t GetStartPosition() const { return 30; } + uint16_t GetStopPosition() const { return 30; } int SendMessage(const STG_MSG &, uint32_t) const { return 0; } private: + RADIUS(const RADIUS & rvalue); + RADIUS & operator=(const RADIUS & rvalue); + static void * Run(void *); int PrepareNet(); int FinalizeNet(); - int Send(const RAD_PACKET & packet, struct sockaddr_in * outerAddr); + ssize_t Send(const RAD_PACKET & packet, struct sockaddr_in * outerAddr); int RecvData(RAD_PACKET * packet, struct sockaddr_in * outerAddr); int ProcessData(RAD_PACKET * packet); @@ -128,23 +133,12 @@ private: bool CanAcctService(const std::string & svc) const; bool IsAllowedService(const std::string & svc) const; - bool WaitPackets(int sd) const; - - void PrintServices(const std::list & svcs); - - struct Printer : public unary_function - { - void operator()(const std::string & line) - { - printfd("radius.cpp", "'%s'\n", line.c_str()); - }; - }; - struct SPrinter : public unary_function, void> - { + struct SPrinter : public std::unary_function, void> + { void operator()(const std::pair & it) - { - printfd("radius.cpp", "%s - ('%s', '%s')\n", it.first.c_str(), it.second.userName.c_str(), it.second.serviceType.c_str()); - }; + { + printfd("radius.cpp", "%s - ('%s', '%s')\n", it.first.c_str(), it.second.userName.c_str(), it.second.serviceType.c_str()); + } }; BLOWFISH_CTX ctx; @@ -170,6 +164,7 @@ private: RAD_PACKET packet; + PLUGIN_LOGGER logger; }; //-----------------------------------------------------------------------------