From: wessels <> Date: Thu, 12 Nov 1998 13:33:31 +0000 (+0000) Subject: prefer_direct option to prefer parents instead of direct X-Git-Tag: SQUID_3_0_PRE1~2532 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9b0946673406f4718461bd78f67d3abab94f8208;p=thirdparty%2Fsquid.git prefer_direct option to prefer parents instead of direct --- diff --git a/src/cf.data.pre b/src/cf.data.pre index 5b4daeae26..35f3b135d0 100644 --- a/src/cf.data.pre +++ b/src/cf.data.pre @@ -1,6 +1,6 @@ # -# $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/ @@ -2693,4 +2693,19 @@ DOC_START 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 diff --git a/src/peer_select.cc b/src/peer_select.cc index 9f67b6b6c7..7f5d694bbf 100644 --- a/src/peer_select.cc +++ b/src/peer_select.cc @@ -1,6 +1,6 @@ /* - * $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 @@ -384,7 +384,7 @@ peerSelectFoo(ps_state * psstate) 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); @@ -393,6 +393,11 @@ peerSelectFoo(ps_state * psstate) 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); diff --git a/src/structs.h b/src/structs.h index 76966b7a9b..7bd7538dfb 100644 --- a/src/structs.h +++ b/src/structs.h @@ -1,6 +1,6 @@ /* - * $Id: structs.h,v 1.247 1998/11/12 06:28:29 wessels Exp $ + * $Id: structs.h,v 1.248 1998/11/12 06:33:33 wessels Exp $ * * * SQUID Internet Object Cache http://squid.nlanr.net/Squid/ @@ -338,6 +338,7 @@ struct _SquidConfig { int offline; int redir_rewrites_host; int persistent_client_posts; + int prefer_direct; } onoff; acl *aclList; struct {