File 10827.patch of Package squid-beta

---------------------
PatchSet 10827 
Date: 2007/05/22 17:43:40
Author: rousskov
Branch: HEAD
Tag: (none) 
Log:
Do not reuse a persistent ICAP connection if icap_persistent_connections in
squid.conf (i.e., TheICAPConfig.reuse_connections) is off. We were probably
not reusing before this change except shortly after reconfiguration and in
cases where an ICAP server does not respond with Connection: close when our
request has Connection: close.

Members: 
	src/ICAP/ICAPXaction.cc:1.17->1.18 

Index: squid3/src/ICAP/ICAPXaction.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/ICAP/ICAPXaction.cc,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- squid3/src/ICAP/ICAPXaction.cc	18 May 2007 16:56:18 -0000	1.17
+++ squid3/src/ICAP/ICAPXaction.cc	22 May 2007 17:43:40 -0000	1.18
@@ -6,6 +6,7 @@
 #include "comm.h"
 #include "HttpMsg.h"
 #include "ICAPXaction.h"
+#include "ICAPConfig.h"
 #include "TextException.h"
 #include "pconn.h"
 #include "fde.h"
@@ -102,6 +103,9 @@
 
     const ICAPServiceRep &s = service();
 
+    if (!TheICAPConfig.reuse_connections)
+        disableRetries(); // this will also safely drain pconn pool
+
     // TODO: check whether NULL domain is appropriate here
     connection = icapPconnPool->pop(s.host.c_str(), s.port, NULL, NULL, isRetriable);
     if (connection >= 0) {