You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rb...@locus.apache.org on 2000/10/18 21:12:18 UTC

cvs commit: apache-2.0/src/modules/mpm/spmt_os2 spmt_os2.c

rbb         00/10/18 12:12:17

  Modified:    src      CHANGES
               src/include http_connection.h httpd.h
               src/main http_connection.c
               src/modules/mpm/beos beos.c
               src/modules/mpm/dexter dexter.c
               src/modules/mpm/mpmt_beos mpmt_beos.c
               src/modules/mpm/mpmt_pthread mpmt_pthread.c
               src/modules/mpm/perchild perchild.c
               src/modules/mpm/prefork prefork.c
               src/modules/mpm/spmt_os2 spmt_os2.c
  Log:
  This begins to remove BUFF from the server.  The idea is to go very slowly
  with this.  To begin with, we store both the socket and the BUFF in the
  conn_rec.  Functions are free to use which ever they want, in the end all
  of the data goes to the same place.  This modifies all of the MPMs except
  Windows.  All of the Unix MPMs are working, but the others need to be
  tested.
  
  Revision  Changes    Path
  1.286     +6 -1      apache-2.0/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/CHANGES,v
  retrieving revision 1.285
  retrieving revision 1.286
  diff -u -r1.285 -r1.286
  --- CHANGES	2000/10/18 18:09:58	1.285
  +++ CHANGES	2000/10/18 19:12:04	1.286
  @@ -1,7 +1,12 @@
   Changes with Apache 2.0a8
  +  *) Begin to remove BUFF from the core.  Currently, we keep a pointer
  +     to both the BUFF and the socket in the conn_rec.  Functions that
  +     want to use the BUFF can, functions that want to use the socket,
  +     can.  They point to the same place.
  +     [Ryan Bloom]
  +
     *) apr_psprintf doesn't understand %lld as a format.  Make it %ld.
        [Tomas "�gren" <st...@ing.umu.se>]
  -
   
     *) APR pipes on Unix and Win32 are now cleaned up automatically when the 
        associated pool goes away.  (APR pipes on OS/2 were already had this
  
  
  
  1.25      +4 -4      apache-2.0/src/include/http_connection.h
  
  Index: http_connection.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/include/http_connection.h,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- http_connection.h	2000/10/16 06:04:34	1.24
  +++ http_connection.h	2000/10/18 19:12:06	1.25
  @@ -71,12 +71,13 @@
    * Create a new connection. 
    * @param p Pool to allocate data structures out of
    * @param server The server to create the connection for
  - * @param inout The BUFF to use for all communication with the client
  + * @param inout The socket to use for all communication with the client
    * @param remaddr The remote address
    * @param addr The server's local address
    * @param id ID of this connection; unique at any point in time.
    */
  -conn_rec *ap_new_connection(apr_pool_t *p, server_rec *server, BUFF *inout,
  +conn_rec *ap_new_connection(apr_pool_t *p, server_rec *server, 
  +                            apr_socket_t *inout,
   			    const struct sockaddr_in *remaddr,
   			    const struct sockaddr_in *saddr, long id);
   
  @@ -85,11 +86,10 @@
    * wrapper around ap_new_connection
    * @param p Pool to allocate data structures out of.
    * @param server The server to create the connection for
  - * @param inout The BUFF to use for all communication with the client
    * @param conn_socket The socket we are creating the connection on.
    * @param id ID of this connection; unique at any point in time.
    */
  -conn_rec *ap_new_apr_connection(apr_pool_t *p, server_rec *server, BUFF *inout,
  +conn_rec *ap_new_apr_connection(apr_pool_t *p, server_rec *server, 
                                   apr_socket_t *conn_socket, long id);
   
   /**
  
  
  
  1.106     +1 -0      apache-2.0/src/include/httpd.h
  
  Index: httpd.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/include/httpd.h,v
  retrieving revision 1.105
  retrieving revision 1.106
  diff -u -r1.105 -r1.106
  --- httpd.h	2000/10/17 01:04:33	1.105
  +++ httpd.h	2000/10/18 19:12:06	1.106
  @@ -852,6 +852,7 @@
   
       /** Connection to the client */
       BUFF *client;
  +    apr_socket_t *client_socket;
   
       /* Who is the client? */
   
  
  
  
  1.53      +8 -4      apache-2.0/src/main/http_connection.c
  
  Index: http_connection.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/main/http_connection.c,v
  retrieving revision 1.52
  retrieving revision 1.53
  diff -u -r1.52 -r1.53
  --- http_connection.c	2000/10/16 06:04:51	1.52
  +++ http_connection.c	2000/10/18 19:12:08	1.53
  @@ -258,11 +258,14 @@
      structure, but for now...
   */
   
  -conn_rec *ap_new_connection(apr_pool_t *p, server_rec *server, BUFF *inout,
  +conn_rec *ap_new_connection(apr_pool_t *p, server_rec *server, 
  +                            apr_socket_t *inout,
   			    const struct sockaddr_in *remaddr,
   			    const struct sockaddr_in *saddr, long id)
   {
       conn_rec *conn = (conn_rec *) apr_pcalloc(p, sizeof(conn_rec));
  +    BUFF *conn_io = ap_bcreate(p, B_RDWR);
  +    ap_bpush_socket(conn_io, inout);
   
       /* Got a connection structure, so initialize what fields we can
        * (the rest are zeroed out by pcalloc).
  @@ -276,7 +279,8 @@
       conn->local_ip = apr_pstrdup(conn->pool,
   				inet_ntoa(conn->local_addr.sin_addr));
       conn->base_server = server;
  -    conn->client = inout;
  +    conn->client = conn_io;
  +    conn->client_socket = inout;
   
       conn->remote_addr = *remaddr;
       conn->remote_ip = apr_pstrdup(conn->pool,
  @@ -289,12 +293,12 @@
   
   
   
  -conn_rec *ap_new_apr_connection(apr_pool_t *p, server_rec *server, BUFF *inout,
  +conn_rec *ap_new_apr_connection(apr_pool_t *p, server_rec *server, 
                                   apr_socket_t *conn_socket, long id)
   {
       struct sockaddr_in *sa_local, *sa_remote;
   
       apr_get_local_name(&sa_local, conn_socket);
       apr_get_remote_name(&sa_remote, conn_socket);
  -    return ap_new_connection(p, server, inout, sa_remote, sa_local, id);
  +    return ap_new_connection(p, server, conn_socket, sa_remote, sa_local, id);
   }
  
  
  
  1.24      +1 -5      apache-2.0/src/modules/mpm/beos/beos.c
  
  Index: beos.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/modules/mpm/beos/beos.c,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- beos.c	2000/10/16 06:04:57	1.23
  +++ beos.c	2000/10/18 19:12:09	1.24
  @@ -305,7 +305,6 @@
   
   static void process_socket(apr_pool_t *p, apr_socket_t *sock, int my_child_num)
   {
  -    BUFF *conn_io;
       conn_rec *current_conn;
       long conn_id = my_child_num;
       int csd;
  @@ -321,10 +320,7 @@
   	    return;
       }
       
  -    conn_io = ap_bcreate(p, B_RDWR);
  -    ap_bpush_socket(conn_io, sock);
  -
  -    current_conn = ap_new_apr_connection(p, ap_server_conf, conn_io, sock, 
  +    current_conn = ap_new_apr_connection(p, ap_server_conf, sock, 
                                            conn_id);
   
       ap_process_connection(current_conn);
  
  
  
  1.128     +1 -5      apache-2.0/src/modules/mpm/dexter/dexter.c
  
  Index: dexter.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/modules/mpm/dexter/dexter.c,v
  retrieving revision 1.127
  retrieving revision 1.128
  diff -u -r1.127 -r1.128
  --- dexter.c	2000/10/16 06:04:57	1.127
  +++ dexter.c	2000/10/18 19:12:10	1.128
  @@ -395,7 +395,6 @@
   
   static void process_socket(apr_pool_t *p, apr_socket_t *sock, long conn_id)
   {
  -    BUFF *conn_io;
       conn_rec *current_conn;
       int csd;
       apr_status_t rv;
  @@ -416,10 +415,7 @@
   
       ap_sock_disable_nagle(sock);
   
  -    conn_io = ap_bcreate(p, B_RDWR);
  -    ap_bpush_socket(conn_io, sock);
  -
  -    current_conn = ap_new_apr_connection(p, ap_server_conf, conn_io, sock,
  +    current_conn = ap_new_apr_connection(p, ap_server_conf, sock,
                                            conn_id);
   
       ap_process_connection(current_conn);
  
  
  
  1.52      +1 -5      apache-2.0/src/modules/mpm/mpmt_beos/mpmt_beos.c
  
  Index: mpmt_beos.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/modules/mpm/mpmt_beos/mpmt_beos.c,v
  retrieving revision 1.51
  retrieving revision 1.52
  diff -u -r1.51 -r1.52
  --- mpmt_beos.c	2000/10/16 06:04:58	1.51
  +++ mpmt_beos.c	2000/10/18 19:12:11	1.52
  @@ -295,15 +295,11 @@
   
   static void process_socket(apr_pool_t *p, apr_socket_t *sock, int my_child_num, int my_thread_num)
   {
  -    BUFF *conn_io;
       conn_rec *current_conn;
       long conn_id = my_child_num * HARD_THREAD_LIMIT + my_thread_num;
       int csd;
   
  -    conn_io = ap_bcreate(p, B_RDWR);
  -    ap_bpush_socket(conn_io, sock);
  -
  -    current_conn = ap_new_apr_connection(p, ap_server_conf, conn_io, sock, 
  +    current_conn = ap_new_apr_connection(p, ap_server_conf, sock, 
                                            conn_id);
   
       ap_process_connection(current_conn);
  
  
  
  1.123     +1 -4      apache-2.0/src/modules/mpm/mpmt_pthread/mpmt_pthread.c
  
  Index: mpmt_pthread.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/modules/mpm/mpmt_pthread/mpmt_pthread.c,v
  retrieving revision 1.122
  retrieving revision 1.123
  diff -u -r1.122 -r1.123
  --- mpmt_pthread.c	2000/10/16 06:04:59	1.122
  +++ mpmt_pthread.c	2000/10/18 19:12:13	1.123
  @@ -392,7 +392,6 @@
   
   static void process_socket(apr_pool_t *p, apr_socket_t *sock, int my_child_num, int my_thread_num)
   {
  -    BUFF *conn_io;
       conn_rec *current_conn;
       long conn_id = my_child_num * HARD_THREAD_LIMIT + my_thread_num;
       int csd;
  @@ -413,10 +412,8 @@
   
       (void) ap_update_child_status(my_child_num, my_thread_num,  
   				  SERVER_BUSY_READ, (request_rec *) NULL);
  -    conn_io = ap_bcreate(p, B_RDWR);
  -    ap_bpush_socket(conn_io, sock);
   
  -    current_conn = ap_new_apr_connection(p, ap_server_conf, conn_io, sock,
  +    current_conn = ap_new_apr_connection(p, ap_server_conf, sock,
                                            conn_id);
   
       ap_process_connection(current_conn);
  
  
  
  1.23      +1 -4      apache-2.0/src/modules/mpm/perchild/perchild.c
  
  Index: perchild.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/modules/mpm/perchild/perchild.c,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- perchild.c	2000/10/16 06:05:00	1.22
  +++ perchild.c	2000/10/18 19:12:14	1.23
  @@ -430,7 +430,6 @@
   
   static void process_socket(apr_pool_t *p, apr_socket_t *sock, long conn_id)
   {
  -    BUFF *conn_io;
       conn_rec *current_conn;
       int csd;
       apr_status_t rv;
  @@ -453,10 +452,8 @@
       if (thread_socket_table[thread_num] < 0) {
           ap_sock_disable_nagle(sock);
       }
  -    conn_io = ap_bcreate(p, B_RDWR);
  -    ap_bpush_socket(conn_io, sock);
   
  -    current_conn = ap_new_apr_connection(p, ap_server_conf, conn_io, sock,
  +    current_conn = ap_new_apr_connection(p, ap_server_conf, sock,
                                            conn_id);
   
       ap_process_connection(current_conn);
  
  
  
  1.132     +1 -6      apache-2.0/src/modules/mpm/prefork/prefork.c
  
  Index: prefork.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/modules/mpm/prefork/prefork.c,v
  retrieving revision 1.131
  retrieving revision 1.132
  diff -u -r1.131 -r1.132
  --- prefork.c	2000/10/16 06:05:01	1.131
  +++ prefork.c	2000/10/18 19:12:15	1.132
  @@ -787,7 +787,6 @@
   #endif
   
       while (!ap_graceful_stop_signalled()) {
  -	BUFF *conn_io;
   
   	/* Prepare to receive a SIGUSR1 due to graceful restart so that
   	 * we can exit cleanly.
  @@ -1023,11 +1022,7 @@
   	(void) ap_update_child_status(my_child_num, SERVER_BUSY_READ,
   				   (request_rec *) NULL);
   
  -	conn_io = ap_bcreate(ptrans, B_RDWR);
  -
  -	ap_bpush_socket(conn_io, csd);
  -
  -	current_conn = ap_new_apr_connection(ptrans, ap_server_conf, conn_io, csd,
  +	current_conn = ap_new_apr_connection(ptrans, ap_server_conf, csd,
   					 my_child_num);
   
   	ap_process_connection(current_conn);
  
  
  
  1.64      +1 -5      apache-2.0/src/modules/mpm/spmt_os2/spmt_os2.c
  
  Index: spmt_os2.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/modules/mpm/spmt_os2/spmt_os2.c,v
  retrieving revision 1.63
  retrieving revision 1.64
  diff -u -r1.63 -r1.64
  --- spmt_os2.c	2000/10/16 06:05:01	1.63
  +++ spmt_os2.c	2000/10/18 19:12:16	1.64
  @@ -784,7 +784,6 @@
       signal(SIGTERM, just_die);
   
       while (!ap_stop_signalled()) {
  -        BUFF *conn_io;
           int srv;
           apr_socket_t *sd;
   
  @@ -969,10 +968,7 @@
   	(void) ap_update_child_status(THREAD_GLOBAL(child_num), SERVER_BUSY_READ,
   				   (request_rec *) NULL);
   
  -	conn_io = ap_bcreate(ptrans, B_RDWR);
  -        ap_bpush_socket(conn_io, csd);
  -
  -	current_conn = ap_new_apr_connection(ptrans, ap_server_conf, conn_io, csd,
  +	current_conn = ap_new_apr_connection(ptrans, ap_server_conf, csd,
                                                THREAD_GLOBAL(child_num));
   
   	ap_process_connection(current_conn);