On Tue, Jan 14, 2003 at 12:32:29PM +1100, Stas Bekman wrote: > > <Location /plop/> > SetHandler perl-script > PerlHeaderParserHandler Apache::Plop > </Location> >
Well, this is not really what I want to do ... I would like to catch all the "proxy request" and apply modifications to the requested document before forwarding the answer back to the client. That's why I used the "PerlTransHandler" which is "global" and not tied to a particular directory. > > Now to your code: > > 1. You can't push_handlers when you are inside a response handler. > Use PerlHeaderParserHandler instead > > 2. $r->headers_in->do() expects a return value and will abort on 0; see > the attached code > > also it should be: > $request->header( $_[0] => $_[1] ); > instead of: > $request->header( {$_[0]} => $_[1] ); > > have you looked at error_log? You'd have seen that error reported. > > 3. This is not good: > my $request = HTTP::Request->new( $r->method, $r->uri); > since you don't the whole url. Use this instead: > my $request = HTTP::Request->new( $r->method, $r->construct_url); > this requires 'use Apache::URI' > > 4. Finally I've used a special header: (which can be anything) > $request->header( GetReal => 1 ); > to know that now I'm inside the real request. > Thanks for your remarks. I installed modperl-1.99_08 and I keep getting SEGFAULT with my original code ... I think I'll try to get it working first on mod_perl 1.x then get back to modperl 2 --