[squid-users] Annotating transaction from inside ICAP

Alex Rousskov rousskov at measurement-factory.com
Wed Oct 2 19:21:18 UTC 2019


On 10/2/19 2:51 PM, johnr wrote:

> I was wondering how / if it was possible to annotate a request from 
> within an ICAP service.

A long-term solution requires two steps:

1. Modify your ICAP service to return a custom ICAP response header.

2. Modify Squid to treat ICAP response headers (with names listed in a
new squid.conf directive) as master transaction annotations.

Squid eCAP implementation already treats eCAP response metadata as
annotations, but there is no such code in ICAP yet IIRC. The ICAP use
case is complicated by the fact that not all ICAP response headers
should become annotations by default, but it is not very difficult to
add this configuration support (and it can be useful for eCAP
transactions as a way to tell Squid whether the metadata should annotate
the connection or just the current master transaction.


> My use-case is that I would like to add a note with information about
> the request that is then available for use within external helpers. I
> believe I can do a similar type of information share by setting HTTP
> headers from within ICAP and reading them from the external helpers,
> but that seems to be a bit more clunky of an approach.

Exactly. This workaround requires adapting the HTTP message (an
expensive and sometimes dangerous operation) as well as removing the
customer headers from outgoing messages using request_header_access (or
reply_header_access).


HTH,

Alex.



More information about the squid-users mailing list