Module: wine Branch: master Commit: 394a142237795d0823dd73677026be0b0ee502b3 URL: http://source.winehq.org/git/wine.git/?a=commit;h=394a142237795d0823dd736770...
Author: Mike Kaplinskiy mike.kaplinskiy@gmail.com Date: Sat Jul 17 22:06:53 2010 -0400
server: Propagate error from recv.
---
server/sock.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/server/sock.c b/server/sock.c index 5d48c2d..87628da 100644 --- a/server/sock.c +++ b/server/sock.c @@ -419,16 +419,17 @@ static void sock_poll_event( struct fd *fd, int event ) call and the invocation of this routine */ if ( errno != EAGAIN ) { + error = errno; + event |= POLLERR; if ( debug_level ) fprintf( stderr, "recv error on socket %p: %d\n", sock, errno ); - event |= POLLERR; } } }
if ( (hangup_seen || event & (POLLHUP|POLLERR)) && (sock->state & (FD_READ|FD_WRITE)) ) { - error = sock_error( fd ); + error = error ? error : sock_error( fd ); if ( (event & POLLERR) || ( sock_shutdown_type == SOCK_SHUTDOWN_EOF && (event & POLLHUP) )) sock->state &= ~FD_WRITE; sock->state &= ~FD_READ;