X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/75dfb67fd068cc291e22f4f813b407812ebd09d2..ce4f87b0803d81e413699ffe65d5dbf4eec9d64c:/projects/rlm_stg/stg_client.h diff --git a/projects/rlm_stg/stg_client.h b/projects/rlm_stg/stg_client.h index 5ee000c7..917d0e51 100644 --- a/projects/rlm_stg/stg_client.h +++ b/projects/rlm_stg/stg_client.h @@ -18,61 +18,41 @@ * Author : Maxim Mamontov */ -/* - * Header file for client part of data access via Stargazer for RADIUS - * - * $Revision: 1.4 $ - * $Date: 2010/04/16 12:30:02 $ - * - */ +#ifndef __STG_RLM_CLIENT_H__ +#define __STG_RLM_CLIENT_H__ -#ifndef STG_CLIENT_H -#define STG_CLIENT_H +#include "types.h" -#include +#include "stg/os_int.h" -#include -#include -#include // socklen_t +#include -#include "stg/blowfish.h" -#include "stg/rad_packets.h" +#include -#include "stgpair.h" +namespace STG +{ +namespace RLM +{ -class STG_CLIENT +class Client { public: - STG_CLIENT(const std::string & host, uint16_t port, const std::string & password); - ~STG_CLIENT(); - - 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); + explicit Client(const std::string& address); + ~Client(); -private: - std::string password; + bool stop(); - int PrepareNet(); + static Client* get(); + static bool configure(const std::string& address); - int Request(RAD_PACKET * packet, const std::string & login, const std::string & svc, uint8_t packetType); + RESULT request(REQUEST_TYPE type, const std::string& userName, const std::string& password, const PAIRS& pairs); - int RecvData(RAD_PACKET * packet); - int Send(const RAD_PACKET & packet); +private: + class Impl; + boost::scoped_ptr m_impl; }; -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; -}; +} // namespace RLM +} // namespace STG #endif