]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/other/radius/radius.h
Optimized sending answers in sgconfig.
[stg.git] / projects / stargazer / plugins / other / radius / radius.h
index 731753a01596a9b0582e905ab1f7196d4757176f..8f5ba2a451ad8ad3d88dcb88fd0ae7f5013ffe3c 100644 (file)
@@ -47,6 +47,7 @@
 #include "stg/users.h"
 #include "stg/blowfish.h"
 #include "stg/rad_packets.h"
+#include "stg/logger.h"
 
 extern "C" PLUGIN * GetPlugin();
 
@@ -61,12 +62,12 @@ public:
           authServices(), acctServices()
     {}
     virtual ~RAD_SETTINGS() {}
-    const string & GetStrError() const { return errorStr; }
+    const std::string & GetStrError() const { return errorStr; }
     int ParseSettings(const MODULE_SETTINGS & s);
     uint16_t GetPort() const { return port; }
     const std::string & GetPassword() const { return password; }
-    const std::list<string> & GetAuthServices() const { return authServices; }
-    const std::list<string> & GetAcctServices() const { return acctServices; }
+    const std::list<std::string> & GetAuthServices() const { return authServices; }
+    const std::list<std::string> & GetAcctServices() const { return acctServices; }
 
 private:
     int ParseServices(const std::vector<std::string> & str, std::list<std::string> * lst);
@@ -101,9 +102,9 @@ public:
     bool                IsRunning() { return isRunning; }
 
     const std::string & GetStrError() const { return errorStr; }
-    const std::string   GetVersion() const { return "RADIUS data access plugin v 0.6"; }
-    uint16_t            GetStartPosition() const { return 20; }
-    uint16_t            GetStopPosition() const { return 20; }
+    std::string         GetVersion() const { return "RADIUS data access plugin v 0.6"; }
+    uint16_t            GetStartPosition() const { return 30; }
+    uint16_t            GetStopPosition() const { return 30; }
 
     int SendMessage(const STG_MSG &, uint32_t) const { return 0; }
 
@@ -115,7 +116,7 @@ private:
     int                 PrepareNet();
     int                 FinalizeNet();
 
-    int                 Send(const RAD_PACKET & packet, struct sockaddr_in * outerAddr);
+    ssize_t             Send(const RAD_PACKET & packet, struct sockaddr_in * outerAddr);
     int                 RecvData(RAD_PACKET * packet, struct sockaddr_in * outerAddr);
     int                 ProcessData(RAD_PACKET * packet);
 
@@ -132,21 +133,12 @@ private:
     bool                CanAcctService(const std::string & svc) const;
     bool                IsAllowedService(const std::string & svc) const;
 
-    void                PrintServices(const std::list<std::string> & svcs);
-
-    struct Printer : public unary_function<std::string, void>
-    { 
-        void operator()(const std::string & line)
-        { 
-            printfd("radius.cpp", "'%s'\n", line.c_str()); 
-        }; 
-    };
-    struct SPrinter : public unary_function<std::pair<std::string, RAD_SESSION>, void>
-    { 
+    struct SPrinter : public std::unary_function<std::pair<std::string, RAD_SESSION>, void>
+    {
         void operator()(const std::pair<std::string, RAD_SESSION> & it)
-        { 
-            printfd("radius.cpp", "%s - ('%s', '%s')\n", it.first.c_str(), it.second.userName.c_str(), it.second.serviceType.c_str()); 
-        }
+        {
+            printfd("radius.cpp", "%s - ('%s', '%s')\n", it.first.c_str(), it.second.userName.c_str(), it.second.serviceType.c_str());
+        }
     };
 
     BLOWFISH_CTX        ctx;
@@ -172,6 +164,7 @@ private:
 
     RAD_PACKET          packet;
 
+    PLUGIN_LOGGER       logger;
 };
 //-----------------------------------------------------------------------------