perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alex J. G. Burzyński" <a...@ajgb.net>
Subject Re: Custom directive and <Location> - bug?
Date Mon, 06 Dec 2010 21:33:39 GMT
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


Mime
View raw message