This commit is contained in:
eidheim 2020-06-28 08:13:59 +02:00
commit 7b06f736b2

View file

@ -401,7 +401,16 @@ namespace SimpleWeb {
if(!acceptor)
acceptor = std::unique_ptr<asio::ip::tcp::acceptor>(new asio::ip::tcp::acceptor(*io_service));
acceptor->open(endpoint.protocol());
try {
acceptor->open(endpoint.protocol());
} catch (const system_error& error) {
if(error.code() == asio::error::address_family_not_supported && config.address.empty()) {
endpoint = asio::ip::tcp::endpoint(asio::ip::tcp::v4(), config.port);
acceptor->open(endpoint.protocol());
} else {
throw;
}
}
acceptor->set_option(asio::socket_base::reuse_address(config.reuse_address));
if(config.fast_open) {
#if defined(__linux__) && defined(TCP_FASTOPEN)