dougm 00/10/06 13:18:29
Modified: t/internal error.t
src/modules/perl mod_perl.c
Log:
more for the "Apache::send_http_header was resetting r->status = 200" fix
Revision Changes Path
1.5 +5 -3 modperl/t/internal/error.t
Index: error.t
===================================================================
RCS file: /home/cvs/modperl/t/internal/error.t,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- error.t 1998/09/19 22:27:44 1.4
+++ error.t 2000/10/06 20:18:25 1.5
@@ -1,8 +1,7 @@
use Apache::test;
#we're testing an experimental feature that doesn't work for some folks
#will revisit later
-unless (defined $ENV{USER} and $ENV{USER} eq 'dougm'
- and $net::callback_hooks{ERRSV_CAN_BE_HTTP}) {
+unless (defined $ENV{USER} and $ENV{USER} eq 'dougm') {
print "1..1\nok 1\n";
exit;
}
@@ -14,8 +13,11 @@
my $i = 0;
-print "1..1\n";
+print "1..2\n";
print $content;
test ++$i, $content =~ /$qs/;
+
+#make sure ErrorDocuments don't create a recursive error
+test ++$i, $content !~ /Additionally/;
1.133 +7 -0 modperl/src/modules/perl/mod_perl.c
Index: mod_perl.c
===================================================================
RCS file: /home/cvs/modperl/src/modules/perl/mod_perl.c,v
retrieving revision 1.132
retrieving revision 1.133
diff -u -r1.132 -r1.133
--- mod_perl.c 2000/10/03 20:59:00 1.132
+++ mod_perl.c 2000/10/06 20:18:28 1.133
@@ -913,6 +913,13 @@
MP_TRACE_g(fprintf(stderr, "perl_handler LEAVE: SVs = %5d, OBJs = %5d\n",
(int)sv_count, (int)sv_objcount));
+ if (r->prev && (r->prev->status != HTTP_OK) &&
+ mod_perl_sent_header(r, 0))
+ {
+ /* avoid recursive error for ErrorDocuments */
+ status = OK;
+ }
+
(void)release_mutex(mod_perl_mutex);
return status;
}