[squid-dev] [PATCH] Incorrect processing of long URIs

Amos Jeffries squid3 at treenet.co.nz
Wed Aug 24 14:30:41 UTC 2016


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.

Amos



More information about the squid-dev mailing list