On 08/14/2013 01:54 AM, Henrik Nordström wrote:
> tis 2013-08-13 klockan 16:01 -0600 skrev Alex Rousskov:
>>  
>>> the urltag approach used in squid-2 could be used here as general
>>> mechanism. It allows http_port or external_acl to add a piece to the
>>> object key.
>>>
>>> This allows splitting cache based on
>>> - port received on
>>> - username
>>> - arbitrary group of IP addresses
>>> - anything else that you can come up with in an external acl
>>
>> Can Store ID be used for this? If the Store ID helper has access to
>> receiving port, user name, IP addresses, etc, the helper can manipulate
>> the store key as needed without any Squid modifications, right?

> Yes. And if it can receive the http_port name then it fully replaces
> urltag from squid-2 in functionality.


store_id_program already documents that the helper may receive arbitrary
key=value pairs. We just need to add a way to configure what additional
info to send to that helper, using the existing %macro mechanism. Adding
something like a store_id_extras directive should do the trick. It would
be similar to request_header_add (with modern quoting),
external_acl_type (with a custom subset of %macros and legacy quoting)
and logformat directives (with legacy quoting):

    store_id_extras user="%un" port="%>lp_name" ...


IIRC, there is %>lp but no %>lp_name macro yet. We should add it.


The same changes should apply to the url_rewrite_program helper.


HTH,

Alex.

Reply via email to