]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/other/radius/server.h
Sending attributes from <auth>/send section. (#13)
[stg.git] / projects / stargazer / plugins / other / radius / server.h
index 7abcff3d66f4bd9d33dd929ab928428485c3f47c..1523179ed877a2edc6efaff6ed0108f524d2913d 100644 (file)
@@ -2,6 +2,7 @@
 
 #include "radproto/socket.h"
 #include "radproto/packet.h"
+#include "config.h"
 #include "radproto/dictionaries.h"
 #include "stg/logger.h"
 #include <boost/asio.hpp>
 namespace STG
 {
     class Users;
+    class User;
 
     class Server
     {
         public:
-            Server(boost::asio::io_service& io_service, const std::string& secret, uint16_t port, const std::string& filePath, std::stop_token token, PluginLogger& logger, Users* users);
+            Server(boost::asio::io_context& io_context, const std::string& secret, uint16_t port, const std::string& filePath, std::stop_token token, PluginLogger& logger, Users* users, const Config& config);
             void stop();
         private:
+            std::vector<RadProto::Attribute*> makeAttributes(const User* user);
             RadProto::Packet makeResponse(const RadProto::Packet& request);
-            bool findUser(const RadProto::Packet& packet);
+            const User* findUser(const RadProto::Packet& packet);
             void handleReceive(const boost::system::error_code& error, const std::optional<RadProto::Packet>& packet, const boost::asio::ip::udp::endpoint& source);
             void handleSend(const boost::system::error_code& ec);
             void start();
@@ -29,6 +32,7 @@ namespace STG
             RadProto::Socket m_radius;
             RadProto::Dictionaries m_dictionaries;
             Users* m_users;
+            const Config& m_config;
             std::stop_token m_token;
 
             PluginLogger& m_logger;