File 10836.patch of Package squid-beta

---------------------
PatchSet 10836 
Date: 2007/05/30 20:22:30
Author: rousskov
Branch: HEAD
Tag: (none) 
Log:
Bug #1976 fix: Do not check OPTIONS response specifics if the response
is invalid in some way. Squid should now handle 404 Not Found and other
"invalid" ICAP OPTIONS responses by marking the ICAP service down.

OPTIONS error setting needs more work, but reporting the last error should
work for now.

Thanks to Christos Tsantilas for reporting and investigating this bug.

Members: 
	src/ICAP/ICAPServiceRep.cc:1.14->1.15 

Index: squid3/src/ICAP/ICAPServiceRep.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/ICAP/ICAPServiceRep.cc,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- squid3/src/ICAP/ICAPServiceRep.cc	29 May 2007 13:31:44 -0000	1.14
+++ squid3/src/ICAP/ICAPServiceRep.cc	30 May 2007 20:22:30 -0000	1.15
@@ -354,6 +354,12 @@
     if (theOptions == NULL)
         return;
 
+    if (!theOptions->valid()) {
+        debugs(93,1, "WARNING: Squid got an invalid ICAP OPTIONS response " <<
+            "from service " << uri << "; error: " << theOptions->error);
+        return;
+    }
+
     /*
      * Issue a warning if the ICAP server returned methods in the
      * options response that don't match the method from squid.conf.