X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/46d0fa38003ef0b122fea77dfaa252fa832cb5a3..refs/heads/master:/projects/stargazer/plugins/other/radius/server.h diff --git a/projects/stargazer/plugins/other/radius/server.h b/projects/stargazer/plugins/other/radius/server.h index b88889be..e33a23b3 100644 --- a/projects/stargazer/plugins/other/radius/server.h +++ b/projects/stargazer/plugins/other/radius/server.h @@ -3,7 +3,9 @@ #include "radproto/socket.h" #include "radproto/packet.h" #include "radproto/dictionaries.h" +#include "stg/logger.h" #include +#include #include #include //uint8_t, uint32_t @@ -12,15 +14,19 @@ namespace STG class Server { public: - Server(boost::asio::io_service& io_service, const std::string& secret, uint16_t port, const std::string& filePath); - + Server(boost::asio::io_service& io_service, const std::string& secret, uint16_t port, const std::string& filePath, std::stop_token token, PluginLogger& logger); + void stop(); private: RadProto::Packet makeResponse(const RadProto::Packet& request); void handleReceive(const boost::system::error_code& error, const std::optional& packet, const boost::asio::ip::udp::endpoint& source); void handleSend(const boost::system::error_code& ec); + void start(); void startReceive(); RadProto::Socket m_radius; RadProto::Dictionaries m_dictionaries; + std::stop_token m_token; + + PluginLogger& m_logger; }; }