On 10-11-30 07:51 , "Alex J. G. Burzyński" wrote:
> Hi,
> 
> I've noticed that when using custom directives within nested <Location>
> the result of $r->location reports the parent one only, instead of the
> subdir.
> 
> However if I add PerlSetVar the $r->location will report the correct one.

Yup, you've stumbled on an interesting bug.

> The way to replicate:
> please follow the example
> http://perl.apache.org/docs/2.0/user/config/custom.html#Merging_at_Work
> 
> and now add:
> 
> --- httpd.conf-orig    2010-11-30 12:06:57.491843181 +0000
> +++ httpd.conf    2010-11-30 12:07:39.217629859 +0000
> @@ -18,6 +18,7 @@
>          PerlResponseHandler MyApache2::CustomDirectivesTest
>      </Location>
>      <Location /custom_directives_test/subdir>
> +        PerlSetVar fix "problem"
>          MyPlus 1
>          MyList     "SubDir"
>          MyAppend   "SubDir"

The reason this makes a difference is that without it, there are no
mod_perl directives (the custom ones are 'special'), so no configuration
pass for modperl in that directory.

Side-effect of that is that $r->location isn't tracked proprely.
Keep in mind that r->location is not an httpd api, but rather something
convenient mod_perl tracks. But not in this case, unfortunately.

-- 
Philippe M. Chiasson     GPG: F9BFE0C2480E7680 1AE53631CB32A107 88C3A5A5
http://gozer.ectoplasm.org/       m/gozer\@(apache|cpan|ectoplasm)\.org/

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to