httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dgau...@hyperreal.org
Subject cvs commit: apache-1.3/src/main http_protocol.c
Date Mon, 25 May 1998 22:55:41 GMT
dgaudet     98/05/25 15:55:40

  Modified:    src/main http_protocol.c
  Log:
  - style correction
  - eliminate an unneeded extra MAX_STRING_LEN buffer
  - add some XXX comments
  
  Revision  Changes    Path
  1.215     +25 -19    apache-1.3/src/main/http_protocol.c
  
  Index: http_protocol.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/main/http_protocol.c,v
  retrieving revision 1.214
  retrieving revision 1.215
  diff -u -r1.214 -r1.215
  --- http_protocol.c	1998/05/21 04:11:27	1.214
  +++ http_protocol.c	1998/05/25 22:55:39	1.215
  @@ -662,8 +662,9 @@
                       "request failed for %s, reason: URI too long",
               ap_get_remote_host(r->connection, r->per_dir_config, REMOTE_NAME));
   	/* hack to deal with the HTTP_REQUEST_TIME_OUT setting up above: */
  -	if (r->status == HTTP_REQUEST_TIME_OUT)
  -	  r->status = HTTP_OK;
  +	if (r->status == HTTP_REQUEST_TIME_OUT) {
  +	    r->status = HTTP_OK;
  +	}
   	r->request_time = time(NULL);
   	ap_die (HTTP_REQUEST_URI_TOO_LARGE, r);
           return 0;
  @@ -718,38 +719,42 @@
   
       /*
        * Read header lines until we get the empty separator line, a read error,
  -     * the connection closes (EOF), or we timeout. Should we also check for
  -     * overflow (len == MAX_STRING_LEN-1)?
  +     * the connection closes (EOF), or we timeout.
        */
       while ((len = getline(field, MAX_STRING_LEN, c->client, 1)) > 0) {
           char *copy = ap_palloc(r->pool, len + 1);
           memcpy(copy, field, len + 1);
   	
   	if (!(value = strchr(copy, ':'))) {     /* Find the colon separator */
  -	  /* if there's none, this request is screwed up.
  -	   * a hack to deal with how we set HTTP_REQUEST_TIME_OUT earlier.*/
  -	  if (r->status == HTTP_REQUEST_TIME_OUT)
  -	    r->status = HTTP_OK;
  -	  
  -	  ap_die (HTTP_BAD_REQUEST, r);
  -	  return;
  +	    /* if there's none, this request is screwed up.
  +	     * a hack to deal with how we set HTTP_REQUEST_TIME_OUT earlier.*/
  +	    if (r->status == HTTP_REQUEST_TIME_OUT)
  +		r->status = HTTP_OK;
  +	    
  +	    ap_die (HTTP_BAD_REQUEST, r);
  +	    return;
   	}
   
           *value = '\0';
           ++value;
  +	/* XXX: RFC2068 defines only SP and HT as whitespace, this test is
  +	 * wrong... and so are many others probably.
  +	 */
           while (isspace(*value))
               ++value;            /* Skip to start of value   */
   
  +	/* XXX: should strip trailing whitespace as well */
  +
           ap_table_mergen(r->headers_in, copy, value);
   
   	/* the header was too long; at the least we should skip extra data */
   	if (len >= MAX_STRING_LEN - 1) { 
  -	  char junk[MAX_STRING_LEN];     
  -	  while ((len = getline(junk, MAX_STRING_LEN, c->client, 1))
  -		 >= MAX_STRING_LEN - 1)   /* soak up the extra data */
  -	    ;
  -	  if (len == 0) /* time to exit the larger loop as well */
  -	    break;
  +	    while ((len = getline(field, MAX_STRING_LEN, c->client, 1))
  +		    >= MAX_STRING_LEN - 1) {
  +		/* soak up the extra data */
  +	    }
  +	    if (len == 0) /* time to exit the larger loop as well */
  +		break;
   	}
       }
   }
  @@ -798,8 +803,10 @@
       ap_keepalive_timeout("read request line", r);
       if (!read_request_line(r)) {
           ap_kill_timeout(r);
  -	if (r->status != HTTP_REQUEST_TIME_OUT)  /* we must have had an error.*/
  +	if (r->status != HTTP_REQUEST_TIME_OUT) {
  +	    /* we must have had an error.*/
   	    ap_log_transaction(r);
  +	}
           return NULL;
       }
       if (!r->assbackwards) {
  @@ -832,7 +839,6 @@
       if ((access_status = ap_run_post_read_request(r))) {
           ap_die(access_status, r);
   	ap_log_transaction(r);
  -
           return NULL;
       }
   
  
  
  

Mime
View raw message