httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From wr...@apache.org
Subject cvs commit: httpd-2.0/modules/proxy proxy_ajp.c
Date Wed, 11 Aug 2004 20:44:40 GMT
wrowe       2004/08/11 13:44:40

  Modified:    modules/proxy proxy_ajp.c
  Log:
  Close only when needed.
  
  Submitted by: jfclere
  
  Revision  Changes    Path
  1.6       +13 -11    httpd-2.0/modules/proxy/proxy_ajp.c
  
  Index: proxy_ajp.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/modules/proxy/proxy_ajp.c,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- proxy_ajp.c	11 Aug 2004 20:44:08 -0000	1.5
  +++ proxy_ajp.c	11 Aug 2004 20:44:40 -0000	1.6
  @@ -13,7 +13,7 @@
    * limitations under the License.
    */
   
  -/* HTTP routines for Apache proxy */
  +/* AJP routines for Apache proxy */
   
   #include "mod_proxy.h"
   #include "ajp.h"
  @@ -34,7 +34,7 @@
       void           *data;  /* To store ajp data */
   } proxy_ajp_conn_t;
   
  -static apr_status_t ap_proxy_http_cleanup(request_rec *r,
  +static apr_status_t ap_proxy_ajp_cleanup(request_rec *r,
                                             proxy_ajp_conn_t *p_conn,
                                             proxy_conn_rec *backend);
   
  @@ -278,7 +278,7 @@
            * For now we do nothing, ie we get DNS round robin.
            * XXX FIXME
            */
  -        failed = ap_proxy_connect_to_backend(&p_conn->sock, "HTTP",
  +        failed = ap_proxy_connect_to_backend(&p_conn->sock, "AJP",
                                                p_conn->addr, p_conn->name,
                                                conf, r->server, c->pool);
   
  @@ -513,19 +513,18 @@
   }
   
   static
  -apr_status_t ap_proxy_http_cleanup(request_rec *r, proxy_ajp_conn_t *p_conn,
  +apr_status_t ap_proxy_ajp_cleanup(request_rec *r, proxy_ajp_conn_t *p_conn,
                                      proxy_conn_rec *backend) {
  -    /* If there are no KeepAlives, or if the connection has been signalled
  +    /* If the connection has been signalled
        * to close, close the socket and clean up
        */
   
       /* if the connection is < HTTP/1.1, or Connection: close,
        * we close the socket, otherwise we leave it open for KeepAlive support
        */
  -    if (p_conn->close || (r->proto_num < HTTP_VERSION(1,1))) {
  -        ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
  -                      "ap_proxy_http_cleanup closing %d %d %d %s",
  -                       p_conn->sock, p_conn->close, r->proto_num, apr_table_get(r->headers_out,
"Connection"));
  +    if (p_conn->close) {
  +        ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
  +                      "ap_proxy_ajp_cleanup closing");
           if (p_conn->sock) {
               apr_socket_close(p_conn->sock);
               p_conn->sock = NULL;
  @@ -641,6 +640,8 @@
       status = ap_proxy_ajp_request(p, r, p_conn, origin, conf, uri, url,
                                      server_portstr);
       if ( status != OK ) {
  +        p_conn->close++;
  +        ap_proxy_ajp_cleanup(r, p_conn, backend);
           return status;
       }
   
  @@ -649,12 +650,13 @@
                                               server_portstr);
       if ( status != OK ) {
           /* clean up even if there is an error */
  -        ap_proxy_http_cleanup(r, p_conn, backend);
  +        p_conn->close++;
  +        ap_proxy_ajp_cleanup(r, p_conn, backend);
           return status;
       }
   
       /* Step Five: Clean Up */
  -    status = ap_proxy_http_cleanup(r, p_conn, backend);
  +    status = ap_proxy_ajp_cleanup(r, p_conn, backend);
       if ( status != OK ) {
           return status;
       }
  
  
  

Mime
View raw message