12#define RESIPROCATE_SUBSYSTEM ReTurnSubsystem::RETURN
28 return (
unsigned int)
mSocket.native_handle();
47 std::placeholders::_1,
48 std::placeholders::_2));
53 const asio::ip::tcp::resolver::results_type& endpoints)
69 const asio::ip::tcp::endpoint& endpoint)
110 asio::async_write(
mSocket, buffers,
145 dataLen = ntohs(dataLen);
164 WarningLog(<<
"Receive buffer (" <<
RECEIVE_BUFFER_SIZE <<
") is not large enough to accommodate incoming framed data (" << dataLen+4 <<
") closing connection.");
168 else if (e != asio::error::operation_aborted)
170 if(e != asio::error::eof &&
172 e.value() != ERROR_CONNECTION_ABORTED &&
174 e != asio::error::connection_reset)
176 WarningLog(<<
"Read header error: " << e.value() <<
"-" << e.message());
constexpr size_t RECEIVE_BUFFER_SIZE
#define WarningLog(args_)
virtual void handleReceive(const asio::error_code &e, size_t bytesTransferred)
asio::ip::tcp::endpoint mLocalTcpEndpoint
asio::error_code openAndBind(asio::ip::tcp::socket &socket)
For TCP and TLS client sockets.
virtual void handleTcpResolve(const asio::error_code &ec, const asio::ip::tcp::resolver::results_type &endpoints)
BeforeClosedHandler mOnBeforeSocketCloseFp
Provides an opportunity for the app to clean up, e.g., QoS-related data or resources just before the ...
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 coun...
virtual void onConnectFailure(const asio::error_code &e)
virtual void onConnectSuccess()
Class override callbacks.
unsigned short mConnectedPort
virtual void handleSend(const asio::error_code &e)
Handle completion of a sendData operation.
virtual void handleReadHeader(const asio::error_code &e)
void asyncConnect(asio::ip::tcp::socket &socket, const asio::ip::tcp::resolver::results_type &endpoints)
std::shared_ptr< DataBuffer > mReceiveBuffer
Receive Buffer and state.
asio::ip::address mConnectedAddress
Connected Info and State.
virtual void setConnectedAddressAndPort()
void handleReadHeader(const asio::error_code &e) override
void transportReceive() override
asio::ip::address getSenderEndpointAddress() override
void connect(const std::string &address, unsigned short port) override
unsigned int getSocketDescriptor() override
asio::ip::tcp::socket mSocket
asio::error_code bind(const asio::ip::address &address, unsigned short port) override
Note: The following API's are thread safe and queue the request to be handled by the ioService thread...
asio::ip::tcp::resolver mResolver
void transportFramedReceive() override
void handleConnect(const asio::error_code &ec, const asio::ip::tcp::endpoint &endpoint) override
void handleTcpResolve(const asio::error_code &ec, const asio::ip::tcp::resolver::results_type &endpoints) override
void transportSend(const StunTuple &destination, std::vector< asio::const_buffer > &buffers) override
void transportClose() override
unsigned short getSenderEndpointPort() override
AsyncTcpSocketBase(asio::io_context &ioService)
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
const char * c_str() const
Returns a null-terminated string representing.