httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chuck Murcko <ch...@hyperreal.com>
Subject cvs commit: apache/src http_main.c http_protocol.c
Date Tue, 17 Sep 1996 14:53:56 GMT
chuck       96/09/17 07:53:56

  Modified:    src       http_main.c http_protocol.c
  Log:
  Submitted by:	Chuck Murcko
  Fix for Netscape 2.x keepalive problems. This also removes the HTTP header
  flush which was causing TCP slow start/delayed ACK/delayed segment on keepalives,
  eating up ~400 ms (1) additional per keepalive connect, plus latency. This
  is in essence the previously submitted fix, using BrowserMatch instead of a
  dedicated function.
  
  Reference:
      Heidemann et al. -
        Performance Interactions Between P-HTTP and TCP Implementations
        <http://www.isi.edu/lsam/publications/phttp_tcp_interactions/>
  
  Revision  Changes    Path
  1.68      +9 -7      apache/src/http_main.c
  
  Index: http_main.c
  ===================================================================
  RCS file: /export/home/cvs/apache/src/http_main.c,v
  retrieving revision 1.67
  retrieving revision 1.68
  diff -C3 -r1.67 -r1.68
  *** http_main.c	1996/09/13 00:24:50	1.67
  --- http_main.c	1996/09/17 14:53:52	1.68
  ***************
  *** 50,56 ****
     *
     */
    
  ! /* $Id: http_main.c,v 1.67 1996/09/13 00:24:50 jim Exp $ */
    
    /*
     * httpd.c: simple http daemon for answering WWW file requests
  --- 50,56 ----
     *
     */
    
  ! /* $Id: http_main.c,v 1.68 1996/09/17 14:53:52 chuck Exp $ */
    
    /*
     * httpd.c: simple http daemon for answering WWW file requests
  ***************
  *** 1522,1528 ****
    #if defined(STATUS)
            if (r) increment_counts(child_num,r,1);
    #endif
  ! 	while (r && current_conn->keepalive) {
    	    bflush(conn_io);
    	    destroy_pool(r->pool);
    	    (void)update_child_status (child_num, SERVER_BUSY_KEEPALIVE,
  --- 1522,1529 ----
    #if defined(STATUS)
            if (r) increment_counts(child_num,r,1);
    #endif
  ! 	while (r && current_conn->keepalive &&
  !           !table_get(r->subprocess_env, "nokeepalive")) {
    	    bflush(conn_io);
    	    destroy_pool(r->pool);
    	    (void)update_child_status (child_num, SERVER_BUSY_KEEPALIVE,
  ***************
  *** 1959,1969 ****
    	r = read_request (conn);
    	if (r) process_request (r); /* else premature EOF (ignore) */
    
  !         while (r && conn->keepalive) {
  ! 	  bflush(cio);
  ! 	  destroy_pool(r->pool);
  !           r = read_request (conn);
  !           if (r) process_request (r);
            }
    
    	bflush(cio);
  --- 1960,1971 ----
    	r = read_request (conn);
    	if (r) process_request (r); /* else premature EOF (ignore) */
    
  !         while (r && conn->keepalive &&
  !           !table_get(r->subprocess_env, "nokeepalive")) {
  ! 	    bflush(cio);
  ! 	    destroy_pool(r->pool);
  !             r = read_request (conn);
  !             if (r) process_request (r);
            }
    
    	bflush(cio);
  
  
  
  1.46      +3 -5      apache/src/http_protocol.c
  
  Index: http_protocol.c
  ===================================================================
  RCS file: /export/home/cvs/apache/src/http_protocol.c,v
  retrieving revision 1.45
  retrieving revision 1.46
  diff -C3 -r1.45 -r1.46
  *** http_protocol.c	1996/09/03 00:31:26	1.45
  --- http_protocol.c	1996/09/17 14:53:54	1.46
  ***************
  *** 50,56 ****
     *
     */
      
  ! /* $Id: http_protocol.c,v 1.45 1996/09/03 00:31:26 akosut Exp $ */
    
    /*
     * http_protocol.c --- routines which directly communicate with the
  --- 50,56 ----
     *
     */
      
  ! /* $Id: http_protocol.c,v 1.46 1996/09/17 14:53:54 chuck Exp $ */
    
    /*
     * http_protocol.c --- routines which directly communicate with the
  ***************
  *** 981,987 ****
        
        basic_http_header (r);
    
  !     set_keepalive (r);
    
        if (r->chunked)
    	bputs("Transfer-Encoding: chunked\015\012", fd);
  --- 981,988 ----
        
        basic_http_header (r);
    
  !     if (!table_get(r->subprocess_env, "nokeepalive"))
  !         set_keepalive (r);
    
        if (r->chunked)
    	bputs("Transfer-Encoding: chunked\015\012", fd);
  ***************
  *** 1026,1034 ****
        }
    
        bputs("\015\012",fd);
  - 
  -     if (c->keepalive)
  - 	bflush(fd);  /* This is to work around a Netscape bug */
    
        bsetopt(fd, BO_BYTECT, &zero);
        r->sent_bodyct = 1;		/* Whatever follows is real body stuff... */
  --- 1027,1032 ----
  
  
  

Mime
View raw message