[squid-dev] [PATCH] Incorrect processing of long URIs
Alex Rousskov
rousskov at measurement-factory.com
Wed Aug 24 14:35:06 UTC 2016
On 08/24/2016 08:30 AM, Amos Jeffries wrote:
> On 25/08/2016 12:36 a.m., Eduard Bagdasaryan wrote:
>> 2016-08-23 18:01 GMT+03:00 Alex Rousskov:
>>
>>> invalid request-line: missing delimiter before "HTTP/1"
>>
>> In order to generate "where" with such detalization (i.e. the specific
>> protocol version or method) we would need to pass skipDelimiter() the
>> parsed AnyP::ProtocolVersion or HttpRequestMethod objects, which would
>> require converting skipDelimiter() to a template:
>>
>> <template class C> skipDelimiter(size_t, const char *where, const C
>> &what);
>
> Two options there;
>
> Option 1, is to use a fixed and slightly generic where message:
> "before protocol version"
>
> Pros: static debugs message, only used when actually needed.
>
> Cons: its generic rather than protocol specific.
>
>
> Option 2, is to use a PackableStream to construct that part of debug
> message in advance.
>
> Pros: its accurate and detailed
>
> Cons: extra memory and time required to generate the string when its
> probably never used.
> I think go with option 1 since this is a performance critical piece of code.
I agree but for a completely different reason:
* Effective error triage needs a lot more details than a specific method
name or protocol version -- a different problem we are not trying to
solve here.
* I do not consider error handling to be a performance critical piece of
code (and yes, we have already discussed whether error handling is
performance-critical, and we disagree on that).
Cheers,
Alex.
More information about the squid-dev
mailing list