]> git.stg.codes - stg.git/blob - projects/stargazer/plugins/other/radius/radius.h
Radius (#7)
[stg.git] / projects / stargazer / plugins / other / radius / radius.h
1 #pragma once
2
3 #include "stg/auth.h"
4 #include "stg/logger.h"
5
6 #include <string>
7 #include <mutex>
8 #include <jthread.hpp>
9
10 namespace STG
11 {
12     class RADIUS : public Auth
13     {
14         public:
15             RADIUS();
16
17             int Start() override;
18             int Stop() override;
19             int Reload(const ModuleSettings & /*ms*/) override { return 0; }
20             bool IsRunning() override;
21             void SetRunning(bool val);
22             int ParseSettings() override { return 0; }
23             const std::string & GetStrError() const override { return m_errorStr; }
24             std::string GetVersion() const override;
25             uint16_t GetStartPosition() const override { return 0; }
26             uint16_t GetStopPosition() const override { return 0; }
27
28             int SendMessage(const Message & msg, uint32_t ip) const override { return 0; }
29
30         private:
31             std::mutex m_mutex;
32             mutable std::string m_errorStr;
33             std::jthread m_thread;
34             bool m_running;
35             PluginLogger m_logger;
36
37             int Run(std::stop_token token);
38     };
39 }