X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/46d0fa38003ef0b122fea77dfaa252fa832cb5a3..refs/heads/master:/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 4e06e463..6b742de5 100644 --- a/projects/stargazer/plugins/other/radius/radius.h +++ b/projects/stargazer/plugins/other/radius/radius.h @@ -1,27 +1,61 @@ #pragma once #include "stg/auth.h" +#include "stg/plugin.h" +#include "stg/module_settings.h" +#include "stg/subscriptions.h" #include "stg/logger.h" +#include "server.h" +#include #include +#include #include #include +#include //uint8_t, uint32_t namespace STG { + struct Settings; + + class RAD_SETTINGS + { + public: + RAD_SETTINGS(); + virtual ~RAD_SETTINGS() {} + const std::string & GetStrError() const { return m_errorStr; } + int ParseSettings(const ModuleSettings & s); + + uint16_t GetPort() const { return m_port; } + const std::string & GetDictionaries() const { return m_dictionaries; } + const std::string & GetSecret() const { return m_secret; } + + private: + std::string m_errorStr; + uint16_t m_port; + std::string m_dictionaries; + std::string m_secret; + }; + class RADIUS : public Auth { public: RADIUS(); + RADIUS(const RADIUS&) = delete; + RADIUS& operator=(const RADIUS&) = delete; + + void SetSettings(const ModuleSettings & s) override { m_settings = s; } + int ParseSettings() override; int Start() override; int Stop() override; int Reload(const ModuleSettings & /*ms*/) override { return 0; } bool IsRunning() override; void SetRunning(bool val); - int ParseSettings() override { return 0; } + const std::string & GetStrError() const override { return m_errorStr; } std::string GetVersion() const override; + uint16_t GetStartPosition() const override { return 0; } uint16_t GetStopPosition() const override { return 0; } @@ -29,11 +63,20 @@ namespace STG private: std::mutex m_mutex; + + boost::asio::io_service m_ioService; + int Run(std::stop_token token); + mutable std::string m_errorStr; - std::jthread m_thread; + RAD_SETTINGS m_radSettings; + ModuleSettings m_settings; + bool m_running; + + std::jthread m_thread; + PluginLogger m_logger; - int Run(std::stop_token token); + std::unique_ptr m_server; }; }