Zebediah Figura : server: Add a helper to post socket events.

Alexandre Julliard julliard at winehq.org
Wed May 12 15:44:28 CDT 2021


Module: wine
Branch: master
Commit: ccbc17c9f69a79c59303ac6e2d54261de0239653
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=ccbc17c9f69a79c59303ac6e2d54261de0239653

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Tue May 11 21:19:47 2021 -0500

server: Add a helper to post socket events.

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 server/sock.c | 42 ++++++++++++++++--------------------------
 1 file changed, 16 insertions(+), 26 deletions(-)

diff --git a/server/sock.c b/server/sock.c
index 6891b5cbc57..791e4912c89 100644
--- a/server/sock.c
+++ b/server/sock.c
@@ -612,50 +612,40 @@ static int sock_dispatch_asyncs( struct sock *sock, int event, int error )
     return event;
 }
 
+static void post_socket_event( struct sock *sock, unsigned int event_bit, unsigned int error )
+{
+    unsigned int event = (1 << event_bit);
+
+    sock->pmask |= event;
+    sock->hmask |= event;
+    sock->errors[event_bit] = error;
+}
+
 static void sock_dispatch_events( struct sock *sock, int prevstate, int event, int error )
 {
     if (prevstate & FD_CONNECT)
     {
-        sock->pmask |= FD_CONNECT;
-        sock->hmask |= FD_CONNECT;
-        sock->errors[FD_CONNECT_BIT] = sock_get_error( error );
+        post_socket_event( sock, FD_CONNECT_BIT, sock_get_error( error ) );
         goto end;
     }
     if (prevstate & FD_WINE_LISTENING)
     {
-        sock->pmask |= FD_ACCEPT;
-        sock->hmask |= FD_ACCEPT;
-        sock->errors[FD_ACCEPT_BIT] = sock_get_error( error );
+        post_socket_event( sock, FD_ACCEPT_BIT, sock_get_error( error ) );
         goto end;
     }
 
     if (event & POLLIN)
-    {
-        sock->pmask |= FD_READ;
-        sock->hmask |= FD_READ;
-        sock->errors[FD_READ_BIT] = 0;
-    }
+        post_socket_event( sock, FD_READ_BIT, 0 );
 
     if (event & POLLOUT)
-    {
-        sock->pmask |= FD_WRITE;
-        sock->hmask |= FD_WRITE;
-        sock->errors[FD_WRITE_BIT] = 0;
-    }
+        post_socket_event( sock, FD_WRITE_BIT, 0 );
 
     if (event & POLLPRI)
-    {
-        sock->pmask |= FD_OOB;
-        sock->hmask |= FD_OOB;
-        sock->errors[FD_OOB_BIT] = 0;
-    }
+        post_socket_event( sock, FD_OOB_BIT, 0 );
 
     if (event & (POLLERR|POLLHUP))
-    {
-        sock->pmask |= FD_CLOSE;
-        sock->hmask |= FD_CLOSE;
-        sock->errors[FD_CLOSE_BIT] = sock_get_error( error );
-    }
+        post_socket_event( sock, FD_CLOSE_BIT, sock_get_error( error ) );
+
 end:
     sock_wake_up( sock );
 }




More information about the wine-cvs mailing list