On Monday 03 May 2010 13:06:22 Cédric Bertolini wrote:
> I'm migrating our web server from Apache1.3/modperl1 to Apache2.2/modperl2.
> Everything went smoothly (thanks for the great documentation on
> perl.apache.org !), until I began to set up FixurHandlers and
> CleanUpHandlers to manage the user session.
> 
> At that point, I noticed something strange : when the browser requests a
> script with a path_info part, my FixupHandler script traces a request on
>  the path_info part. e.g. an initial request to
> http://myserver.domain.com/perl/script.pl/perl/module generates a request
>  to /perl/script.pl, but also an inner (sub?) request to /perl/module.  The
>  subrequest doesn't seem to call the ResponseHandler, it goes straigth from
>  Fixup to CleanUp.

That's the subrequest apache uses to compute PATH_INFO_TRANSLATED, a standard 
CGI variable.

> So I see this:
> 
> [MapToStorage] /perl/script.pl/perl/module
> [Fixup]  /perl/script.pl
> [MapToStorage] /perl/module
> [Fixup] /perl/module
> [CleanUp] /perl/module
> [Response] /perl/script.pl
> [CleanUp] /perl/script.pl
> 
> It's kinda strange, since /perl/module is just a path_info, but I can live
> with that. The problem is that my Fixup handler tries to actually fix
>  things up for the upcoming request, like tie-ing a variable for my
>  session. When there's no actual request, I'm tie-ing the variable for
>  nothing, and it's detrimental.
> 
> So I have two questions :
> 
> Can I prevent the subrequest ? Maybe a return value to the main Fixup
> handler ?

"PerlOptions -SetupEnv" or so

> Can I inspect the subrequest to know that it is a subrequest ? Maybe a $r
> method ?
> 
$r->is_initial_req (in Apache2::RequestUtil)

Torsten Förtsch

-- 
Need professional modperl support? Hire me! (http://foertsch.name)

Like fantasy? http://kabatinte.net

Reply via email to