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]