Hi,
I have a handler I call as a PerlPostReadRequestHandler
sub handler {
my $r = shift; my $uri = APR::URI->parse($r->pool, $r->construct_url);
$uri->scheme('http'); $uri->port('8080');
$r->uri($uri->unparse());
return Apache::DECLINED; } 1;
This consistently leads to an error in the error log:
Invalid URI in request GET /foo/bar.html
Even though the request looks good in the access log:
400 GET http://www.ladyraquel.com:8080/charters/index.html
Have I missed soemthing obvious as usual?
Yup, it's not supposed to work. It fails the same way with Apache 1.3. It's Apache that asserts, not mod_perl. It expects the $r->uri to start from / at this phase, after the mapping phase is completed you can change it any way you want.
Here is quick test I've run over mp1:
<Perl>
package Foo2;
use Apache::URI;
use Apache::Constants;
sub handler {
my $r = shift;
$r->uri(Apache::URI->parse($r->uri)->unparse);
warn "uri ", $r->uri, "\n";
return Apache::Constants::DECLINED;
}
package main;
</Perl>
PerlPostReadRequestHandler Foo2::handleruri http://localhost:8000/perl/test.pl
[Sun Mar 2 17:22:03 2003] [error] [client 127.0.0.1] Invalid URI in request GET /perl/test.pl HTTP/1.0
PS Stas: I tried for >2hrs to make a test work in the Test framework ... it indeed dies with the same error but I wasn't confident that it was getting called as an init handler as I wanted ... I couldn't decipher :)
you should have looked at the relevant config section in t/conf/httpd.conf (after running t/TEST -conf). I suppose you have added, something like:
__END__ PerlPostReadRequestHandler TestAPI::uri::postreadrequest_handler
__________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
