This project aims at having a fully functional ICAP client immplementation
within Squid, allowing Squid to seamlessly be extended with new functions
such as content filtering, virus scanning, content adaptation etc without
having to change Squid for each extension.
- Only two of four vectoring points implemented
- Only the respmod_precache and
reqmod_precache vectoring points are implemented.
- non-HTTP requests
- Most vectoring points only work for HTTP requests, not ftp/gopher
- REQMOD parsing of modified request
- The parsing of REQMOD modified request is still far from optimal.
It is very sensitive to errors.
- REQMOD Preview
- ICAP preview support requires further testing and development.
- Filter hop-by-hop header headers (4.4)
- Hop-by-hop headers should not be sent to the ICAP server, and
ICAP responses should not impact hop-by-hop properties other than
by the nature of the response (i.e. if no content-length then
HTTP/1.0 keep-alive can not be used)
- 2003-12-05 Bypass and X-Authenticated-User
- Bypass feature implemented. Added X-Authenticated-User patch
from GaŽl Roualland.
- 2003-11-14 RESPMOD and fragmented response headers
- RESPMOD does not deal proper with fragmented response headers
(where all headers is not immediately available). Instead it sends
the headers chunked to the ICAP server which it MUST NOT (8.2)
- 2003-10-29 REQMOD with message bodies
- Squid now supports sending request entities (e.g., POST bodies)
to the ICAP server.
- 2003-10-23 HTTP response to REQMOD
- Squid once again accepts HTTP responses in REQMOD replies.
- 2003-10-15 Persistent Connections
- Support for using persistent connections to the ICAP server.
- 2003-09-22 Stability improvements
- Somewhat significant changes to the ICAP implementation.
In particular, there are now fewer calls between ICAP functions and
"http.c" and "client_side.c" functions. The reason is that those
other modules are ill-equipped to handle ICAP and it is awkward to
hack it in. The downside is that there is now more code duplication.
The icap.c file has been split into icap_reqmod.c, icap_respmod.c,
The REQMOD vectoring point has been changed from postcache to
All ICAP requests are now sent "streaming" to the ICAP server. That is,
data is sent to the ICAP server as soon as it is available in Squid.
Support for ICAP 204 (no content) responses.
- 2003-09-13 2.5 branch merge
- Merged this branch with the latest 2.5 branch code. Only
significant change to note was the removal of MemObject->fd.
- 2002-06-26 REQMOD and cache peers
- REQMOD now works with cache peers.
- 2002-06-03 REQMOD uses full URL
- REQMOD now sends the full URL in the forwarded request line.
This eleminates the need to configure Squid for transparent proxying
for REQMOD to function.
- 2002-05-09 Attempt at fixing REQMOD
- The implementation of REQMOD has several issues in how it reads
the modified request from the ICAP server. Not yet fully operational.
- 2002-04-07 Cosmetic cleanups
- Some cosmetic cleanup to make the code look more like normal
Squid code. (Prototype cleanups, removed the ICAP_FIELD macro)
- 2002-04-04 ICAP client 1.2.1 imported
- The ICAP client 1.2.1 sources have been imported into the Squid
developer CVS tree for continued development and updated to match
For a current release, download the diff or checkout the
source from the anonymous CVS server using the icap-2_5
branch. Also look for tarballs to be periodically posted here.
The Old Squid ICAP Client, which you probably don't want to use, can be found at
./configure --enable-icap-support ...
Add ICAP configuration to squid.conf:
#icap_service s1 reqmod_precache 0 icap://172.16.43.39/reqmod
icap_service s1 respmod_precache 0 icap://172.16.43.39/respmod
icap_class c1 s1
acl HTTP proto HTTP
acl GET method GET
icap_access c1 allow HTTP GET
- Old Installation instructions
- RFC 3507
$Id: index.html,v 1.13 2004/04/05 17:40:30 dwsquid Exp $