logo       

Re: Stacked Handlers Execution Chain: msg#00551

apache.mod-perl

Subject: Re: Stacked Handlers Execution Chain



First of all let's clear up the 1.0 side:

Quoting the eagle book:

The exception to this rule [all handlers will run] is if one of
the handlers in the series returns an error code (anything other than
OK, DECLINED, or DONE)

Though the code does *not* check for DONE:

mod_perl.c:1375
if((status != OK) && (status != DECLINED)) {
...
return status;
}

so where is the bug? In the book or the code?

well, OK, DECLINED, and DONE are all success codes - everything else is an error and goes to the error document cycle.

however, DONE is special - it indicates that all content has been sent and the request cycle should proceed straight to the logging phase. from a handler perspective, DONE behaves the same as an error code - it terminates the request cycle.

I suspect that 1.0 logic handled DONE automatically - DONE was captured and passed back to Apache, which took appropriate action. and I suspect this is what you found in 2.0, since you test for DONE but didn't handle it explicitly.

kudos, stas, for always taking care of all the 2.0 stuff.

--Geoff




<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise