What ICAP client are you using? A custom written one?
The ICAP client controls the connection, not the server.
The client needs to know when all the bytes have been received it knows to continue with it's processing.
This is done so the client can use persistent connections without having to consume a limited number of connections.
Yes, it is a custom written ICAP client which has been built in java. So, am I correct in saying we need to have out client disconnect once it has received a response from the server?
Yes, the client is generally responsible for terminating the connection.
For example, if this were a heavily trafficed ICAP server, each client could maintain it's own pool of connections and re-use them without the TCP overhead of another connection. If the ICAP server terminated the TCP session after every scan, it would cause a serious bottleneck.
I don't know your identity or if I have ever spoken to you in real life, but did I ever give you my Java ICAP client? I use it in tomcat to scan uploaded files to an apache web server. It's very simple and not the best coding, but it's at least functional.
I have it posted here:
There is a link to the java .war file that has source code in it if you uzip the file.
no, never spoke to you before. Thats perfect, we will work on getting the ICAP client to clost the connection for us. Thanks!