8#define RESIPROCATE_SUBSYSTEM ReTurnSubsystem::RETURN
24 return (
unsigned int)
mSocket.native_handle();
30 asio::error_code errorCode;
31 mSocket.open(address.is_v6() ? asio::ip::udp::v6() : asio::ip::udp::v4(), errorCode);
38 asio::ip::v6_only v6_opt(
true);
44 mSocket.set_option(asio::socket_base::receive_buffer_size(66560));
46 mSocket.bind(asio::ip::udp::endpoint(address, port), errorCode);
59 std::placeholders::_1,
60 std::placeholders::_2));
65 const asio::ip::udp::resolver::results_type& endpoints)
67 if (!ec && !endpoints.empty())
71 asio::ip::udp::resolver::results_type::const_iterator endpoint_iterator = endpoints.begin();
constexpr size_t RECEIVE_BUFFER_SIZE
virtual void handleReceive(const asio::error_code &e, size_t bytesTransferred)
BeforeClosedHandler mOnBeforeSocketCloseFp
Provides an opportunity for the app to clean up, e.g., QoS-related data or resources just before the ...
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.
std::shared_ptr< DataBuffer > mReceiveBuffer
Receive Buffer and state.
static void setExclusiveAddressUse(asio::ip::udp::socket &socket)
For a UDP socket, between open() and bind().
asio::ip::address mConnectedAddress
Connected Info and State.
virtual void handleUdpResolve(const asio::error_code &ec, const asio::ip::udp::resolver::results_type &endpoints)
void handleUdpResolve(const asio::error_code &ec, const asio::ip::udp::resolver::results_type &endpoints) override
asio::ip::udp::socket mSocket
void transportSend(const StunTuple &destination, std::vector< asio::const_buffer > &buffers) override
asio::ip::address getSenderEndpointAddress() override
AsyncUdpSocketBase(asio::io_context &ioService)
void connect(const std::string &address, unsigned short port) override
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::udp::resolver mResolver
unsigned short getSenderEndpointPort() override
void transportReceive() override
void transportClose() override
asio::ip::udp::endpoint mSenderEndpoint
Endpoint info for current sender.
void transportFramedReceive() override
unsigned int getSocketDescriptor() override
const asio::ip::address & getAddress() const
unsigned int getPort() const
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
const char * c_str() const
Returns a null-terminated string representing.