Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ if(NOT BUILD_SHARED_LIBS)
endif()

eprosima_find_package(fastcdr 2 REQUIRED)
eprosima_find_thirdparty(Asio asio VERSION 1.10.8)
eprosima_find_thirdparty(Asio asio VERSION 1.13.0)
eprosima_find_thirdparty(TinyXML2 tinyxml2)

find_package(foonathan_memory REQUIRED)
Expand Down
14 changes: 7 additions & 7 deletions src/cpp/rtps/transport/TCPAcceptor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,28 +24,28 @@ namespace rtps {
using IPLocator = fastdds::rtps::IPLocator;

TCPAcceptor::TCPAcceptor(
asio::io_service& io_service,
asio::io_context& io_context,
TCPTransportInterface* parent,
const Locator& locator)
: acceptor_(io_service, parent->generate_endpoint(IPLocator::getPhysicalPort(locator)))
: acceptor_(io_context, parent->generate_endpoint(IPLocator::getPhysicalPort(locator)))
, locator_(locator)
, io_service_(&io_service)
, io_context_(&io_context)
{
locator_.port = acceptor_.local_endpoint().port();
endpoint_ = asio::ip::tcp::endpoint(parent->generate_protocol(), IPLocator::getPhysicalPort(locator_));
}

TCPAcceptor::TCPAcceptor(
asio::io_service& io_service,
asio::io_context& io_context,
const std::string& iface,
const Locator& locator)
: acceptor_(io_service, asio::ip::tcp::endpoint(asio::ip::address::from_string(iface),
: acceptor_(io_context, asio::ip::tcp::endpoint(asio::ip::make_address(iface),
IPLocator::getPhysicalPort(locator)))
, locator_(locator)
, io_service_(&io_service)
, io_context_(&io_context)
{
locator_.port = acceptor_.local_endpoint().port();
endpoint_ = asio::ip::tcp::endpoint(asio::ip::address::from_string(iface),
endpoint_ = asio::ip::tcp::endpoint(asio::ip::make_address(iface),
IPLocator::getPhysicalPort(locator_));
}

Expand Down
6 changes: 3 additions & 3 deletions src/cpp/rtps/transport/TCPAcceptor.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,17 +35,17 @@ class TCPAcceptor
Locator locator_;
asio::ip::tcp::endpoint endpoint_;
std::vector<Locator> pending_out_locators_;
asio::io_service* io_service_;
asio::io_context* io_context_;

public:

TCPAcceptor(
asio::io_service& io_service,
asio::io_context& io_context,
TCPTransportInterface* parent,
const Locator& locator);

TCPAcceptor(
asio::io_service& io_service,
asio::io_context& io_context,
const std::string& iface,
const Locator& locator);

Expand Down
14 changes: 7 additions & 7 deletions src/cpp/rtps/transport/TCPAcceptorBasic.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,23 +24,23 @@ namespace rtps {
using IPLocator = fastdds::rtps::IPLocator;

TCPAcceptorBasic::TCPAcceptorBasic(
asio::io_service& io_service,
asio::io_context& io_context,
TCPTransportInterface* parent,
const Locator& locator)
: TCPAcceptor(io_service, parent, locator)
, socket_(*io_service_)
: TCPAcceptor(io_context, parent, locator)
, socket_(*io_context_)
{
endpoint_ = asio::ip::tcp::endpoint(parent->generate_protocol(), IPLocator::getPhysicalPort(locator_));
}

TCPAcceptorBasic::TCPAcceptorBasic(
asio::io_service& io_service,
asio::io_context& io_context,
const std::string& iface,
const Locator& locator)
: TCPAcceptor(io_service, iface, locator)
, socket_(*io_service_)
: TCPAcceptor(io_context, iface, locator)
, socket_(*io_context_)
{
endpoint_ = asio::ip::tcp::endpoint(asio::ip::address::from_string(iface),
endpoint_ = asio::ip::tcp::endpoint(asio::ip::make_address(iface),
IPLocator::getPhysicalPort(locator_));
}

Expand Down
8 changes: 4 additions & 4 deletions src/cpp/rtps/transport/TCPAcceptorBasic.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,23 +31,23 @@ class TCPAcceptorBasic : public TCPAcceptor

/**
* Constructor
* @param io_service Reference to the ASIO service.
* @param io_context Reference to the ASIO context.
* @param parent Pointer to the transport that is going to manage the acceptor.
* @param locator Locator with the information about where to accept connections.
*/
TCPAcceptorBasic(
asio::io_service& io_service,
asio::io_context& io_context,
TCPTransportInterface* parent,
const Locator& locator);

/**
* Constructor
* @param io_service Reference to the ASIO service.
* @param io_context Reference to the ASIO context.
* @param iface Network interface to bind the socket
* @param locator Locator with the information about where to accept connections.
*/
TCPAcceptorBasic(
asio::io_service& io_service,
asio::io_context& io_context,
const std::string& iface,
const Locator& locator);

Expand Down
10 changes: 5 additions & 5 deletions src/cpp/rtps/transport/TCPAcceptorSecure.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,18 @@ using Log = fastdds::dds::Log;
using namespace asio;

TCPAcceptorSecure::TCPAcceptorSecure(
io_service& io_service,
io_context& io_context,
TCPTransportInterface* parent,
const Locator_t& locator)
: TCPAcceptor(io_service, parent, locator)
: TCPAcceptor(io_context, parent, locator)
{
}

TCPAcceptorSecure::TCPAcceptorSecure(
io_service& io_service,
io_context& io_context,
const std::string& iface,
const Locator_t& locator)
: TCPAcceptor(io_service, iface, locator)
: TCPAcceptor(io_context, iface, locator)
{
}

Expand Down Expand Up @@ -83,7 +83,7 @@ void TCPAcceptorSecure::accept(
}
});
#else
auto secure_socket = std::make_shared<asio::ssl::stream<asio::ip::tcp::socket>>(*io_service_, ssl_context);
auto secure_socket = std::make_shared<asio::ssl::stream<asio::ip::tcp::socket>>(*io_context_, ssl_context);

acceptor_.async_accept(secure_socket->lowest_layer(),
[locator, parent, secure_socket](const std::error_code& error)
Expand Down
8 changes: 4 additions & 4 deletions src/cpp/rtps/transport/TCPAcceptorSecure.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,23 +37,23 @@ class TCPAcceptorSecure : public TCPAcceptor

/**
* Constructor
* @param io_service Reference to the ASIO service.
* @param io_context Reference to the ASIO context.
* @param parent Pointer to the transport that is going to manage the acceptor.
* @param locator Locator with the information about where to accept connections.
*/
TCPAcceptorSecure(
asio::io_service& io_service,
asio::io_context& io_context,
TCPTransportInterface* parent,
const Locator& locator);

/**
* Constructor
* @param io_service Reference to the ASIO service.
* @param io_context Reference to the ASIO context.
* @param iface Network interface to bind the socket
* @param locator Locator with the information about where to accept connections.
*/
TCPAcceptorSecure(
asio::io_service& io_service,
asio::io_context& io_context,
const std::string& iface,
const Locator& locator);

Expand Down
22 changes: 11 additions & 11 deletions src/cpp/rtps/transport/TCPChannelResourceBasic.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,21 +31,21 @@ using Log = fastdds::dds::Log;

TCPChannelResourceBasic::TCPChannelResourceBasic(
TCPTransportInterface* parent,
asio::io_service& service,
asio::io_context& context,
const Locator& locator,
uint32_t maxMsgSize)
: TCPChannelResource(parent, locator, maxMsgSize)
, service_(service)
, context_(context)
{
}

TCPChannelResourceBasic::TCPChannelResourceBasic(
TCPTransportInterface* parent,
asio::io_service& service,
asio::io_context& context,
std::shared_ptr<asio::ip::tcp::socket> socket,
uint32_t maxMsgSize)
: TCPChannelResource(parent, maxMsgSize)
, service_(service)
, context_(context)
, socket_(socket)
{
}
Expand All @@ -64,14 +64,14 @@ void TCPChannelResourceBasic::connect(
{
try
{
ip::tcp::resolver resolver(service_);
ip::tcp::resolver resolver(context_);

auto endpoints = resolver.resolve({
IPLocator::hasWan(locator_) ? IPLocator::toWanstring(locator_) : IPLocator::ip_to_string(
locator_),
std::to_string(IPLocator::getPhysicalPort(locator_))});
auto endpoints = resolver.resolve(
IPLocator::hasWan(locator_) ? IPLocator::toWanstring(locator_) : IPLocator::ip_to_string(
locator_),
std::to_string(IPLocator::getPhysicalPort(locator_)));

socket_ = std::make_shared<asio::ip::tcp::socket>(service_);
socket_ = std::make_shared<asio::ip::tcp::socket>(context_);
std::weak_ptr<TCPChannelResource> channel_weak_ptr = myself;

asio::async_connect(
Expand Down Expand Up @@ -109,7 +109,7 @@ void TCPChannelResourceBasic::disconnect()
std::error_code ec;
socket->shutdown(asio::ip::tcp::socket::shutdown_both, ec);

service_.post([&, socket]()
asio::post(context_, [&, socket]()
{
try
{
Expand Down
6 changes: 3 additions & 3 deletions src/cpp/rtps/transport/TCPChannelResourceBasic.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ namespace rtps {

class TCPChannelResourceBasic : public TCPChannelResource
{
asio::io_service& service_;
asio::io_context& context_;

std::mutex send_mutex_;
std::shared_ptr<asio::ip::tcp::socket> socket_;
Expand All @@ -35,14 +35,14 @@ class TCPChannelResourceBasic : public TCPChannelResource
// Constructor called when trying to connect to a remote server
TCPChannelResourceBasic(
TCPTransportInterface* parent,
asio::io_service& service,
asio::io_context& context,
const Locator& locator,
uint32_t maxMsgSize);

// Constructor called when local server accepted connection
TCPChannelResourceBasic(
TCPTransportInterface* parent,
asio::io_service& service,
asio::io_context& context,
std::shared_ptr<asio::ip::tcp::socket> socket,
uint32_t maxMsgSize);

Expand Down
34 changes: 17 additions & 17 deletions src/cpp/rtps/transport/TCPChannelResourceSecure.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,29 +31,29 @@ using namespace asio;

TCPChannelResourceSecure::TCPChannelResourceSecure(
TCPTransportInterface* parent,
asio::io_service& service,
asio::io_context& context,
asio::ssl::context& ssl_context,
const Locator_t& locator,
uint32_t maxMsgSize)
: TCPChannelResource(parent, locator, maxMsgSize)
, service_(service)
, context_(context)
, ssl_context_(ssl_context)
, strand_read_(service)
, strand_write_(service)
, strand_read_(make_strand(context))
, strand_write_(make_strand(context))
{
}

TCPChannelResourceSecure::TCPChannelResourceSecure(
TCPTransportInterface* parent,
asio::io_service& service,
asio::io_context& context,
asio::ssl::context& ssl_context,
std::shared_ptr<asio::ssl::stream<asio::ip::tcp::socket>> socket,
uint32_t maxMsgSize)
: TCPChannelResource(parent, maxMsgSize)
, service_(service)
, context_(context)
, ssl_context_(ssl_context)
, strand_read_(service)
, strand_write_(service)
, strand_read_(make_strand(context))
, strand_write_(make_strand(context))
, secure_socket_(socket)
{
set_tls_verify_mode(parent->configuration());
Expand All @@ -76,15 +76,15 @@ void TCPChannelResourceSecure::connect(
{
try
{
ip::tcp::resolver resolver(service_);
ip::tcp::resolver resolver(context_);

auto endpoints = resolver.resolve({
IPLocator::hasWan(locator_) ? IPLocator::toWanstring(locator_) : IPLocator::ip_to_string(
locator_),
std::to_string(IPLocator::getPhysicalPort(locator_))});
auto endpoints = resolver.resolve(
IPLocator::hasWan(locator_) ? IPLocator::toWanstring(locator_) : IPLocator::ip_to_string(
locator_),
std::to_string(IPLocator::getPhysicalPort(locator_)));

TCPTransportInterface* parent = parent_;
secure_socket_ = std::make_shared<asio::ssl::stream<asio::ip::tcp::socket>>(service_, ssl_context_);
secure_socket_ = std::make_shared<asio::ssl::stream<asio::ip::tcp::socket>>(context_, ssl_context_);
set_tls_verify_mode(parent->configuration());
set_tls_sni(parent->configuration());
std::weak_ptr<TCPChannelResource> channel_weak_ptr = myself;
Expand Down Expand Up @@ -142,7 +142,7 @@ void TCPChannelResourceSecure::disconnect()
{
auto socket = secure_socket_;

service_.post([&, socket]()
post(context_, [&, socket]()
{
std::error_code ec;
socket->lowest_layer().close(ec);
Expand All @@ -166,7 +166,7 @@ uint32_t TCPChannelResourceSecure::read(
auto bytes_future = read_bytes_promise.get_future();
auto socket = secure_socket_;

strand_read_.post([&, socket]()
asio::post(strand_read_, [&, socket]()
{
if (socket->lowest_layer().is_open())
{
Expand Down Expand Up @@ -227,7 +227,7 @@ size_t TCPChannelResourceSecure::send(
auto bytes_future = write_bytes_promise.get_future();
auto socket = secure_socket_;

strand_write_.post([&, socket]()
asio::post(strand_write_, [&, socket]()
{
if (socket->lowest_layer().is_open())
{
Expand Down
10 changes: 5 additions & 5 deletions src/cpp/rtps/transport/TCPChannelResourceSecure.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,15 +36,15 @@ class TCPChannelResourceSecure : public TCPChannelResource
// Constructor called when trying to connect to a remote server (secure version)
TCPChannelResourceSecure(
TCPTransportInterface* parent,
asio::io_service& service,
asio::io_context& context,
asio::ssl::context& ssl_context,
const Locator& locator,
uint32_t maxMsgSize);

// Constructor called when local server accepted connection (secure version)
TCPChannelResourceSecure(
TCPTransportInterface* parent,
asio::io_service& service,
asio::io_context& context,
asio::ssl::context& ssl_context,
std::shared_ptr<asio::ssl::stream<asio::ip::tcp::socket>> socket,
uint32_t maxMsgSize);
Expand Down Expand Up @@ -104,10 +104,10 @@ class TCPChannelResourceSecure : public TCPChannelResource
TCPChannelResourceSecure& operator =(
const TCPChannelResource&) = delete;

asio::io_service& service_;
asio::io_context& context_;
asio::ssl::context& ssl_context_;
asio::io_service::strand strand_read_;
asio::io_service::strand strand_write_;
asio::strand<asio::io_context::executor_type> strand_read_;
asio::strand<asio::io_context::executor_type> strand_write_;
std::shared_ptr<asio::ssl::stream<asio::ip::tcp::socket>> secure_socket_;
};

Expand Down
Loading