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://svn.code.sf.net/p/rathena/svn/trunk@15415 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
gepard1984 2012-01-09 22:47:11 +00:00
parent 056e7c4ed6
commit 5b66b21b67

View File

@ -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