From: Maxim Mamontov Date: Sat, 20 Aug 2016 10:24:56 +0000 (+0300) Subject: Merge branch 'stg-2.409' into stg-2.409-radius X-Git-Url: https://git.stg.codes/stg.git/commitdiff_plain/f3300c448f21eb61c08284f1e210bd7766da784e Merge branch 'stg-2.409' into stg-2.409-radius --- f3300c448f21eb61c08284f1e210bd7766da784e diff --cc projects/stargazer/plugins/other/radius/radius.h index 742923f0,0f1c95fc..52da138e --- a/projects/stargazer/plugins/other/radius/radius.h +++ b/projects/stargazer/plugins/other/radius/radius.h @@@ -24,50 -41,72 +24,50 @@@ #include "stg/os_int.h" #include "stg/auth.h" #include "stg/module_settings.h" -#include "stg/notifer.h" -#include "stg/user_ips.h" -#include "stg/user.h" -#include "stg/users.h" -#include "stg/blowfish.h" -#include "stg/rad_packets.h" #include "stg/logger.h" -extern "C" PLUGIN * GetPlugin(); +#include "config.h" +#include "conn.h" -#define RAD_DEBUG (1) +#include +#include +#include -class RADIUS; -//----------------------------------------------------------------------------- -class RAD_SETTINGS { -public: - RAD_SETTINGS() - : port(0), errorStr(), password(), - authServices(), acctServices() - {} - virtual ~RAD_SETTINGS() {} - 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; } +#include +#include +#include +#include -private: - int ParseServices(const std::vector & str, std::list * lst); +extern "C" PLUGIN * GetPlugin(); - uint16_t port; - std::string errorStr; - std::string password; - std::list authServices; - std::list acctServices; -}; -//----------------------------------------------------------------------------- -struct RAD_SESSION { - RAD_SESSION() : userName(), serviceType() {} - std::string userName; - std::string serviceType; -}; -//----------------------------------------------------------------------------- -class RADIUS :public AUTH { +class STORE; +class USERS; + +class RADIUS : public AUTH { public: - RADIUS(); - virtual ~RADIUS() {} + RADIUS(); + 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(); + void SetUsers(USERS* u) { m_users = u; } + void SetStore(STORE* s) { m_store = s; } + void SetStgSettings(const SETTINGS*) {} + void SetSettings(const MODULE_SETTINGS& s) { m_settings = s; } + int ParseSettings(); - int Start(); - int Stop(); - int Reload(const MODULE_SETTINGS & /*ms*/) { return 0; } - bool IsRunning() { return isRunning; } + int Start(); + int Stop(); - int Reload() { return 0; } ++ int Reload(const MODULE_SETTINGS & /*ms*/) { return 0; } + bool IsRunning() { return m_running; } - const std::string & GetStrError() const { return errorStr; } - std::string GetVersion() const { return "RADIUS data access plugin v 0.6"; } - uint16_t GetStartPosition() const { return 30; } - uint16_t GetStopPosition() const { return 30; } + const std::string& GetStrError() const { return m_error; } + std::string GetVersion() const { return "RADIUS data access plugin v. 2.0"; } + uint16_t GetStartPosition() const { return 30; } + uint16_t GetStopPosition() const { return 30; } - int SendMessage(const STG_MSG &, uint32_t) const { return 0; } + int SendMessage(const STG_MSG&, uint32_t) const { return 0; } + + void authorize(const USER& user); + void unauthorize(const std::string& login, const std::string& reason); private: RADIUS(const RADIUS & rvalue); diff --cc projects/stargazer/settings_impl.h index bab818c6,253b8bbc..68fb9b0d --- a/projects/stargazer/settings_impl.h +++ b/projects/stargazer/settings_impl.h @@@ -25,8 -41,8 +25,9 @@@ #include #include "stg/settings.h" + #include "stg/common.h" #include "stg/module_settings.h" +#include "stg/ref.h" //----------------------------------------------------------------------------- enum DETAIL_STAT_PERIOD { @@@ -42,7 -58,10 +43,10 @@@ class DOTCONFDocumentNode class SETTINGS_IMPL : public SETTINGS { public: SETTINGS_IMPL(const std::string &); - SETTINGS_IMPL(const SETTINGS_IMPL &); ++ SETTINGS_IMPL(const SETTINGS_IMPL & rhs); virtual ~SETTINGS_IMPL() {} + SETTINGS_IMPL & operator=(const SETTINGS_IMPL &); + int Reload() { return ReadSettings(); } int ReadSettings(); @@@ -81,7 -100,10 +85,9 @@@ { return modulesSettings; } const std::vector & GetScriptParams() const { return scriptParams; } -private: ++ int ParseModuleSettings(const DOTCONFDocumentNode * node, std::vector * params); + - int ParseDetailStatWritePeriod(const std::string & str); - int ParseModuleSettings(const DOTCONFDocumentNode * dirNameNode, std::vector * params); +private: static void ErrorCallback(void * data, const char * buf);