]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Enumerate all ACL results for always_direct/never_direct.
authorAmos Jeffries <squid3@treenet.co.nz>
Sun, 18 Sep 2011 00:54:22 +0000 (12:54 +1200)
committerAmos Jeffries <squid3@treenet.co.nz>
Sun, 18 Sep 2011 00:54:22 +0000 (12:54 +1200)
Some ACLs (ie random) produce DUNNO state. This avoids incorrect messages
now and on future states.

src/peer_select.cc

index 626cfa0423a5d440c82bc3bfe7e04b1409d6d65e..209bb6d7607a983a286b844dbcf8f6816533d7a9 100644 (file)
@@ -182,10 +182,13 @@ peerCheckNeverDirectDone(allow_t answer, void *data)
         debugs(44, 3, HERE << "direct = " << DirectStr[psstate->direct] << " (never_direct allow)");
         break;
     case ACCESS_DENIED: // not relevant.
+    case ACCESS_DUNNO:  // not relevant.
         break;
-    default: // Oops. Failed to get a result.
+    case ACCESS_AUTH_REQUIRED:
+    case ACCESS_AUTH_EXPIRED_OK:
+    case ACCESS_AUTH_EXPIRED_BAD:
         debugs(44, DBG_IMPORTANT, "WARNING: never_direct resulted in " << answer << ". Username ACLs are not reliable here.");
-        assert(answer != ACCESS_DUNNO);
+        break;
     }
     peerSelectFoo(psstate);
 }
@@ -204,10 +207,13 @@ peerCheckAlwaysDirectDone(allow_t answer, void *data)
         debugs(44, 3, HERE << "direct = " << DirectStr[psstate->direct] << " (always_direct allow)");
         break;
     case ACCESS_DENIED: // not relevant.
+    case ACCESS_DUNNO:  // not relevant.
         break;
-    default: // Oops. Failed to get a result.
+    case ACCESS_AUTH_REQUIRED:
+    case ACCESS_AUTH_EXPIRED_OK:
+    case ACCESS_AUTH_EXPIRED_BAD:
         debugs(44, DBG_IMPORTANT, "WARNING: always_direct resulted in " << answer << ". Username ACLs are not reliable here.");
-        assert(answer != ACCESS_DUNNO);
+        break;
     }
     peerSelectFoo(psstate);
 }