Mike Kaplinskiy : server: Propagate error from recv.

Alexandre Julliard julliard at winehq.org
Tue Jul 20 11:20:32 CDT 2010


Module: wine
Branch: master
Commit: 394a142237795d0823dd73677026be0b0ee502b3
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=394a142237795d0823dd73677026be0b0ee502b3

Author: Mike Kaplinskiy <mike.kaplinskiy at 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;




More information about the wine-cvs mailing list