#
-# $Id: cf.data.pre,v 1.124 1998/11/12 06:27:57 wessels Exp $
+# $Id: cf.data.pre,v 1.125 1998/11/12 06:33:31 wessels Exp $
#
#
# SQUID Internet Object Cache http://squid.nlanr.net/Squid/
additional CRLF pair from broken web clients.
persistent_client_posts on
DOC_END
+
+NAME: prefer_direct
+TYPE: onoff
+LOC: Config.onoff.prefer_direct
+DEFAULT: on
+DOC_START
+ By default, if the ICP, HTCP, Cache Digest, etc. techniques
+ do not yield a parent cache, Squid gives higher preference
+ to forwarding the request direct to origin servers, rather
+ than selecting a parent cache anyway.
+
+ If you want Squid to give higher precedence to a parent
+ cache, instead of going direct, then turn this option off.
+prefer_direct on
+DOC_END
EOF
/*
- * $Id: peer_select.cc,v 1.89 1998/11/12 06:28:19 wessels Exp $
+ * $Id: peer_select.cc,v 1.90 1998/11/12 06:33:32 wessels Exp $
*
* DEBUG: section 44 Peer Selection Algorithm
* AUTHOR: Duane Wessels
debug(44, 3) ("peerSelect: %s/%s\n", hier_strings[code], p->host);
hierarchyNote(&request->hier, code, &psstate->ping, p->host);
peerSelectCallback(psstate, p);
- } else if (direct != DIRECT_NO) {
+ } else if (Config.onoff.prefer_direct && direct != DIRECT_NO) {
code = DIRECT;
debug(44, 3) ("peerSelect: %s/%s\n", hier_strings[code], request->host);
hierarchyNote(&request->hier, code, &psstate->ping, request->host);
debug(44, 3) ("peerSelect: %s/%s\n", hier_strings[code], p->host);
hierarchyNote(&request->hier, code, &psstate->ping, p->host);
peerSelectCallback(psstate, p);
+ } else if (direct != DIRECT_NO) {
+ code = DIRECT;
+ debug(44, 3) ("peerSelect: %s/%s\n", hier_strings[code], request->host);
+ hierarchyNote(&request->hier, code, &psstate->ping, request->host);
+ peerSelectCallback(psstate, NULL);
} else {
code = NO_DIRECT_FAIL;
hierarchyNote(&request->hier, code, &psstate->ping, NULL);