From 343114c3a17da630b3821ec31b9081af82ac13f1 Mon Sep 17 00:00:00 2001 From: klzgrad Date: Sun, 10 Mar 2024 10:30:35 +0800 Subject: [PATCH] net/socket: Use SO_REUSEPORT for server sockets --- src/net/socket/tcp_socket_posix.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/net/socket/tcp_socket_posix.cc b/src/net/socket/tcp_socket_posix.cc index 5c2497770b..b7758c29b4 100644 --- a/src/net/socket/tcp_socket_posix.cc +++ b/src/net/socket/tcp_socket_posix.cc @@ -387,6 +387,17 @@ int TCPSocketPosix::GetPeerAddress(IPEndPoint* address) const { int TCPSocketPosix::SetDefaultOptionsForServer() { DCHECK(socket_); + +#if BUILDFLAG(IS_LINUX) + int reuseport = 1; + int rv = + setsockopt(socket_->socket_fd(), SOL_SOCKET, SO_REUSEPORT, + reinterpret_cast(&reuseport), sizeof(reuseport)); + if (rv < 0) { + return MapSystemError(errno); + } +#endif + return AllowAddressReuse(); }