Index: squid/src/cf.data.pre diff -c squid/src/cf.data.pre:1.245.2.84 squid/src/cf.data.pre:1.245.2.85 *** squid/src/cf.data.pre:1.245.2.84 Thu Feb 10 03:07:05 2005 --- squid/src/cf.data.pre Tue Feb 22 17:06:34 2005 *************** *** 3249,3254 **** --- 3249,3265 ---- takes place if Squid fails to get a satisfying response. DOC_END + NAME: retry_on_error + TYPE: onoff + LOC: Config.retry.onerror + DEFAULT: off + DOC_START + If set to on Squid will automatically retry requests when + receiving an error response. This is mainly useful if you + are in a complex cache hierarchy to work around access + control errors. + DOC_END + NAME: snmp_port TYPE: ushort LOC: Config.Port.snmp Index: squid/src/forward.c diff -c squid/src/forward.c:1.82.2.13 squid/src/forward.c:1.82.2.14 *** squid/src/forward.c:1.82.2.13 Tue Oct 5 16:34:42 2004 --- squid/src/forward.c Tue Feb 22 17:06:35 2005 *************** *** 837,849 **** fwdReforwardableStatus(http_status s) { switch (s) { case HTTP_FORBIDDEN: case HTTP_INTERNAL_SERVER_ERROR: case HTTP_NOT_IMPLEMENTED: - case HTTP_BAD_GATEWAY: case HTTP_SERVICE_UNAVAILABLE: ! case HTTP_GATEWAY_TIMEOUT: ! return 1; default: return 0; } --- 837,850 ---- fwdReforwardableStatus(http_status s) { switch (s) { + case HTTP_BAD_GATEWAY: + case HTTP_GATEWAY_TIMEOUT: + return 1; case HTTP_FORBIDDEN: case HTTP_INTERNAL_SERVER_ERROR: case HTTP_NOT_IMPLEMENTED: case HTTP_SERVICE_UNAVAILABLE: ! return Config.retry.onerror; default: return 0; } Index: squid/src/structs.h diff -c squid/src/structs.h:1.408.2.36 squid/src/structs.h:1.408.2.37 *** squid/src/structs.h:1.408.2.36 Thu Feb 3 17:30:01 2005 --- squid/src/structs.h Tue Feb 22 17:06:35 2005 *************** *** 657,662 **** --- 657,663 ---- char *errorDirectory; struct { int maxtries; + int onerror; } retry; struct { size_t limit;