On Wed, Aug 3, 2016 at 12:19 PM, William A Rowe Jr <wr...@rowe-clan.net>
wrote:

> On Wed, Aug 3, 2016 at 8:13 AM, Graham Leggett <minf...@sharp.fm> wrote:
>
>> On 18 Jul 2016, at 6:32 PM, William A Rowe Jr <wr...@rowe-clan.net>
>> wrote:
>>
>> > Worse, in http 2.4, the first two registered methods collide with BREW
>> and WHEN. That said, the 'fix', if we wanted to resolve it, is to use
>> M_INVALID +3 as the first value.
>>
>> I’m not seeing the problem here, there is no expectation of binary
>> compatibility between httpd v2.4 and trunk. Can you confirm what you’re
>> trying to achieve by removing this?
>>
>
> The first problem in dropping BREW and WHEN is that any provider against
> 2.6/3.0 can register these methods itself. The ftp module, for example,
> registers some 50 commands. These exceed the number of AllowMethod
> limitable methods. The right answer for future-proofing would be to either
> have providers register only extension methods they want to use, and/or
> increase that from a 64-bit word to 128-bit index of allow methods (say
> 16 chars for simplicity's sake).
>
> The problem here is that BREW would collide with the first registered
> method,
> and WHEN would collide with the second registered method, wherein two
> method
> identifiers would share the same ID and same AllowMethod rule. That's bad
> (if these two were implemented by a provider).
>
> httpd 2.4 requires binary compatibility, if we don't want these to
> collide, we must
> assign the first registered method to 1+WHEN. The IDs can't change on
> 2.4.x,
> but the first number allocated for a registered method certainly can.
>
> In all, this was a cleanup-[de?]optimization of convoluted trunk logic, I
> don't see
> the point in backporting such noise to a maintenance branch. Only trunk,
> moving forwards, aught to be 'optimal' in terms of legibility and
> performance.
>
> So it wasn't my intent to backport. If we want to avoid BREW/WHEN
> collisions
> we should simply fix that.
>

Never mind, BREW and WHEN were simply not registered at all in 2.4/2.2.

I am going to suggest we register the hash lookup value for HEAD though as
a one-line patch to 2.2/2.4, aliased to M_GET just as on trunk.

Reply via email to