diff --git a/CMakeLists.txt b/CMakeLists.txt index b65dc2cd..12102502 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,6 +41,7 @@ endif() if(CUKE_STRICT) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DASIO_NO_DEPRECATED") endif() set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules) diff --git a/include/cucumber-cpp/internal/connectors/wire/WireServer.hpp b/include/cucumber-cpp/internal/connectors/wire/WireServer.hpp index 19c48382..672545a8 100644 --- a/include/cucumber-cpp/internal/connectors/wire/WireServer.hpp +++ b/include/cucumber-cpp/internal/connectors/wire/WireServer.hpp @@ -29,7 +29,7 @@ class CUCUMBER_CPP_EXPORT SocketServer { protected: const ProtocolHandler* protocolHandler; - asio::io_service ios; + asio::io_context ios; template void doListen( diff --git a/src/connectors/wire/WireServer.cpp b/src/connectors/wire/WireServer.cpp index 64042660..d18410b0 100644 --- a/src/connectors/wire/WireServer.cpp +++ b/src/connectors/wire/WireServer.cpp @@ -23,8 +23,9 @@ void SocketServer::doListen( template void SocketServer::doAcceptOnce(asio::basic_socket_acceptor& acceptor) { - typename Protocol::iostream stream; - acceptor.accept(*stream.rdbuf()); + typename Protocol::socket socket(ios); + acceptor.accept(socket); + typename Protocol::iostream stream(std::move(socket)); processStream(stream); } diff --git a/src/main.cpp b/src/main.cpp index 2c71cdcd..15ed3c7b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -31,7 +31,7 @@ void acceptWireProtocol( { TCPSocketServer* const tcpServer = new TCPSocketServer(&protocolHandler); server.reset(tcpServer); - tcpServer->listen(asio::ip::tcp::endpoint(asio::ip::address::from_string(host), port)); + tcpServer->listen(asio::ip::tcp::endpoint(asio::ip::make_address(host), port)); if (verbose) std::clog << "Listening on " << tcpServer->listenEndpoint() << std::endl; } diff --git a/tests/integration/WireServerTest.cpp b/tests/integration/WireServerTest.cpp index 8df02a03..5db8ea40 100644 --- a/tests/integration/WireServerTest.cpp +++ b/tests/integration/WireServerTest.cpp @@ -141,7 +141,7 @@ class TCPSocketServerLocalhostTest : public SocketServerTest { SocketServer* createListeningServer() override { server.reset(new TCPSocketServer(&protocolHandler)); - server->listen(asio::ip::tcp::endpoint(asio::ip::address::from_string("127.0.0.1"), 0)); + server->listen(asio::ip::tcp::endpoint(asio::ip::make_address("127.0.0.1"), 0)); return server.get(); }