X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/641204dfbdb9fc870cdd2e7f9e3169a44693e7bf..d30ba9e41fa70e8f709f2d89cfef7f342a9fd4e5:/projects/rlm_stg/stg_client.h?ds=sidebyside diff --git a/projects/rlm_stg/stg_client.h b/projects/rlm_stg/stg_client.h index 60ed6af8..5ee000c7 100644 --- a/projects/rlm_stg/stg_client.h +++ b/projects/rlm_stg/stg_client.h @@ -35,64 +35,44 @@ #include #include // socklen_t -#include "blowfish.h" -#include "rad_packets.h" +#include "stg/blowfish.h" +#include "stg/rad_packets.h" + +#include "stgpair.h" class STG_CLIENT { public: - STG_CLIENT(); + STG_CLIENT(const std::string & host, uint16_t port, const std::string & password); ~STG_CLIENT(); - void SetServer(const std::string & host); - void SetPort(uint16_t port); - void SetLocalPort(uint16_t port); - void SetPassword(const std::string & password); - - int Start(); - int Stop(); - - 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; - - - const std::string & GetError() const { return errorStr; }; + const STG_PAIR * Authorize(const std::string & login, const std::string & service); + const STG_PAIR * Authenticate(const std::string & login, const std::string & service); + const STG_PAIR * PostAuth(const std::string & login, const std::string & service); + const STG_PAIR * PreAcct(const std::string & login, const std::string & service); + const STG_PAIR * Account(const std::string & type, const std::string & login, const std::string & service, const std::string & sessionId); private: - std::string host; - uint16_t port; - uint16_t localPort; std::string password; - int sock; - std::string errorStr; - - struct sockaddr_in outerAddr; - socklen_t outerAddrLen; - - std::string userPassword; - - uint32_t framedIP; - - BLOWFISH_CTX ctx; int PrepareNet(); - void FinalizeNet(); - - void InitEncrypt(); - void Encrypt(char * dst, const char * src, int len8); - void Decrypt(char * dst, const char * src, int len8); 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); +}; +struct STG_CLIENT_ST +{ + public: + static void Configure(const std::string & host, uint16_t port, const std::string & password); + static STG_CLIENT * Get(); + + private: + static std::string m_host; + static uint16_t m_port; + static std::string m_password; }; #endif