wesnothd: enable keepalive on socket before accept rather than after
This commit is contained in:
parent
2e6b69c8e3
commit
e70a3bd2e0
1 changed files with 11 additions and 11 deletions
|
@ -114,17 +114,6 @@ void server_base::serve(boost::asio::yield_context yield, boost::asio::ip::tcp::
|
|||
|
||||
socket_ptr socket = std::make_shared<socket_ptr::element_type>(io_service_);
|
||||
|
||||
boost::system::error_code error;
|
||||
acceptor.async_accept(socket->lowest_layer(), yield[error]);
|
||||
if(error) {
|
||||
ERR_SERVER << "Accept failed: " << error.message() << "\n";
|
||||
throw server_shutdown("Accept failed", error);
|
||||
}
|
||||
|
||||
if(accepting_connections()) {
|
||||
boost::asio::spawn(io_service_, [this, &acceptor, endpoint](boost::asio::yield_context yield) { serve(yield, acceptor, endpoint); });
|
||||
}
|
||||
|
||||
#ifndef _WIN32
|
||||
if(keep_alive_) {
|
||||
int timeout = 30;
|
||||
|
@ -141,6 +130,17 @@ void server_base::serve(boost::asio::yield_context yield, boost::asio::ip::tcp::
|
|||
}
|
||||
#endif
|
||||
|
||||
boost::system::error_code error;
|
||||
acceptor.async_accept(socket->lowest_layer(), yield[error]);
|
||||
if(error) {
|
||||
ERR_SERVER << "Accept failed: " << error.message() << "\n";
|
||||
throw server_shutdown("Accept failed", error);
|
||||
}
|
||||
|
||||
if(accepting_connections()) {
|
||||
boost::asio::spawn(io_service_, [this, &acceptor, endpoint](boost::asio::yield_context yield) { serve(yield, acceptor, endpoint); });
|
||||
}
|
||||
|
||||
DBG_SERVER << client_address(socket) << "\tnew connection tentatively accepted\n";
|
||||
|
||||
uint32_t protocol_version;
|
||||
|
|
Loading…
Add table
Reference in a new issue