X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/b05d53afe92ce0c90589e320bf8711539c0ea6c5..83c4a22d73f9801ced3c29e664e2c000535a0965:/projects/rlm_stg/stg_client.h diff --git a/projects/rlm_stg/stg_client.h b/projects/rlm_stg/stg_client.h index f87f816f..680d0883 100644 --- a/projects/rlm_stg/stg_client.h +++ b/projects/rlm_stg/stg_client.h @@ -38,43 +38,24 @@ #include "stg/blowfish.h" #include "stg/rad_packets.h" +typedef std::vector > PAIRS; + class STG_CLIENT { public: - STG_CLIENT(const std::string & host, uint16_t port, uint16_t lp, const std::string & pass); + STG_CLIENT(const std::string & host, uint16_t port, const std::string & password); ~STG_CLIENT(); - std::string GetUserPassword() const; - - int Authorize(const std::string & login, const std::string & svc); - int Authenticate(const std::string & login, const std::string & svc); - int PostAuthenticate(const std::string & login, const std::string & svc); - int Account(const std::string & type, const std::string & login, const std::string & svc, const std::string & sessid); - - uint32_t GetFramedIP() const; + static STG_CLIENT* get(); + static void configure(const std::string& server, uint16_t port, const std::string& password); - const std::string & GetError() const { return errorStr; }; + PAIRS authorize(const PAIRS& pairs); + PAIRS authenticate(const PAIRS& pairs); + PAIRS postAuth(const PAIRS& pairs); + PAIRS preAcct(const PAIRS& pairs); + PAIRS account(const PAIRS& pairs); private: - uint16_t localPort; - std::string password; - int sock; - std::string errorStr; - - struct sockaddr_in outerAddr; - - std::string userPassword; - - uint32_t framedIP; - - BLOWFISH_CTX ctx; - - int PrepareNet(); - - int Request(RAD_PACKET * packet, const std::string & login, const std::string & svc, uint8_t packetType); - - int RecvData(RAD_PACKET * packet); - int Send(const RAD_PACKET & packet); }; #endif