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
27 virtual ~RAD_SETTINGS() {}
28 const std::string & GetStrError() const { return m_errorStr; }
29 int ParseSettings(const ModuleSettings & s);
31 uint16_t GetPort() const { return m_port; }
32 const std::string & GetDictionaries() const { return m_dictionaries; }
33 const std::string & GetSecret() const { return m_secret; }
36 std::string m_errorStr;
38 std::string m_dictionaries;
42 class RADIUS : public Auth
46 RADIUS(const RADIUS&) = delete;
47 RADIUS& operator=(const RADIUS&) = delete;
49 void SetUsers(Users* u) { m_users = u; }
50 void SetSettings(const ModuleSettings & s) override { m_settings = s; }
51 int ParseSettings() override;
55 int Reload(const ModuleSettings & /*ms*/) override { return 0; }
56 bool IsRunning() override;
57 void SetRunning(bool val);
59 const std::string & GetStrError() const override { return m_errorStr; }
60 std::string GetVersion() const override;
62 uint16_t GetStartPosition() const override { return 0; }
63 uint16_t GetStopPosition() const override { return 0; }
65 int SendMessage(const Message & msg, uint32_t ip) const override { return 0; }
70 boost::asio::io_service m_ioService;
71 int Run(std::stop_token token);
73 mutable std::string m_errorStr;
74 RAD_SETTINGS m_radSettings;
75 ModuleSettings m_settings;
79 std::jthread m_thread;
81 PluginLogger m_logger;
83 std::unique_ptr<Server> m_server;