From fe397e6953326fd2cca65634b328437594a932ef Mon Sep 17 00:00:00 2001 From: Mathias Gug Date: Wed, 11 May 2016 16:23:50 -0700 Subject: [PATCH] Support SO_REUSEPORT option so that multiple osrm-routed processes can bind to the same port. --- include/server/server.hpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/server/server.hpp b/include/server/server.hpp index 881307420..058c68d88 100644 --- a/include/server/server.hpp +++ b/include/server/server.hpp @@ -49,7 +49,12 @@ class Server boost::asio::ip::tcp::endpoint endpoint = *resolver.resolve(query); acceptor.open(endpoint.protocol()); +#ifdef SO_REUSEPORT + int one = 1; + setsockopt(acceptor.native_handle(), SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT, &one, sizeof(one)); +#else acceptor.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true)); +#endif acceptor.bind(endpoint); acceptor.listen();