bjh         99/10/24 06:08:31

  Modified:    src/lib/apr/include apr_network_io.h
               src/lib/apr/network_io/beos sockets.c
               src/lib/apr/network_io/os2 sockets.c
               src/lib/apr/network_io/unix sockets.c
               src/lib/apr/network_io/win32 sockets.c
               src/lib/apr/test server.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/prefork prefork.c
               src/modules/mpm/spmt_os2 spmt_os2.c
  Log:
  Add a context parameter to ap_accept() for the connection socket to be
  allocated from. This is needed because the lifetime of a connection is
  ususally much shorter than that of the listen socket. Only tested on
  OS/2.
  
  Revision  Changes    Path
  1.13      +1 -1      apache-2.0/src/lib/apr/include/apr_network_io.h
  
  Index: apr_network_io.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/include/apr_network_io.h,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- apr_network_io.h  1999/10/24 05:59:13     1.12
  +++ apr_network_io.h  1999/10/24 13:08:24     1.13
  @@ -114,7 +114,7 @@
   
   ap_status_t ap_bind(ap_socket_t *);
   ap_status_t ap_listen(ap_socket_t *, ap_int32_t);
  -ap_status_t ap_accept(ap_socket_t **, const ap_socket_t *);
  +ap_status_t ap_accept(ap_socket_t **, const ap_socket_t *, ap_context_t *);
   ap_status_t ap_connect(ap_socket_t *, char *);
   
   ap_status_t ap_get_remote_hostname(char **, ap_socket_t *);
  
  
  
  1.10      +3 -2      apache-2.0/src/lib/apr/network_io/beos/sockets.c
  
  Index: sockets.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/beos/sockets.c,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- sockets.c 1999/10/24 12:27:33     1.9
  +++ sockets.c 1999/10/24 13:08:24     1.10
  @@ -140,11 +140,12 @@
           return APR_SUCCESS; 
   } 
   
  -ap_status_t ap_accept(struct socket_t **new, const struct socket_t *sock) 
  +ap_status_t ap_accept(struct socket_t **new, const struct socket_t *sock, 
struct context_t *connection_context) 
   { 
  -     (*new) = (struct socket_t *)ap_palloc(sock->cntxt,
  +     (*new) = (struct socket_t *)ap_palloc(connection_context,
                                sizeof(ap_socket_t)); 
   
  +    (*new)->cntxt = connection_context;
       (*new)->cntxt = sock->cntxt;
       (*new)->local_addr = (struct sockaddr_in *)ap_palloc((*new)->cntxt, 
                    sizeof(struct sockaddr_in));
  
  
  
  1.6       +3 -3      apache-2.0/src/lib/apr/network_io/os2/sockets.c
  
  Index: sockets.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/os2/sockets.c,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- sockets.c 1999/10/24 05:59:14     1.5
  +++ sockets.c 1999/10/24 13:08:25     1.6
  @@ -147,12 +147,12 @@
           return APR_SUCCESS;
   }
   
  -ap_status_t ap_accept(struct socket_t **new, const struct socket_t *sock)
  +ap_status_t ap_accept(struct socket_t **new, const struct socket_t *sock, 
struct context_t *connection_context)
   {
  -    (*new) = (struct socket_t *)ap_palloc(sock->cntxt, 
  +    (*new) = (struct socket_t *)ap_palloc(connection_context, 
                               sizeof(struct socket_t));
   
  -    (*new)->cntxt = sock->cntxt;
  +    (*new)->cntxt = connection_context;
       (*new)->remote_addr = (struct sockaddr_in *)ap_palloc((*new)->cntxt,
                             sizeof(struct sockaddr_in));
       (*new)->local_addr = sock->local_addr;
  
  
  
  1.20      +7 -6      apache-2.0/src/lib/apr/network_io/unix/sockets.c
  
  Index: sockets.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/unix/sockets.c,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- sockets.c 1999/10/24 05:59:15     1.19
  +++ sockets.c 1999/10/24 13:08:25     1.20
  @@ -187,19 +187,20 @@
   }
   
   /* ***APRDOC********************************************************
  - * ap_status_t ap_accept(ap_socket_t **, ap_socket_t *)
  + * ap_status_t ap_accept(ap_socket_t **, ap_socket_t *, ap_context_t 
*connection_context)
    *    Accept a new connection request
  - * arg 1) The socket we are listening on 
  - * arg 2) A copy of the socket that is connected to the socket that
  + * arg 1) A copy of the socket that is connected to the socket that
    *        made the connection request.  This is the socket which should
    *        be used for all future communication.
  + * arg 2) The socket we are listening on.
  + * arg 3) The context for the new socket.
    */
  -ap_status_t ap_accept(struct socket_t **new, const struct socket_t *sock)
  +ap_status_t ap_accept(struct socket_t **new, const struct socket_t *sock, 
struct context_t *connection_context)
   {
  -    (*new) = (struct socket_t *)ap_palloc(sock->cntxt, 
  +    (*new) = (struct socket_t *)ap_palloc(connection_context, 
                               sizeof(struct socket_t));
   
  -    (*new)->cntxt = sock->cntxt;
  +    (*new)->cntxt = connection_context;
       (*new)->local_addr = (struct sockaddr_in *)ap_palloc((*new)->cntxt, 
                    sizeof(struct sockaddr_in));
       (*new)->remote_addr = (struct sockaddr_in *)ap_palloc((*new)->cntxt, 
  
  
  
  1.11      +3 -3      apache-2.0/src/lib/apr/network_io/win32/sockets.c
  
  Index: sockets.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/win32/sockets.c,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- sockets.c 1999/10/15 14:20:15     1.10
  +++ sockets.c 1999/10/24 13:08:26     1.11
  @@ -186,12 +186,12 @@
           return APR_SUCCESS;
   }
   
  -ap_status_t ap_accept(struct socket_t **new, const struct socket_t *sock)
  +ap_status_t ap_accept(struct socket_t **new, const struct socket_t *sock, 
struct context_t *connection_context)
   {
  -    (*new) = (struct socket_t *)ap_palloc(sock->cntxt, 
  +    (*new) = (struct socket_t *)ap_palloc(connection_context, 
                               sizeof(struct socket_t));
   
  -    (*new)->cntxt = sock->cntxt;
  +    (*new)->cntxt = connection_context;
       (*new)->addr = (struct sockaddr_in *)ap_palloc((*new)->cntxt, 
                    sizeof(struct sockaddr_in));
       (*new)->addr_len = sizeof(struct sockaddr_in);
  
  
  
  1.7       +1 -1      apache-2.0/src/lib/apr/test/server.c
  
  Index: server.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/test/server.c,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- server.c  1999/10/24 05:59:17     1.6
  +++ server.c  1999/10/24 13:08:26     1.7
  @@ -138,7 +138,7 @@
       fprintf(stdout, "OK\n");
   
       fprintf(stdout, "\tServer:  Accepting a connection.......");
  -    if (ap_accept(&sock2, sock) != APR_SUCCESS) {
  +    if (ap_accept(&sock2, sock, context) != APR_SUCCESS) {
           ap_close_socket(sock);
           fprintf(stderr, "Could not accept connection.\n");
           exit(-1);
  
  
  
  1.46      +1 -1      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.45
  retrieving revision 1.46
  diff -u -r1.45 -r1.46
  --- dexter.c  1999/10/20 19:07:49     1.45
  +++ dexter.c  1999/10/24 13:08:27     1.46
  @@ -934,7 +934,7 @@
           }
       got_fd:
           if (!workers_may_exit) {
  -            ap_accept(&csd, sd);
  +            ap_accept(&csd, sd, ptrans);
               SAFE_ACCEPT(accept_mutex_off(0));
               SAFE_ACCEPT(intra_mutex_off(0));
            pthread_mutex_lock(&idle_thread_count_mutex);
  
  
  
  1.5       +2 -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.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- mpmt_beos.c       1999/10/22 11:28:33     1.4
  +++ mpmt_beos.c       1999/10/24 13:08:28     1.5
  @@ -673,10 +673,7 @@
       conn_io = ap_bcreate(p, B_RDWR);
       ap_bpush_iol(conn_io, iol);
   
  -    current_conn = ap_new_connection(p, server_conf, conn_io,
  -                                  (const struct sockaddr_in *) sa_client, 
  -                                  (const struct sockaddr_in *) &sa_server,
  -                                  conn_id);
  +    current_conn = ap_new_connection(p, server_conf, conn_io, csd, conn_id);
   
       ap_process_connection(current_conn);
   }
  @@ -761,7 +758,7 @@
           }
       got_fd:
           if (!workers_may_exit) {
  -            ap_accept(&csd, sd);
  +            ap_accept(&csd, sd, ptrans);
               SAFE_ACCEPT(accept_mutex_off(0));
               SAFE_ACCEPT(intra_mutex_off(0));
           }
  
  
  
  1.39      +2 -5      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.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- mpmt_pthread.c    1999/10/20 12:50:02     1.38
  +++ mpmt_pthread.c    1999/10/24 13:08:28     1.39
  @@ -763,10 +763,7 @@
       conn_io = ap_bcreate(p, B_RDWR);
       ap_bpush_iol(conn_io, iol);
   
  -    current_conn = ap_new_connection(p, server_conf, conn_io,
  -                                  (const struct sockaddr_in *) sa_client, 
  -                                  (const struct sockaddr_in *) &sa_server,
  -                                  conn_id);
  +    current_conn = ap_new_apr_connection(p, server_conf, conn_io, csd, 
conn_id);
   
       ap_process_connection(current_conn);
   }
  @@ -885,7 +882,7 @@
           }
       got_fd:
           if (!workers_may_exit) {
  -            ap_accept(&csd, sd);
  +            ap_accept(&csd, sd, ptrans);
               SAFE_ACCEPT(accept_mutex_off(0));
               SAFE_ACCEPT(intra_mutex_off(0));
           }
  
  
  
  1.49      +1 -1      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.48
  retrieving revision 1.49
  diff -u -r1.48 -r1.49
  --- prefork.c 1999/10/24 07:43:45     1.48
  +++ prefork.c 1999/10/24 13:08:29     1.49
  @@ -2077,7 +2077,7 @@
                    clean_child_exit(0);
                }
                clen = sizeof(sa_client);
  -             stat = ap_accept(&csd, sd);
  +             stat = ap_accept(&csd, sd, ptrans);
                if (stat == APR_SUCCESS || stat != APR_EINTR)
                    break;
            }
  
  
  
  1.18      +1 -1      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.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- spmt_os2.c        1999/10/24 05:59:22     1.17
  +++ spmt_os2.c        1999/10/24 13:08:30     1.18
  @@ -1046,7 +1046,7 @@
                    /* we didn't get a socket, and we were told to die */
                    clean_child_exit(0);
                }
  -             rv = ap_accept(&csd, sd);
  +             rv = ap_accept(&csd, sd, ptrans);
                if (rv != APR_EINTR)
                    break;
            }
  
  
  

Reply via email to