httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From r..@apache.org
Subject cvs commit: httpd-2.0/server/mpm/worker worker.c
Date Sat, 10 Nov 2001 18:26:30 GMT
rbb         01/11/10 10:26:30

  Modified:    include  http_connection.h
               server   connection.c
               server/mpm/beos beos.c
               server/mpm/mpmt_os2 mpmt_os2_child.c
               server/mpm/netware mpm_netware.c
               server/mpm/perchild perchild.c
               server/mpm/prefork prefork.c
               server/mpm/spmt_os2 spmt_os2.c
               server/mpm/threaded threaded.c
               server/mpm/winnt mpm_winnt.c
               server/mpm/worker worker.c
  Log:
  Remove ap_lingering_close from all of the MPMs. This is now done as
  a cleanup registered with the connection_pool.  I have also turned
  ap_lingering_close into a static function, because it is only used
  in connection.c.  This is the next step to consolidating all of the
  socket function calls.  ap_lingering_close will only be added if the
  core is dealing with a standard socket.
  
  Revision  Changes    Path
  1.38      +0 -16     httpd-2.0/include/http_connection.h
  
  Index: http_connection.h
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/include/http_connection.h,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- http_connection.h	2001/07/27 21:01:16	1.37
  +++ http_connection.h	2001/11/10 18:26:29	1.38
  @@ -88,22 +88,6 @@
   
   AP_CORE_DECLARE(void) ap_flush_conn(conn_rec *c);
   
  -/**
  - * This function is responsible for the following cases:
  - * <pre>
  - * we now proceed to read from the client until we get EOF, or until
  - * MAX_SECS_TO_LINGER has passed.  the reasons for doing this are
  - * documented in a draft:
  - *
  - * http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-connection-00.txt
  - *
  - * in a nutshell -- if we don't make this effort we risk causing
  - * TCP RST packets to be sent which can tear down a connection before
  - * all the response data has been sent to the client.
  - * </pre>
  - * @param c The connection we are closing
  - */
  -void ap_lingering_close(conn_rec *);
   #endif
   
     /* Hooks */
  
  
  
  1.85      +7 -3      httpd-2.0/server/connection.c
  
  Index: connection.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/connection.c,v
  retrieving revision 1.84
  retrieving revision 1.85
  diff -u -r1.84 -r1.85
  --- connection.c	2001/07/31 00:34:27	1.84
  +++ connection.c	2001/11/10 18:26:29	1.85
  @@ -149,13 +149,14 @@
    * all the response data has been sent to the client.
    */
   #define SECONDS_TO_LINGER  2
  -void ap_lingering_close(conn_rec *c)
  +static apr_status_t ap_lingering_close(void *dummy)
   {
       char dummybuf[512];
       apr_size_t nbytes = sizeof(dummybuf);
       apr_status_t rc;
       apr_int32_t timeout;
       apr_int32_t total_linger_time = 0;
  +    conn_rec *c = dummy;
   
       ap_update_child_status(AP_CHILD_THREAD_FROM_ID(c->id), SERVER_CLOSING, NULL);
   
  @@ -175,7 +176,7 @@
   
       if (c->aborted) {
           apr_socket_close(c->client_socket);
  -        return;
  +        return APR_SUCCESS;
       }
   
       /* Shut down the socket for write, which will send a FIN
  @@ -185,7 +186,7 @@
       if (apr_shutdown(c->client_socket, APR_SHUTDOWN_WRITE) != APR_SUCCESS || 
           c->aborted) {
           apr_socket_close(c->client_socket);
  -        return;
  +        return APR_SUCCESS;
       }
   
       /* Read all data from the peer until we reach "end-of-file" (FIN
  @@ -208,6 +209,7 @@
       }
   
       apr_socket_close(c->client_socket);
  +    return APR_SUCCESS;
   }
   
   AP_CORE_DECLARE(void) ap_process_connection(conn_rec *c)
  @@ -261,6 +263,8 @@
       conn->client_socket = inout;
   
       conn->id = id;
  +
  +    apr_pool_cleanup_register(p, conn, ap_lingering_close, apr_pool_cleanup_null);
   
       return conn;
   }
  
  
  
  1.66      +0 -1      httpd-2.0/server/mpm/beos/beos.c
  
  Index: beos.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/mpm/beos/beos.c,v
  retrieving revision 1.65
  retrieving revision 1.66
  diff -u -r1.65 -r1.66
  --- beos.c	2001/11/08 22:49:12	1.65
  +++ beos.c	2001/11/10 18:26:29	1.66
  @@ -316,7 +316,6 @@
   
       if (current_conn) {
           ap_process_connection(current_conn);
  -        ap_lingering_close(current_conn);
       }
   }
   
  
  
  
  1.3       +0 -1      httpd-2.0/server/mpm/mpmt_os2/mpmt_os2_child.c
  
  Index: mpmt_os2_child.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/mpm/mpmt_os2/mpmt_os2_child.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- mpmt_os2_child.c	2001/08/20 16:10:57	1.2
  +++ mpmt_os2_child.c	2001/11/10 18:26:29	1.3
  @@ -411,7 +411,6 @@
   
           if (current_conn) {
               ap_process_connection(current_conn);
  -            ap_lingering_close(current_conn);
           }
   
           apr_pool_destroy(pconn);
  
  
  
  1.7       +0 -1      httpd-2.0/server/mpm/netware/mpm_netware.c
  
  Index: mpm_netware.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/mpm/netware/mpm_netware.c,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- mpm_netware.c	2001/11/07 05:29:58	1.6
  +++ mpm_netware.c	2001/11/10 18:26:29	1.7
  @@ -509,7 +509,6 @@
           current_conn = ap_new_connection(ptrans, ap_server_conf, csd, my_worker_num);
           if (current_conn) {
               ap_process_connection(current_conn);
  -            ap_lingering_close(current_conn);
           }
           
       }
  
  
  
  1.82      +0 -1      httpd-2.0/server/mpm/perchild/perchild.c
  
  Index: perchild.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/mpm/perchild/perchild.c,v
  retrieving revision 1.81
  retrieving revision 1.82
  diff -u -r1.81 -r1.82
  --- perchild.c	2001/11/07 05:29:58	1.81
  +++ perchild.c	2001/11/10 18:26:29	1.82
  @@ -505,7 +505,6 @@
       current_conn = ap_new_connection(p, ap_server_conf, sock, conn_id);
       if (current_conn) {
           ap_process_connection(current_conn);
  -        ap_lingering_close(current_conn);
       }
   }
   
  
  
  
  1.209     +0 -1      httpd-2.0/server/mpm/prefork/prefork.c
  
  Index: prefork.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/mpm/prefork/prefork.c,v
  retrieving revision 1.208
  retrieving revision 1.209
  diff -u -r1.208 -r1.209
  --- prefork.c	2001/11/10 08:00:41	1.208
  +++ prefork.c	2001/11/10 18:26:29	1.209
  @@ -792,7 +792,6 @@
                                            my_child_num);
           if (current_conn) {
               ap_process_connection(current_conn);
  -            ap_lingering_close(current_conn);
           }
           
           /* Check the pod after processing a connection so that we'll go away
  
  
  
  1.105     +0 -1      httpd-2.0/server/mpm/spmt_os2/spmt_os2.c
  
  Index: spmt_os2.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/mpm/spmt_os2/spmt_os2.c,v
  retrieving revision 1.104
  retrieving revision 1.105
  diff -u -r1.104 -r1.105
  --- spmt_os2.c	2001/11/07 05:29:58	1.104
  +++ spmt_os2.c	2001/11/10 18:26:29	1.105
  @@ -685,7 +685,6 @@
   
           if (current_conn) {
               ap_process_connection(current_conn);
  -            ap_lingering_close(current_conn);
           }
       }
   
  
  
  
  1.68      +0 -1      httpd-2.0/server/mpm/threaded/threaded.c
  
  Index: threaded.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/mpm/threaded/threaded.c,v
  retrieving revision 1.67
  retrieving revision 1.68
  diff -u -r1.67 -r1.68
  --- threaded.c	2001/11/07 05:29:58	1.67
  +++ threaded.c	2001/11/10 18:26:29	1.68
  @@ -478,7 +478,6 @@
       current_conn = ap_new_connection(p, ap_server_conf, sock, conn_id);
       if (current_conn) {
           ap_process_connection(current_conn);
  -        ap_lingering_close(current_conn);
       }
   }
   
  
  
  
  1.188     +0 -1      httpd-2.0/server/mpm/winnt/mpm_winnt.c
  
  Index: mpm_winnt.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/mpm/winnt/mpm_winnt.c,v
  retrieving revision 1.187
  retrieving revision 1.188
  diff -u -r1.187 -r1.188
  --- mpm_winnt.c	2001/11/07 05:29:58	1.187
  +++ mpm_winnt.c	2001/11/10 18:26:29	1.188
  @@ -901,7 +901,6 @@
               apr_getsocketopt(context->sock, APR_SO_DISCONNECTED, &disconnected);
               if (!disconnected) {
                   context->accept_socket = INVALID_SOCKET;
  -                ap_lingering_close(c);
               }
           }
           else {
  
  
  
  1.33      +0 -1      httpd-2.0/server/mpm/worker/worker.c
  
  Index: worker.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/mpm/worker/worker.c,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- worker.c	2001/11/07 05:29:58	1.32
  +++ worker.c	2001/11/10 18:26:30	1.33
  @@ -502,7 +502,6 @@
       current_conn = ap_new_connection(p, ap_server_conf, sock, conn_id);
       if (current_conn) {
           ap_process_connection(current_conn);
  -        ap_lingering_close(current_conn);
       }
   }
   
  
  
  

Mime
View raw message