httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From field...@hyperreal.org
Subject cvs commit: apache-1.3/src/main http_main.c http_protocol.c
Date Sun, 02 Aug 1998 04:43:19 GMT
fielding    98/08/01 21:43:19

  Modified:    src      CHANGES
               src/main http_main.c http_protocol.c
  Log:
  Allow ap_read_request errors to propagate through the normal request
  handling loop so that the connection can be properly closed with
  lingering_close, thus avoiding a potential TCP reset that would
  cause the client to miss the HTTP error response.
  
  Revision  Changes    Path
  1.993     +5 -0      apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.992
  retrieving revision 1.993
  diff -u -r1.992 -r1.993
  --- CHANGES	1998/07/28 17:26:43	1.992
  +++ CHANGES	1998/08/02 04:43:15	1.993
  @@ -1,5 +1,10 @@
   Changes with Apache 1.3.2
   
  +  *) Allow ap_read_request errors to propagate through the normal request
  +     handling loop so that the connection can be properly closed with
  +     lingering_close, thus avoiding a potential TCP reset that would
  +     cause the client to miss the HTTP error response.  [Roy Fielding]
  +
     *) One more portability fix for APACI shadow tree support: Swap order of awk
        and sed in top-level configure script to avoid sed fails on some
        platforms (for instance SunOS 4.1.3 and NCR SysV) because of the
  
  
  
  1.376     +14 -9     apache-1.3/src/main/http_main.c
  
  Index: http_main.c
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/main/http_main.c,v
  retrieving revision 1.375
  retrieving revision 1.376
  diff -u -r1.375 -r1.376
  --- http_main.c	1998/07/20 16:37:11	1.375
  +++ http_main.c	1998/08/02 04:43:17	1.376
  @@ -3699,8 +3699,11 @@
   
   	    (void) ap_update_child_status(my_child_num, SERVER_BUSY_WRITE, r);
   
  -	    ap_process_request(r);
  +	    /* process the request if it was read without error */
   
  +	    if (r->status == HTTP_OK)
  +		ap_process_request(r);
  +
   #if defined(STATUS)
   	    increment_counts(my_child_num, r);
   #endif
  @@ -4466,15 +4469,16 @@
   	conn = new_connection(ptrans, server_conf, cio,
   			          (struct sockaddr_in *) &sa_client,
   			          (struct sockaddr_in *) &sa_server, -1);
  -	r = ap_read_request(conn);
  -	if (r)
  -	    ap_process_request(r);	/* else premature EOF (ignore) */
   
  -	while (r && conn->keepalive && !conn->aborted) {
  -	    ap_destroy_pool(r->pool);
  -	    r = ap_read_request(conn);
  -	    if (r)
  +	while ((r = ap_read_request(conn)) != NULL) {
  +
  +	    if (r->status == HTTP_OK)
   		ap_process_request(r);
  +
  +	    if (!conn->keepalive || conn->aborted)
  +		break;
  +
  +	    ap_destroy_pool(r->pool);
   	}
   
   	ap_bclose(cio);
  @@ -4779,7 +4783,8 @@
   	while ((r = ap_read_request(current_conn)) != NULL) {
   	    (void) ap_update_child_status(child_num, SERVER_BUSY_WRITE, r);
   
  -	    ap_process_request(r);
  +	    if (r->status == HTTP_OK)
  +		ap_process_request(r);
   
   #if defined(STATUS)
   	    increment_counts(child_num, r);
  
  
  
  1.227     +2 -3      apache-1.3/src/main/http_protocol.c
  
  Index: http_protocol.c
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/main/http_protocol.c,v
  retrieving revision 1.226
  retrieving revision 1.227
  diff -u -r1.226 -r1.227
  --- http_protocol.c	1998/07/22 05:48:21	1.226
  +++ http_protocol.c	1998/08/02 04:43:18	1.227
  @@ -803,8 +803,8 @@
               ap_send_error_response(r, 0);
               ap_bflush(r->connection->client);
               ap_log_transaction(r);
  +            return r;
           }
  -        r->connection->aborted = 1;
           return NULL;
       }
       if (!r->assbackwards) {
  @@ -819,8 +819,7 @@
               ap_send_error_response(r, 0);
               ap_bflush(r->connection->client);
               ap_log_transaction(r);
  -            r->connection->aborted = 1;
  -            return NULL;
  +            return r;
           }
       }
       else {
  
  
  

Mime
View raw message