mjc         96/07/17 01:33:42

  Modified:    src       http_protocol.c CHANGES
  Log:
  Submitted by: Paul Sutton
  
  Fix ErrorDocument handling.  When ErrorDocument failed it used to
  display filename instead of error message.  Also handles recursive
  ErrorDocuments.
  
  Revision  Changes    Path
  1.28      +23 -3     apache/src/http_protocol.c
  
  Index: http_protocol.c
  ===================================================================
  RCS file: /export/home/cvs/apache/src/http_protocol.c,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -C3 -r1.27 -r1.28
  *** http_protocol.c   1996/06/23 18:05:16     1.27
  --- http_protocol.c   1996/07/17 08:33:39     1.28
  ***************
  *** 880,888 ****
    
        if (r->header_only) return;
        
  !     if ((custom_response = response_code_string (r, idx)))
  !         bputs(custom_response, c->client);
  !     else {
        char *title = response_titles[idx];
        BUFF *fd = c->client;
        
  --- 880,908 ----
    
        if (r->header_only) return;
        
  !     if ((custom_response = response_code_string (r, idx))) {
  !         /*
  !      * We have a custom response output. This should only be
  !      * a text-string to write back. But if the ErrorDocument
  !      * was a local redirect and the requested resource failed
  !      * for any reason, the custom_response will still hold the
  !      * redirect URL. We don't really want to output this URL
  !      * as a text message, so first check the custom response 
  !      * string to ensure that it is a text-string (using the
  !      * same test used in die(), i.e. does it start with a
  !      * "). If it doesn't, we've got a recursive error, so find
  !      * the original error and output that as well.
  !      */
  !         if (custom_response[0] == '\"') { 
  !             bputs(custom_response+1, c->client);
  !           return;
  !     }
  !     /* Redirect failed, so get back the original error
  !      */
  !     while (r->prev && r->prev->status != 200)
  !           r = r->prev;
  !     }
  !     {
        char *title = response_titles[idx];
        BUFF *fd = c->client;
        
  
  
  
  1.43      +3 -0      apache/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /export/home/cvs/apache/src/CHANGES,v
  retrieving revision 1.42
  retrieving revision 1.43
  diff -C3 -r1.42 -r1.43
  *** CHANGES   1996/07/16 19:39:10     1.42
  --- CHANGES   1996/07/17 08:33:40     1.43
  ***************
  *** 1,5 ****
  --- 1,8 ----
    Changes with Apache 1.2b1:
    
  +   *) Fix ErrorDocument handling.  When ErrorDocument failed it used to 
  +      display filename instead of error message. [Paul Sutton]
  + 
      *) Graceful restart code added. This allows the server to restart without
         losing current connections on receipt of signal 2 (SIGINT). [Ben 
Laurie]
    
  
  
  

Reply via email to