httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexei Kosut <ako...@hyperreal.com>
Subject cvs commit: apache/src http_protocol.c httpd.h
Date Tue, 03 Sep 1996 00:31:29 GMT
akosut      96/09/02 17:31:29

  Modified:    src       http_protocol.c httpd.h
  Log:
  Upgrade protocol version to 1.1. Clean up persistent connection support
  a bit.
  
  Reviewed by: Rob Hartill, Jim Jagielski, Chuck Murcko, Roy T. Fielding
  
  Revision  Changes    Path
  1.45      +14 -24    apache/src/http_protocol.c
  
  Index: http_protocol.c
  ===================================================================
  RCS file: /export/home/cvs/apache/src/http_protocol.c,v
  retrieving revision 1.44
  retrieving revision 1.45
  diff -C3 -r1.44 -r1.45
  *** http_protocol.c	1996/08/24 16:04:54	1.44
  --- http_protocol.c	1996/09/03 00:31:26	1.45
  ***************
  *** 50,56 ****
     *
     */
      
  ! /* $Id: http_protocol.c,v 1.44 1996/08/24 16:04:54 ben Exp $ */
    
    /*
     * http_protocol.c --- routines which directly communicate with the
  --- 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
  ***************
  *** 284,316 ****
    {
        char *conn = table_get (r->headers_in, "Connection");
        char *length = table_get (r->headers_out, "Content-length");
    
        if ((r->server->keep_alive > r->connection->keepalives) &&
    	(r->server->keep_alive_timeout > 0) &&
    	(r->header_only || length ||
    	 ((r->proto_num >= 1001) && (r->byterange > 1 || (r->chunked =
1)))) &&
    	(!find_token(r->pool, conn, "close")) &&
  ! #ifdef FORHTTP11
  ! 	((proto_num >= 1001) || find_token(r->pool, conn, "keep-alive"))) {
  ! #else
  ! 	(find_token(r->pool, conn, "keep-alive"))) {
  ! #endif
    	char header[26];
    	int left = r->server->keep_alive - r->connection->keepalives;
    	
    	r->connection->keepalive = 1;
    	r->connection->keepalives++;
    	
  ! #ifdef FORHTTP11
  ! 	if (r->proto_num < 1001) {
  ! #endif
    	    sprintf(header, "timeout=%d, max=%d",
    		    r->server->keep_alive_timeout, left);
  ! 	    table_merge (r->headers_out, "Connection", "Keep-Alive");
  ! 	    table_set (r->headers_out, "Keep-Alive", pstrdup(r->pool, header));
  ! #ifdef FORHTTP11
    	}
  - #endif	
    
    	return 1;
        }
  --- 284,311 ----
    {
        char *conn = table_get (r->headers_in, "Connection");
        char *length = table_get (r->headers_out, "Content-length");
  +     int ka_sent;
    
        if ((r->server->keep_alive > r->connection->keepalives) &&
    	(r->server->keep_alive_timeout > 0) &&
    	(r->header_only || length ||
    	 ((r->proto_num >= 1001) && (r->byterange > 1 || (r->chunked =
1)))) &&
    	(!find_token(r->pool, conn, "close")) &&
  ! 	((ka_sent = find_token(r->pool, conn, "keep-alive")) ||
  ! 	 r->proto_num >= 1001)) {
    	char header[26];
    	int left = r->server->keep_alive - r->connection->keepalives;
    	
    	r->connection->keepalive = 1;
    	r->connection->keepalives++;
    	
  ! 	/* If they sent a Keep-Alive token, send one back */
  ! 	if (ka_sent) {
    	    sprintf(header, "timeout=%d, max=%d",
    		    r->server->keep_alive_timeout, left);
  ! 	    rputs("Connection: Keep-Alive\015\012", r);
  ! 	    rvputs(r, "Keep-Alive: ", header, "\015\012", NULL);
    	}
    
    	return 1;
        }
  ***************
  *** 320,326 ****
         * as HTTP/1.0, but pass our request along with our HTTP/1.1 tag
         * to a HTTP/1.1 client. Better safe than sorry.
         */
  !     table_merge (r->headers_out, "Connection", "close");
    
        return 0;
    }
  --- 315,321 ----
         * as HTTP/1.0, but pass our request along with our HTTP/1.1 tag
         * to a HTTP/1.1 client. Better safe than sorry.
         */
  !     rputs("Connection: close\015\012", r);
    
        return 0;
    }
  ***************
  *** 1274,1293 ****
    	    if (etag) bvputs(c->client, "ETag: ", etag, "\015\012", NULL);
    	    if (cloc) bvputs(c->client, "Content-Location: ", cloc,
    			     "\015\012", NULL);
  ! 	    if (set_keepalive(r)) {
  ! #ifdef FORHTTP11
  ! 		if (r->proto_num < 1001)
  ! #endif
  ! 		    bputs("Connection: Keep-Alive\015\012", c->client);
  ! 	    }
  ! 	    else bputs("Connection: close\015\012", c->client);
    	    bputs("\015\012", c->client);
    	    return;
    	}
    
  ! 	/* We don't want persistent connections here, for several reasons.
  ! 	 * Most importantly, if there's been an error, we don't want
  ! 	 * it screwing up the next request.
    	 */
    	bputs("Connection: close\015\012", c->client);
    	
  --- 1269,1283 ----
    	    if (etag) bvputs(c->client, "ETag: ", etag, "\015\012", NULL);
    	    if (cloc) bvputs(c->client, "Content-Location: ", cloc,
    			     "\015\012", NULL);
  ! 	    set_keepalive(r);
    	    bputs("\015\012", c->client);
    	    return;
    	}
    
  ! 	/* Someday, we'd like to have persistent connections here.
  ! 	 * They're especially useful for redirects, multiple choices
  ! 	 * and auth requests. But we need to rewrite the rest of thi
  ! 	 * section, so for now, we don't use it.
    	 */
    	bputs("Connection: close\015\012", c->client);
    	
  
  
  
  1.49      +2 -2      apache/src/httpd.h
  
  Index: httpd.h
  ===================================================================
  RCS file: /export/home/cvs/apache/src/httpd.h,v
  retrieving revision 1.48
  retrieving revision 1.49
  diff -C3 -r1.48 -r1.49
  *** httpd.h	1996/08/24 16:33:29	1.48
  --- httpd.h	1996/09/03 00:31:27	1.49
  ***************
  *** 50,56 ****
     *
     */
    
  ! /* $Id: httpd.h,v 1.48 1996/08/24 16:33:29 ben Exp $ */
    
    /*
     * httpd.h: header for simple (ha! not anymore) http daemon
  --- 50,56 ----
     *
     */
    
  ! /* $Id: httpd.h,v 1.49 1996/09/03 00:31:27 akosut Exp $ */
    
    /*
     * httpd.h: header for simple (ha! not anymore) http daemon
  ***************
  *** 245,251 ****
    
    #define SERVER_VERSION "Apache/1.2-dev" /* SEE COMMENTS ABOVE */
    
  ! #define SERVER_PROTOCOL "HTTP/1.0"
    #define SERVER_SUPPORT "http://www.apache.org/"
    
    #define DECLINED -1		/* Module declines to handle */
  --- 245,251 ----
    
    #define SERVER_VERSION "Apache/1.2-dev" /* SEE COMMENTS ABOVE */
    
  ! #define SERVER_PROTOCOL "HTTP/1.1"
    #define SERVER_SUPPORT "http://www.apache.org/"
    
    #define DECLINED -1		/* Module declines to handle */
  
  
  

Mime
View raw message