Mike Kaplinskiy : server: Forward the correct error to asyncs.
Alexandre Julliard
julliard at winehq.org
Tue Jul 20 11:20:32 CDT 2010
Module: wine
Branch: master
Commit: 8d9fbe59b303e8da9062f9de12a20f5dafc07a71
URL: http://source.winehq.org/git/wine.git/?a=commit;h=8d9fbe59b303e8da9062f9de12a20f5dafc07a71
Author: Mike Kaplinskiy <mike.kaplinskiy at gmail.com>
Date: Sat Jul 17 22:06:58 2010 -0400
server: Forward the correct error to asyncs.
---
server/sock.c | 10 ++++++----
1 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/server/sock.c b/server/sock.c
index 568f818..e5681b0 100644
--- a/server/sock.c
+++ b/server/sock.c
@@ -295,7 +295,7 @@ static inline int sock_error( struct fd *fd )
return optval;
}
-static void sock_dispatch_asyncs( struct sock *sock, int event )
+static void sock_dispatch_asyncs( struct sock *sock, int event, int error )
{
if ( sock->flags & WSA_FLAG_OVERLAPPED )
{
@@ -311,10 +311,12 @@ static void sock_dispatch_asyncs( struct sock *sock, int event )
}
if ( event & (POLLERR|POLLHUP) )
{
+ int status = sock_get_ntstatus( error );
+
if ( !(sock->state & FD_READ) )
- async_wake_up( sock->read_q, STATUS_SUCCESS );
+ async_wake_up( sock->read_q, status );
if ( !(sock->state & FD_WRITE) )
- async_wake_up( sock->write_q, STATUS_SUCCESS );
+ async_wake_up( sock->write_q, status );
}
}
}
@@ -449,7 +451,7 @@ static void sock_poll_event( struct fd *fd, int event )
event |= POLLHUP;
}
- sock_dispatch_asyncs( sock, event );
+ sock_dispatch_asyncs( sock, event, error );
sock_dispatch_events( sock, prevstate, event, error );
/* if anyone is stupid enough to wait on the socket object itself,
More information about the wine-cvs
mailing list