From 77c0db2f2cf420d70ce9c00e46d72d3506f5c9df Mon Sep 17 00:00:00 2001 From: gepard1984 Date: Mon, 9 Jan 2012 22:47:11 +0000 Subject: Sending to a broken socket will no longer cause SIGPIPE signal to be sent back on most *nix systems (those supporting MSG_NOSIGNAL flag) (bugreport:5224) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15415 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/common/socket.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/common/socket.c b/src/common/socket.c index 4f7afd8fd..e7f1034ae 100644 --- a/src/common/socket.c +++ b/src/common/socket.c @@ -194,6 +194,10 @@ int sSocket(int af, int type, int protocol) #endif ///////////////////////////////////////////////////////////////////// +#ifndef MSG_NOSIGNAL + #define MSG_NOSIGNAL 0 +#endif + fd_set readfds; int fd_max; time_t last_tick; @@ -340,7 +344,7 @@ int send_from_fifo(int fd) if( session[fd]->wdata_size == 0 ) return 0; // nothing to send - len = sSend(fd, (const char *) session[fd]->wdata, (int)session[fd]->wdata_size, 0); + len = sSend(fd, (const char *) session[fd]->wdata, (int)session[fd]->wdata_size, MSG_NOSIGNAL); if( len == SOCKET_ERROR ) {//An exception has occured -- cgit v1.2.3-70-g09d2