From b375370d0f11163da8cb752c4a3f992a89ef80ee Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Tue, 16 Apr 2019 18:38:07 +0200 Subject: [HICN-178] Sync send of control messages. Change-Id: I9a07c6c806ceba10f80a5f67337dce2eee76120d Signed-off-by: Mauro Sardara --- .../src/hicn/transport/core/raw_socket_connector.cc | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'libtransport/src/hicn/transport/core/raw_socket_connector.cc') diff --git a/libtransport/src/hicn/transport/core/raw_socket_connector.cc b/libtransport/src/hicn/transport/core/raw_socket_connector.cc index 12cc4e0fa..0e1743671 100644 --- a/libtransport/src/hicn/transport/core/raw_socket_connector.cc +++ b/libtransport/src/hicn/transport/core/raw_socket_connector.cc @@ -115,11 +115,17 @@ void RawSocketConnector::connect(const std::string &interface_name, void RawSocketConnector::send(const uint8_t *packet, std::size_t len, const PacketSentCallback &packet_sent) { - // asio::async_write(socket_, asio::buffer(packet, len), - // [packet_sent] (std::error_code ec, - // std::size_t /*length*/) { - // packet_sent(); - // }); + if (packet_sent != 0) { + socket_.async_send( + asio::buffer(packet, len), + [packet_sent](std::error_code ec, std::size_t /*length*/) { + packet_sent(); + }); + } else { + if (state_ == ConnectorState::CONNECTED) { + socket_.send(asio::buffer(packet, len)); + } + } } void RawSocketConnector::send(const Packet::MemBufPtr &packet) { @@ -191,8 +197,6 @@ void RawSocketConnector::doConnect() { socket_.bind(raw_endpoint(&link_layer_address_, sizeof(link_layer_address_))); } -void RawSocketConnector::enableBurst() { return; } - } // end namespace core } // end namespace transport -- cgit 1.2.3-korg