Bruno Jesus : server: Store the time of the socket connection.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Nov 12 09:33:53 CST 2014


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

Author: Bruno Jesus <00cpxxx at gmail.com>
Date:   Wed Nov 12 00:42:14 2014 -0200

server: Store the time of the socket connection.

Based on a patch by Erich Hoover.

---

 server/sock.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/server/sock.c b/server/sock.c
index e124ad6..7c0212e 100644
--- a/server/sock.c
+++ b/server/sock.c
@@ -107,6 +107,7 @@ struct sock
     unsigned int        message;     /* message to send */
     obj_handle_t        wparam;      /* message wparam (socket handle) */
     int                 errors[FD_MAX_EVENTS]; /* event errors */
+    timeout_t           connect_time;/* time the socket was connected */
     struct sock        *deferred;    /* socket that waits for a deferred accept */
     struct async_queue *read_q;      /* queue for asynchronous reads */
     struct async_queue *write_q;     /* queue for asynchronous writes */
@@ -401,6 +402,7 @@ static void sock_poll_event( struct fd *fd, int event )
             /* we got connected */
             sock->state |= FD_WINE_CONNECTED|FD_READ|FD_WRITE;
             sock->state &= ~FD_CONNECT;
+            sock->connect_time = current_time;
         }
     }
     else if (sock->state & FD_WINE_LISTENING)
@@ -618,6 +620,7 @@ static void init_sock(struct sock *sock)
     sock->window  = 0;
     sock->message = 0;
     sock->wparam  = 0;
+    sock->connect_time = 0;
     sock->deferred = NULL;
     sock->read_q  = NULL;
     sock->write_q = NULL;
@@ -725,6 +728,7 @@ static struct sock *accept_socket( obj_handle_t handle )
         acceptsock->family  = sock->family;
         acceptsock->window  = sock->window;
         acceptsock->message = sock->message;
+        acceptsock->connect_time = current_time;
         if (sock->event) acceptsock->event = (struct event *)grab_object( sock->event );
         acceptsock->flags = sock->flags;
         if (!(acceptsock->fd = create_anonymous_fd( &sock_fd_ops, acceptfd, &acceptsock->obj,
@@ -778,6 +782,7 @@ static int accept_into_socket( struct sock *sock, struct sock *acceptsock )
     acceptsock->family  = sock->family;
     acceptsock->wparam  = 0;
     acceptsock->deferred = NULL;
+    acceptsock->connect_time = current_time;
     release_object( acceptsock->fd );
     acceptsock->fd = newfd;
 




More information about the wine-cvs mailing list