X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/2db7e7236c61f8ee346800c82c800eafcd65de4e..8c6fa3fbaccc22127280bf77a48fab5a3ee0716e:/projects/rlm_stg/stg_client.h diff --git a/projects/rlm_stg/stg_client.h b/projects/rlm_stg/stg_client.h index 680d0883..917d0e51 100644 --- a/projects/rlm_stg/stg_client.h +++ b/projects/rlm_stg/stg_client.h @@ -18,44 +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 -typedef std::vector > PAIRS; +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(); + explicit Client(const std::string& address); + ~Client(); - static STG_CLIENT* get(); - static void configure(const std::string& server, uint16_t port, const std::string& password); + bool stop(); - 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); + static Client* get(); + static bool configure(const std::string& address); + + RESULT request(REQUEST_TYPE type, const std::string& userName, const std::string& password, const PAIRS& pairs); private: + class Impl; + boost::scoped_ptr m_impl; }; +} // namespace RLM +} // namespace STG + #endif