Re: [MERGE] specify range_offset_limit per pattern

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Sat, 07 Nov 2009 15:15:33 +1300

Matthew Morgan wrote:
> These modifications allow the user to specify multiple
> range_offset_limit lines which will be matched per a specified pattern.
> These patterns work the same as the ones for refresh_pattern, and will
> accept the same -i modifier. The lines are parsed from top to bottom,
> using the first matching line (just like acls). If there is no
> range_offset_limit line that matches a particular request, the default
> of 0 is used.
>

Wonderful. Thank you.

Looks good. I just have a few UI alterations which are needed to make it
completely perfect for merging.

1) Please use the parseBytesLine64() parsing function for the bytes
field. It will cleanly allow the configurations:
   range_offset_limit none [-i] ...
   range_offset_limit nn bytes [-i] ...
   range_offset_limit nn KB [-i] ...
   range_offset_limit nn MB [-i] ...
   range_offset_limit nn GB [-i] ...
   range_offset_limit nn TB [-i] ...

2) please make getRangeOffsetLimit() a method of the HttpReply class.
   If called more than once per transaction it should also cache the
result of the tests in an HttpReply field to reduce duplicate testing on
the same reply data.

3) Please upgrade the URL pattern match to an ACL list instead.
   This will allow the new option syntax to avoid all the severe
limitations refresh_pattern suffers from by being unable to match
user-agents, file mime types, client sources, etc.
   Preferably a slow ACL lookup, but AFACT this may have to be a fast
lookup for now.

To implement (2) and (3) see HttpReply::calcMaxBodySize() for exemplar code.

Amos

-- 
Please be using
   Current Stable Squid 2.7.STABLE7 or 3.0.STABLE20
   Current Beta Squid 3.1.0.14
Received on Sat Nov 07 2009 - 02:15:58 MST

This archive was generated by hypermail 2.2.0 : Sat Nov 07 2009 - 12:00:03 MST