4 #include "stg/plugin.h"
5 #include "stg/module_settings.h"
6 #include "stg/subscriptions.h"
7 #include "stg/logger.h"
11 #include <jthread.hpp>
12 #include <cstdint> //uint8_t, uint32_t
22 virtual ~RAD_SETTINGS() {}
23 const std::string & GetStrError() const { return m_errorStr; }
24 int ParseSettings(const ModuleSettings & s);
26 uint16_t GetPort() const { return m_port; }
27 const std::string & GetDictionaries() const { return m_dictionaries; }
28 const std::string & GetSecret() const { return m_secret; }
31 std::string m_errorStr;
33 std::string m_dictionaries;
37 class RADIUS : public Auth
41 RADIUS(const RADIUS&) = delete;
42 RADIUS& operator=(const RADIUS&) = delete;
44 void SetSettings(const ModuleSettings & s) override { m_settings = s; }
45 int ParseSettings() override;
49 int Reload(const ModuleSettings & /*ms*/) override { return 0; }
50 bool IsRunning() override;
51 void SetRunning(bool val);
53 const std::string & GetStrError() const override { return m_errorStr; }
54 std::string GetVersion() const override;
56 uint16_t GetStartPosition() const override { return 0; }
57 uint16_t GetStopPosition() const override { return 0; }
59 int SendMessage(const Message & msg, uint32_t ip) const override { return 0; }
64 int Run(std::stop_token token);
66 mutable std::string m_errorStr;
67 RAD_SETTINGS m_radSettings;
68 ModuleSettings m_settings;
72 std::jthread m_thread;
74 PluginLogger m_logger;