[PATCH] Support libecap v0.2.0; fixed eCAP body handling and logging

From: Alex Rousskov <rousskov_at_measurement-factory.com>
Date: Sun, 20 Feb 2011 22:38:34 -0700

Hello,

    The eCAP project recently released two new versions of the eCAP
library, with several important features added. The attached patch adds
Squid support for the latest libecap v0.2.0 and fixes a few bugs we
found along the way. I will summarize the changes below. My
lp:~rousskov/squid/3p2-ecap branch contains detailed messages for these
changes.

The new eCAP features revolve around adapter configuration (similar to
ICAP OPTIONS exchange) and transaction meta-information (similar to ICAP
message headers, not to be confused with ICAP-encapsulated HTTP
headers). There is also request satisfaction and message blocking
support. These features are needed for many adaptation projects. For
example, with these additions, we were able to write a ClamAV virus
scanning adapter (to be published after this work is completed).

Summary of changes:

libecap v0.2.0 support: accept/update/log eCAP transaction meta-info.
libecap v0.2.0 support: supply client IP and username to eCAP adapter.
libecap v0.1.0 support: Support blockVirgin() API with ERR_ACCESS_DENIED

Use pkg-config's PKG_CHECK_MODULES to check for and link with libecap.

Support adapter-specific parameters as a part of ecap_service
configuration. Allow uri=value parameter when specifying adaptation
service URIs.

Fixed virgin body handling in our eCAP transaction wrapper
(Ecap::XactionRep). Fixed BodyPipe.cc:144 "!theConsumer" assertion.

Log "important" messages from eCAP adapters with DBG_IMPORTANT not DBG_DATA!

Added XXXs to identify old unrelated problems to be fixed separately.

Thank you,

Alex.

Received on Mon Feb 21 2011 - 05:38:45 MST

This archive was generated by hypermail 2.2.0 : Mon Feb 21 2011 - 12:00:04 MST