From: Amos Jeffries Date: Sun, 18 Sep 2011 00:54:22 +0000 (+1200) Subject: Enumerate all ACL results for always_direct/never_direct. X-Git-Tag: BumpSslServerFirst.take01~145 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1f585949e0409635007873768689a4ae3489a085;p=thirdparty%2Fsquid.git Enumerate all ACL results for always_direct/never_direct. Some ACLs (ie random) produce DUNNO state. This avoids incorrect messages now and on future states. --- diff --git a/src/peer_select.cc b/src/peer_select.cc index 626cfa0423..209bb6d760 100644 --- a/src/peer_select.cc +++ b/src/peer_select.cc @@ -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); }