setHandler question

André Warnier <[email protected]>
Newsgroups gmane.comp.apache.mod-perl
Message-ID <[email protected]>
Hi.

Quite a while ago (2008), this discussion on the list :

http://marc.info/?l=apache-modperl&m=122399752819709&w=2

was about how to, within a PerlAuthenHandler, override the ResponseHandler which would 
normally kick in later in the cycle, and force it to be mod_perl and a specific (other) 
PerlresponseHandler.

The general idea is like :

if (some_condition) {

    $r->handler('modperl');
    $r->set_handlers(PerlResponseHandler => \&_my_response_handler);
}

or even :

$r->set_handlers(PerlResponseHandler => \&_my_response_handler);
$r->set_handlers(PerlFixupHandler => sub { $_[0]->handler('modperl') } );

and generally speaking it works.
Only, sometimes it doesn't, and Apache proceeds to use the previously-configured response 
handler no matter what.

Then there was a hint that, in addition to the above, one might need to also set or clear 
something in the $r->finfo structure, to (as I, with my limited knowledge understand it) 
tell Apache that we really know what we are doing, and really want to override what it 
already knows about the final destination.

This "thing" to set in the $r->finfo() being Apache2::Const::OR_FILEINFO or thereabouts.

And an example was even given in the thread, as :

   $r->add_config(['SetHandler ...'], Apache2::Const::OR_FILEINFO)

Only, here I have already set the Handler, and I would merely want to try just to set the 
above flag.
So how would I do that ?

I do not see a way to pass this argument in $r->handler().
I see in the doc this : http://perl.apache.org/docs/2.0/api/Apache2/RequestRec.html#C_finfo_

but I do not really understand the example given.

I suppose that in the end I will want to do something like this :

my $finfo = $r->finfo();
# do something to $finfo to set the flag
$r->finfo($finfo);
$r->handler('modperl');
$r->set_handlers(PerlResponseHandler => \&_my_response_handler);

but how do I "do something to $finfo" ?

Or am I totally off-track here ?

TIA
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.