|
reSIProcate
SIP stack, Dialog Usage Manager and related libraries
|
#include <AsyncTlsSocketBase.hxx>
Static Public Member Functions | |
| static bool | setupClientSsl (SSL *ssl, const std::string &hostname, bool validateHostname) |
| Sets up a client SSL to connect to hostname (a host name or IP address): SNI for a host name, and - when validateHostname - has OpenSSL check during the handshake that the server certificate is for hostname, so the handshake fails if it isn't. | |
| static void | logClientHandshakeResult (SSL *ssl, const std::string &hostname, const asio::error_code &ec) |
| Logs a client handshake's outcome: the TLS version and cipher, or why the server certificate was rejected. | |
Static Public Member Functions inherited from reTurn::AsyncSocketBase | |
| static std::shared_ptr< DataBuffer > | allocateBuffer (size_t size) |
| Utility API. | |
| static size_t | channelDataPadding (size_t length) |
| Over TCP and TLS, a TURN ChannelData message is padded to a multiple of 4 bytes, the padding not counted in its length (RFC 5766 11.5, RFC 8656 12.5): the padding after one of length bytes. | |
| static void | setExclusiveAddressUse (asio::ip::udp::socket &socket) |
| For a UDP socket, between open() and bind(). | |
Protected Member Functions | |
| void | handleReadHeader (const asio::error_code &e) override |
| void | handleServerHandshake (const asio::error_code &e) override |
| void | handleTcpResolve (const asio::error_code &ec, const asio::ip::tcp::resolver::results_type &endpoints) override |
| void | handleConnect (const asio::error_code &ec, const asio::ip::tcp::endpoint &endpoint) override |
| void | handleClientHandshake (const asio::error_code &ec, const asio::ip::tcp::endpoint &endpoint) override |
| virtual void | onServerHandshakeSuccess () |
| virtual void | onServerHandshakeFailure (const asio::error_code &e) |
Protected Member Functions inherited from reTurn::AsyncSocketBase | |
| virtual void | handleSend (const asio::error_code &e) |
| Handle completion of a sendData operation. | |
| virtual void | handleReceive (const asio::error_code &e, size_t bytesTransferred) |
| asio::error_code | openAndBind (asio::ip::tcp::socket &socket) |
| For TCP and TLS client sockets. | |
| void | asyncConnect (asio::ip::tcp::socket &socket, const asio::ip::tcp::resolver::results_type &endpoints) |
| void | startIdleTimer (unsigned int timeoutSeconds, std::function< bool()> inUse) |
| For server connections (TcpConnectionIdleTimeout): the connection is closed, with close(), once nothing has been received on it for timeoutSeconds while inUse() is false - eg. | |
| void | noteReceived () |
| void | stopIdleTimer () |
Protected Attributes | |
| asio::ssl::stream< asio::ip::tcp::socket > | mSocket |
| asio::ip::tcp::resolver | mResolver |
Protected Attributes inherited from reTurn::AsyncSocketBase | |
| asio::ip::tcp::endpoint | mLocalTcpEndpoint |
| asio::io_context & | mIOService |
| The io_context used to perform asynchronous operations. | |
| std::shared_ptr< DataBuffer > | mReceiveBuffer |
| Receive Buffer and state. | |
| bool | mReceiving |
| asio::ip::address | mConnectedAddress |
| Connected Info and State. | |
| unsigned short | mConnectedPort |
| bool | mConnected |
| AsyncSocketBaseHandler * | mAsyncSocketBaseHandler |
| Handlers. | |
| BeforeClosedHandler | mOnBeforeSocketCloseFp |
| Provides an opportunity for the app to clean up, e.g., QoS-related data or resources just before the socket is closed. | |
Additional Inherited Members | |
Public Types inherited from reTurn::AsyncSocketBase | |
| using | BeforeClosedHandler = std::function< void(unsigned int)> |
Definition at line 17 of file AsyncTlsSocketBase.hxx.
| reTurn::AsyncTlsSocketBase::AsyncTlsSocketBase | ( | asio::io_context & | ioService, |
| asio::ssl::context & | context, | ||
| bool | validateServerCertificateHostname | ||
| ) |
Definition at line 26 of file AsyncTlsSocketBase.cxx.
|
overridevirtual |
Note: The following API's are thread safe and queue the request to be handled by the ioService thread.
Implements reTurn::AsyncSocketBase.
Definition at line 43 of file AsyncTlsSocketBase.cxx.
|
overridevirtual |
Implements reTurn::AsyncSocketBase.
Definition at line 51 of file AsyncTlsSocketBase.cxx.
Starts the server side handshake.
If timeoutSeconds isn't 0, the connection is closed if the handshake hasn't completed by then.
Definition at line 179 of file AsyncTlsSocketBase.cxx.
|
overridevirtual |
Implements reTurn::AsyncSocketBase.
Definition at line 220 of file AsyncTlsSocketBase.cxx.
Implements reTurn::AsyncSocketBase.
Definition at line 226 of file AsyncTlsSocketBase.cxx.
Implements reTurn::AsyncSocketBase.
Reimplemented in reTurn::TurnAsyncTlsSocket.
Definition at line 37 of file AsyncTlsSocketBase.cxx.
|
overrideprotectedvirtual |
Reimplemented from reTurn::AsyncSocketBase.
Definition at line 159 of file AsyncTlsSocketBase.cxx.
|
overrideprotectedvirtual |
Reimplemented from reTurn::AsyncSocketBase.
Definition at line 136 of file AsyncTlsSocketBase.cxx.
|
overrideprotectedvirtual |
Reimplemented from reTurn::AsyncSocketBase.
Definition at line 268 of file AsyncTlsSocketBase.cxx.
|
overrideprotectedvirtual |
Reimplemented from reTurn::AsyncSocketBase.
Definition at line 201 of file AsyncTlsSocketBase.cxx.
|
overrideprotectedvirtual |
Reimplemented from reTurn::AsyncSocketBase.
Definition at line 65 of file AsyncTlsSocketBase.cxx.
|
static |
Logs a client handshake's outcome: the TLS version and cipher, or why the server certificate was rejected.
Definition at line 119 of file AsyncTlsSocketBase.cxx.
|
inlineprotectedvirtual |
Reimplemented in reTurn::TlsConnection.
Definition at line 58 of file AsyncTlsSocketBase.hxx.
Reimplemented in reTurn::TlsConnection.
Definition at line 57 of file AsyncTlsSocketBase.hxx.
|
static |
Sets up a client SSL to connect to hostname (a host name or IP address): SNI for a host name, and - when validateHostname - has OpenSSL check during the handshake that the server certificate is for hostname, so the handshake fails if it isn't.
The context's verify mode must include verify_peer for that check to apply. Returns false if hostname can't be checked against.
Definition at line 82 of file AsyncTlsSocketBase.cxx.
|
overridevirtual |
Implements reTurn::AsyncSocketBase.
Definition at line 255 of file AsyncTlsSocketBase.cxx.
|
overridevirtual |
Implements reTurn::AsyncSocketBase.
Definition at line 248 of file AsyncTlsSocketBase.cxx.
|
overridevirtual |
Implements reTurn::AsyncSocketBase.
Definition at line 240 of file AsyncTlsSocketBase.cxx.
|
overridevirtual |
Implements reTurn::AsyncSocketBase.
Definition at line 232 of file AsyncTlsSocketBase.cxx.
|
protected |
Definition at line 61 of file AsyncTlsSocketBase.hxx.
|
protected |
Definition at line 60 of file AsyncTlsSocketBase.hxx.