4 #include "stg/plugin.h"
5 #include "stg/module_settings.h"
6 #include "stg/subscriptions.h"
7 #include "stg/logger.h"
10 #include <boost/asio.hpp>
14 #include <jthread.hpp>
15 #include <cstdint> //uint8_t, uint32_t
25 virtual ~RAD_SETTINGS() {}
26 const std::string & GetStrError() const { return m_errorStr; }
27 int ParseSettings(const ModuleSettings & s);
29 uint16_t GetPort() const { return m_port; }
30 const std::string & GetDictionaries() const { return m_dictionaries; }
31 const std::string & GetSecret() const { return m_secret; }
34 std::string m_errorStr;
36 std::string m_dictionaries;
40 class RADIUS : public Auth
44 RADIUS(const RADIUS&) = delete;
45 RADIUS& operator=(const RADIUS&) = delete;
47 void SetSettings(const ModuleSettings & s) override { m_settings = s; }
48 int ParseSettings() override;
52 int Reload(const ModuleSettings & /*ms*/) override { return 0; }
53 bool IsRunning() override;
54 void SetRunning(bool val);
56 const std::string & GetStrError() const override { return m_errorStr; }
57 std::string GetVersion() const override;
59 uint16_t GetStartPosition() const override { return 0; }
60 uint16_t GetStopPosition() const override { return 0; }
62 int SendMessage(const Message & msg, uint32_t ip) const override { return 0; }
67 boost::asio::io_service m_ioService;
68 int Run(std::stop_token token);
70 mutable std::string m_errorStr;
71 RAD_SETTINGS m_radSettings;
72 ModuleSettings m_settings;
76 std::jthread m_thread;
78 PluginLogger m_logger;
80 std::unique_ptr<Server> m_server;