diff --git a/CHANGELOG.md b/CHANGELOG.md index ccf14ae5..6f198f1f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ Version 158: * Tidy up end_of_stream javadoc * Tidy up websocket docs +* Examples set reuse_address(true) -------------------------------------------------------------------------------- diff --git a/doc/qbk/09_releases.qbk b/doc/qbk/09_releases.qbk index b687144f..5fbf0813 100644 --- a/doc/qbk/09_releases.qbk +++ b/doc/qbk/09_releases.qbk @@ -73,6 +73,7 @@ to update to the latest Boost release. * [link beast.ref.boost__beast__bind_handler `bind_handler`] works with boost placeholders +* Examples set `reuse_address(true)` [*Fixes] diff --git a/example/advanced/server-flex/advanced_server_flex.cpp b/example/advanced/server-flex/advanced_server_flex.cpp index 2e204dee..211b6ca0 100644 --- a/example/advanced/server-flex/advanced_server_flex.cpp +++ b/example/advanced/server-flex/advanced_server_flex.cpp @@ -1171,6 +1171,14 @@ public: return; } + // Allow address reuse + acceptor_.set_option(boost::asio::socket_base::reuse_address(true)); + if(ec) + { + fail(ec, "set_option"); + return; + } + // Bind to the server address acceptor_.bind(endpoint, ec); if(ec) diff --git a/example/advanced/server/advanced_server.cpp b/example/advanced/server/advanced_server.cpp index 72ba5951..8caa72c5 100644 --- a/example/advanced/server/advanced_server.cpp +++ b/example/advanced/server/advanced_server.cpp @@ -722,6 +722,14 @@ public: return; } + // Allow address reuse + acceptor_.set_option(boost::asio::socket_base::reuse_address(true)); + if(ec) + { + fail(ec, "set_option"); + return; + } + // Bind to the server address acceptor_.bind(endpoint, ec); if(ec) diff --git a/example/http/server/async-ssl/http_server_async_ssl.cpp b/example/http/server/async-ssl/http_server_async_ssl.cpp index 810857f3..4df2cce2 100644 --- a/example/http/server/async-ssl/http_server_async_ssl.cpp +++ b/example/http/server/async-ssl/http_server_async_ssl.cpp @@ -419,6 +419,14 @@ public: return; } + // Allow address reuse + acceptor_.set_option(boost::asio::socket_base::reuse_address(true)); + if(ec) + { + fail(ec, "set_option"); + return; + } + // Bind to the server address acceptor_.bind(endpoint, ec); if(ec) diff --git a/example/http/server/async/http_server_async.cpp b/example/http/server/async/http_server_async.cpp index 33f5f411..d596f046 100644 --- a/example/http/server/async/http_server_async.cpp +++ b/example/http/server/async/http_server_async.cpp @@ -380,6 +380,14 @@ public: return; } + // Allow address reuse + acceptor_.set_option(boost::asio::socket_base::reuse_address(true)); + if(ec) + { + fail(ec, "set_option"); + return; + } + // Bind to the server address acceptor_.bind(endpoint, ec); if(ec) diff --git a/example/http/server/coro-ssl/http_server_coro_ssl.cpp b/example/http/server/coro-ssl/http_server_coro_ssl.cpp index 1f56cd8a..e748d3d1 100644 --- a/example/http/server/coro-ssl/http_server_coro_ssl.cpp +++ b/example/http/server/coro-ssl/http_server_coro_ssl.cpp @@ -325,6 +325,11 @@ do_listen( if(ec) return fail(ec, "open"); + // Allow address reuse + acceptor.set_option(boost::asio::socket_base::reuse_address(true)); + if(ec) + return fail(ec, "set_option"); + // Bind to the server address acceptor.bind(endpoint, ec); if(ec) diff --git a/example/http/server/coro/http_server_coro.cpp b/example/http/server/coro/http_server_coro.cpp index acb0edb5..988a0221 100644 --- a/example/http/server/coro/http_server_coro.cpp +++ b/example/http/server/coro/http_server_coro.cpp @@ -309,6 +309,11 @@ do_listen( if(ec) return fail(ec, "open"); + // Allow address reuse + acceptor.set_option(boost::asio::socket_base::reuse_address(true)); + if(ec) + return fail(ec, "set_option"); + // Bind to the server address acceptor.bind(endpoint, ec); if(ec) diff --git a/example/http/server/flex/http_server_flex.cpp b/example/http/server/flex/http_server_flex.cpp index 00c0cf37..f13f7a17 100644 --- a/example/http/server/flex/http_server_flex.cpp +++ b/example/http/server/flex/http_server_flex.cpp @@ -591,6 +591,14 @@ public: return; } + // Allow address reuse + acceptor_.set_option(boost::asio::socket_base::reuse_address(true)); + if(ec) + { + fail(ec, "set_option"); + return; + } + // Bind to the server address acceptor_.bind(endpoint, ec); if(ec) diff --git a/example/http/server/stackless-ssl/http_server_stackless_ssl.cpp b/example/http/server/stackless-ssl/http_server_stackless_ssl.cpp index 0355777f..0243ad53 100644 --- a/example/http/server/stackless-ssl/http_server_stackless_ssl.cpp +++ b/example/http/server/stackless-ssl/http_server_stackless_ssl.cpp @@ -405,6 +405,14 @@ public: return; } + // Allow address reuse + acceptor_.set_option(boost::asio::socket_base::reuse_address(true)); + if(ec) + { + fail(ec, "set_option"); + return; + } + // Bind to the server address acceptor_.bind(endpoint, ec); if(ec) diff --git a/example/http/server/stackless/http_server_stackless.cpp b/example/http/server/stackless/http_server_stackless.cpp index 5851ec9a..c0bf0f7c 100644 --- a/example/http/server/stackless/http_server_stackless.cpp +++ b/example/http/server/stackless/http_server_stackless.cpp @@ -372,6 +372,14 @@ public: return; } + // Allow address reuse + acceptor_.set_option(boost::asio::socket_base::reuse_address(true)); + if(ec) + { + fail(ec, "set_option"); + return; + } + // Bind to the server address acceptor_.bind(endpoint, ec); if(ec) diff --git a/example/websocket/server/async-ssl/websocket_server_async_ssl.cpp b/example/websocket/server/async-ssl/websocket_server_async_ssl.cpp index a08aceb5..e0e557ed 100644 --- a/example/websocket/server/async-ssl/websocket_server_async_ssl.cpp +++ b/example/websocket/server/async-ssl/websocket_server_async_ssl.cpp @@ -191,6 +191,14 @@ public: return; } + // Allow address reuse + acceptor_.set_option(boost::asio::socket_base::reuse_address(true)); + if(ec) + { + fail(ec, "set_option"); + return; + } + // Bind to the server address acceptor_.bind(endpoint, ec); if(ec) diff --git a/example/websocket/server/async/websocket_server_async.cpp b/example/websocket/server/async/websocket_server_async.cpp index afaafc52..fb3d3248 100644 --- a/example/websocket/server/async/websocket_server_async.cpp +++ b/example/websocket/server/async/websocket_server_async.cpp @@ -165,6 +165,14 @@ public: return; } + // Allow address reuse + acceptor_.set_option(boost::asio::socket_base::reuse_address(true)); + if(ec) + { + fail(ec, "set_option"); + return; + } + // Bind to the server address acceptor_.bind(endpoint, ec); if(ec) diff --git a/example/websocket/server/coro-ssl/websocket_server_coro_ssl.cpp b/example/websocket/server/coro-ssl/websocket_server_coro_ssl.cpp index b480557d..5cff1e46 100644 --- a/example/websocket/server/coro-ssl/websocket_server_coro_ssl.cpp +++ b/example/websocket/server/coro-ssl/websocket_server_coro_ssl.cpp @@ -106,6 +106,11 @@ do_listen( if(ec) return fail(ec, "open"); + // Allow address reuse + acceptor.set_option(boost::asio::socket_base::reuse_address(true)); + if(ec) + return fail(ec, "set_option"); + // Bind to the server address acceptor.bind(endpoint, ec); if(ec) diff --git a/example/websocket/server/coro/websocket_server_coro.cpp b/example/websocket/server/coro/websocket_server_coro.cpp index 85d2e9c5..bbc1dede 100644 --- a/example/websocket/server/coro/websocket_server_coro.cpp +++ b/example/websocket/server/coro/websocket_server_coro.cpp @@ -92,6 +92,11 @@ do_listen( if(ec) return fail(ec, "open"); + // Allow address reuse + acceptor.set_option(boost::asio::socket_base::reuse_address(true)); + if(ec) + return fail(ec, "set_option"); + // Bind to the server address acceptor.bind(endpoint, ec); if(ec) diff --git a/example/websocket/server/fast/websocket_server_fast.cpp b/example/websocket/server/fast/websocket_server_fast.cpp index 004aac33..8e52c882 100644 --- a/example/websocket/server/fast/websocket_server_fast.cpp +++ b/example/websocket/server/fast/websocket_server_fast.cpp @@ -268,6 +268,14 @@ public: return; } + // Allow address reuse + acceptor_.set_option(boost::asio::socket_base::reuse_address(true)); + if(ec) + { + fail(ec, "set_option"); + return; + } + // Bind to the server address acceptor_.bind(endpoint, ec); if(ec) @@ -376,6 +384,10 @@ do_coro_listen( if(ec) return fail(ec, "open"); + acceptor.set_option(boost::asio::socket_base::reuse_address(true)); + if(ec) + return fail(ec, "set_option"); + acceptor.bind(endpoint, ec); if(ec) return fail(ec, "bind"); diff --git a/example/websocket/server/stackless-ssl/websocket_server_stackless_ssl.cpp b/example/websocket/server/stackless-ssl/websocket_server_stackless_ssl.cpp index 7162ab78..d7c6eb02 100644 --- a/example/websocket/server/stackless-ssl/websocket_server_stackless_ssl.cpp +++ b/example/websocket/server/stackless-ssl/websocket_server_stackless_ssl.cpp @@ -179,6 +179,14 @@ public: return; } + // Allow address reuse + acceptor_.set_option(boost::asio::socket_base::reuse_address(true)); + if(ec) + { + fail(ec, "set_option"); + return; + } + // Bind to the server address acceptor_.bind(endpoint, ec); if(ec) diff --git a/example/websocket/server/stackless/websocket_server_stackless.cpp b/example/websocket/server/stackless/websocket_server_stackless.cpp index cc4eb252..4fa045d5 100644 --- a/example/websocket/server/stackless/websocket_server_stackless.cpp +++ b/example/websocket/server/stackless/websocket_server_stackless.cpp @@ -156,6 +156,14 @@ public: return; } + // Allow address reuse + acceptor_.set_option(boost::asio::socket_base::reuse_address(true)); + if(ec) + { + fail(ec, "set_option"); + return; + } + // Bind to the server address acceptor_.bind(endpoint, ec); if(ec)