Re: Custom directive and <Location> - bug?

"Alex J. G. Burzyński" <[email protected]>
Newsgroups gmane.comp.apache.mod-perl
Message-ID <[email protected]>
On 06/12/10 20:39, Philippe M. Chiasson wrote:
> 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.
>

I've found this while working on Apache2::Layer (on cpan)

>> 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.
>

If you take a look at those (around lines 68-70):
http://pastebin.com/PUtcczwA (with PerlSetVar)
http://pastebin.com/kfjMtZsT (without PerlSetVar)

you'll see that PerlSetVar creates directory context, while custom 
directive on its own does not.


However the Apache2::CmdParams->path returns the correct value and 
that's what I'm using in my module as a workaround.

Thanks,
Alex
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.