diff options
| author | Nay <dnpd.dd@gmail.com> | 2013-02-11 02:59:07 +0000 |
|---|---|---|
| committer | Nay <dnpd.dd@gmail.com> | 2013-02-11 02:59:37 +0000 |
| commit | 42e660e2a2f6642141a138760bbfefd78a6fb501 (patch) | |
| tree | 5f4a55abaebc3c5e4f97a4956ef010ff2ba81583 /src/server/game/Server | |
| parent | 2cf8cdaa800b032eba484811f65cf619af07e80f (diff) | |
Core/Sockets: Always try to send MSG_NOSIGNAL in peer().send()
Fixes RASocket::authenticate crash
"MSG_NOSIGNAL:
If you send() to a remote host which is no longer recv()ing, you'll typically get the signal SIGPIPE. Adding this flag prevents that signal from being raised."
Closes #5040
Thanks to @derex for the hint
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/WorldSocket.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp index b2534bfbb0c..de5dd1dd98b 100644 --- a/src/server/game/Server/WorldSocket.cpp +++ b/src/server/game/Server/WorldSocket.cpp @@ -372,9 +372,9 @@ int WorldSocket::handle_output_queue (GuardType& g) const size_t send_len = mblk->length(); #ifdef MSG_NOSIGNAL - ssize_t n = peer().send (mblk->rd_ptr(), send_len, MSG_NOSIGNAL); + ssize_t n = peer().send(mblk->rd_ptr(), send_len, MSG_NOSIGNAL); #else - ssize_t n = peer().send (mblk->rd_ptr(), send_len); + ssize_t n = peer().send(mblk->rd_ptr(), send_len); #endif // MSG_NOSIGNAL if (n == 0) |
