diff options
author | Asen Kirov <akirov@luxoft.com> | 2015-09-14 18:47:08 +0300 |
---|---|---|
committer | Asen Kirov <akirov@luxoft.com> | 2015-09-14 18:47:08 +0300 |
commit | 487bca81733bd5dd5586a9e62e80d31379d54763 (patch) | |
tree | ad9564cbee5f7dfe75ffa4635e7e931e346901a6 /src | |
parent | 12d569a8ae8f8822c3bba13c82f3667780d94250 (diff) | |
download | sdl_core-487bca81733bd5dd5586a9e62e80d31379d54763.tar.gz |
Fix Logger's TelnetAppender socket reopen on fast restart
When SDL is stopped, TelnetAppender's server socket listening on port
6676 will remain in TIME_WAIT state (if there was a client connected
to it) fr some time, depending on the operating system settings.
With the old code, if we restart SDL soon after stopping it,
TelnetApplender will fail to bind to its port, because 'it is in use'.
The fix is to set SO_REUSEADDR option to server socket when opening
it - this will allow the port to be reused when it is in TIME_WAIT
state.
Diffstat (limited to 'src')
-rw-r--r-- | src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/serversocket.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/serversocket.cpp b/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/serversocket.cpp index 32e4f1a336..095fffc542 100644 --- a/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/serversocket.cpp +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/serversocket.cpp @@ -39,6 +39,12 @@ ServerSocket::ServerSocket(int port) : pool(), mutex(pool), socket(0), timeout(0 throw SocketException(status); } + // AKirov: Added SO_REUSEADDR option to fix APPLINK-15273 + status = apr_socket_opt_set(socket, APR_SO_REUSEADDR, 1); + if (status != APR_SUCCESS) { + throw SocketException(status); + } + // Create server socket address (including port number) apr_sockaddr_t *server_addr; status = |