diff options
| author | jackpoz <giacomopoz@gmail.com> | 2019-01-18 20:31:47 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2021-11-21 20:16:26 +0100 |
| commit | f83601de2f0d4e42afcdb4951e170b7b9450643e (patch) | |
| tree | 326f9cfa9b10487a743f26bf60c6936c9d17c5a9 /src | |
| parent | 05210c2a34146c9dcf50d30f6db6ad5fc0db7229 (diff) | |
Core/Networking: Set SO_REUSEADDR on *nix platforms
(cherry picked from commit 46f2595f511011d577be0ecee3d9f44c980ddc92)
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/shared/Networking/AsyncAcceptor.h | 9 | ||||
| -rw-r--r-- | src/server/worldserver/TCSoap/TCSoap.cpp | 4 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/server/shared/Networking/AsyncAcceptor.h b/src/server/shared/Networking/AsyncAcceptor.h index 89a17c2ec3c..6540db66474 100644 --- a/src/server/shared/Networking/AsyncAcceptor.h +++ b/src/server/shared/Networking/AsyncAcceptor.h @@ -84,6 +84,15 @@ public: return false; } +#if TRINITY_PLATFORM != TRINITY_PLATFORM_WINDOWS + _acceptor.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true), errorCode); + if (errorCode) + { + TC_LOG_INFO("network", "Failed to set reuse_address option on acceptor %s", errorCode.message().c_str()); + return false; + } +#endif + _acceptor.bind(_endpoint, errorCode); if (errorCode) { diff --git a/src/server/worldserver/TCSoap/TCSoap.cpp b/src/server/worldserver/TCSoap/TCSoap.cpp index b5c0804bd44..996e9d5e82e 100644 --- a/src/server/worldserver/TCSoap/TCSoap.cpp +++ b/src/server/worldserver/TCSoap/TCSoap.cpp @@ -29,6 +29,10 @@ void TCSoapThread(const std::string& host, uint16 port) soap_set_imode(&soap, SOAP_C_UTFSTRING); soap_set_omode(&soap, SOAP_C_UTFSTRING); +#if TRINITY_PLATFORM != TRINITY_PLATFORM_WINDOWS + soap.bind_flags = SO_REUSEADDR; +#endif + // check every 3 seconds if world ended soap.accept_timeout = 3; soap.recv_timeout = 5; |
