![]() |
Kea 3.1.9
|
RADIUS/TCP (or RADIUS/TLS) Exchange. More...
#include <client_exchange.h>
Public Member Functions | |
| TcpExchange (const MessagePtr &request, unsigned maxretries, const Servers &servers, Handler handler) | |
| Constructor. | |
| virtual | ~TcpExchange ()=default |
| Destructor. | |
| virtual void | shutdown () |
| Shutdown. | |
| virtual void | start () |
| Start. | |
| Public Member Functions inherited from isc::radius::Exchange | |
| virtual | ~Exchange ()=default |
| Destructor. | |
| const std::string & | getId () const |
| Get identifier. | |
| int | getRC () const |
| Get the error code. | |
| MessagePtr | getRequest () const |
| Get the request. | |
| MessagePtr | getResponse () const |
| Get the response. | |
| void | logReplyMessages () const |
| Log reply messages. | |
| void | processResponse () |
| Process response. | |
Protected Member Functions | |
| void | buildRequest () |
| Build request. | |
| Protected Member Functions inherited from isc::radius::Exchange | |
| Exchange (const MessagePtr &request, unsigned maxretries, const Servers &servers) | |
| Constructor. | |
| Exchange (const MessagePtr &request, unsigned maxretries, const Servers &servers, Handler handler) | |
| Constructor. | |
| void | buildRequest (const ServerPtr &server, std::chrono::steady_clock::time_point start_time) |
| Build request. | |
| void | createIdentifier () |
| Create identifier. | |
Static Protected Member Functions | |
| static int | CompleteCheck (const isc::tcp::WireDataPtr &response, std::string &error_msg) |
| Complete check. | |
| static void | RequestHandler (TcpExchangePtr ex, const boost::system::error_code &ec, const isc::tcp::WireDataPtr &response, const std::string &error_msg) |
| Request handler. | |
Protected Attributes | |
| isc::tcp::WireDataPtr | response_ |
| Response wire data. | |
| ServerPtr | server_ |
| Current server. | |
| std::chrono::steady_clock::time_point | start_time_ |
| Start time. | |
| Protected Attributes inherited from isc::radius::Exchange | |
| Handler | handler_ |
| Termination handler. | |
| std::string | identifier_ |
| The identifier (random value in hexadecimal). | |
| unsigned | maxretries_ |
| Maximum number of retries for a server. | |
| int | rc_ |
| Error/return code. | |
| MessagePtr | received_ |
| Received message. | |
| MessagePtr | request_ |
| Request message. | |
| MessagePtr | sent_ |
| Sent message. | |
| Servers | servers_ |
| Servers (a copy which is what we need). | |
| bool | sync_ |
| Sync / async flag. | |
Additional Inherited Members | |
| Public Types inherited from isc::radius::Exchange | |
| typedef std::function< void(const ExchangePtr ex)> | Handler |
| Termination handler. | |
| typedef asiolink::UDPSocket< const SocketCallback > | RadiusSocket |
| Type of RADIUS UDP sockets. | |
| typedef std::function< void(const boost::system::error_code ec, const size_t size)> | SocketCallback |
| Type of UDP socket callback functions. | |
| Static Public Member Functions inherited from isc::radius::Exchange | |
| static ExchangePtr | create (const asiolink::IOServicePtr io_service, const MessagePtr &request, unsigned maxretries, const Servers &servers, Handler handler, RadiusProtocol protocol=PW_PROTO_UDP) |
| Factory. | |
| static ExchangePtr | create (const MessagePtr &request, unsigned maxretries, const Servers &servers) |
| Factory. | |
| Static Public Attributes inherited from isc::radius::Exchange | |
| static constexpr size_t | BUF_LEN = 8192 |
| Receive buffer size. | |
RADIUS/TCP (or RADIUS/TLS) Exchange.
Definition at line 355 of file client_exchange.h.
| isc::radius::TcpExchange::TcpExchange | ( | const MessagePtr & | request, |
| unsigned | maxretries, | ||
| const Servers & | servers, | ||
| Handler | handler ) |
Constructor.
Async version.
| request | request message to send. |
| maxretries | maximum number of retries for a server. |
| servers | Servers. |
| handler | Termination handler. |
Definition at line 812 of file client_exchange.cc.
References isc::radius::Exchange::Exchange(), response_, server_, isc::radius::Exchange::servers_, and start_time_.
|
virtualdefault |
Destructor.
|
protected |
Build request.
Definition at line 320 of file client_exchange.cc.
References isc::radius::Exchange::buildRequest(), server_, and start_time_.
Referenced by start().
|
staticprotected |
Complete check.
| response | Pointer to response wire data. |
| error_msg | Reference to the error message. |
Definition at line 959 of file client_exchange.cc.
Referenced by start().
|
staticprotected |
Request handler.
| ex | Point to the Exchange. |
| ec | Boost error code. |
| response | Pointer to response wire data. |
| error_msg | Error message. |
Definition at line 895 of file client_exchange.cc.
References isc::radius::ERROR_RC, isc::radius::exchangeRCtoText(), isc_throw, LOG_DEBUG, LOG_ERROR, isc::radius::OK_RC, isc::radius::RADIUS_DBG_TRACE, isc::radius::radius_logger, isc::radius::RADIUS_TCP_EXCHANGE_FAILURE, isc::radius::RADIUS_TCP_EXCHANGE_RECEIVE_FAILED, isc::radius::RADIUS_TCP_EXCHANGE_RECEIVED, isc::radius::RADIUS_TCP_EXCHANGE_SUCCESS, isc::radius::REJECT_RC, isc::radius::RadiusImpl::shutdown_, and isc::radius::TIMEOUT_RC.
Referenced by start().
|
virtual |
Shutdown.
Implements isc::radius::Exchange.
Definition at line 890 of file client_exchange.cc.
References isc::radius::Exchange::handler_.
Referenced by start().
|
virtual |
Start.
Implements isc::radius::Exchange.
Definition at line 823 of file client_exchange.cc.
References buildRequest(), CompleteCheck(), isc::radius::ERROR_RC, isc::radius::Exchange::handler_, isc::radius::Exchange::identifier_, isc::radius::RadiusImpl::instance(), isc_throw, LOG_DEBUG, LOG_ERROR, isc::radius::RADIUS_DBG_TRACE, isc::radius::radius_logger, isc::radius::RADIUS_TCP_EXCHANGE_SEND, isc::radius::RADIUS_TCP_EXCHANGE_START, isc::radius::RADIUS_TCP_EXCHANGE_START_ERROR, isc::radius::Exchange::rc_, RequestHandler(), response_, isc::radius::Exchange::sent_, server_, shutdown(), isc::radius::RadiusImpl::shutdown_, isc::radius::RadiusImpl::tcp_client_, and isc::Exception::what().
|
protected |
Response wire data.
Definition at line 390 of file client_exchange.h.
Referenced by TcpExchange(), and start().
|
protected |
Current server.
Definition at line 387 of file client_exchange.h.
Referenced by TcpExchange(), buildRequest(), and start().
|
protected |
Start time.
Definition at line 384 of file client_exchange.h.
Referenced by TcpExchange(), and buildRequest().