From: Amos Jeffries Date: Sun, 19 May 2013 03:45:03 +0000 (-0600) Subject: Remove origin_tries limiter on forwarding X-Git-Tag: SQUID_3_2_12~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d79f2127415227ff2e7bfeba2449abfe21ffa70d;p=thirdparty%2Fsquid.git Remove origin_tries limiter on forwarding This limit seems to have been set to prevent large amount of looping when DIRECT attempts fail under the old model of constant DNS lookups and retries. However it is hard-coded and has no configuration knob visible. Under the curent model of all destinations being enumerated once and tried sequentially this protection would seem to be no longer necessary and somewhat harmful as it will be preventing retries reaching destinations with more than 2 unreachable IPs (think 3 IPv6 and an IPv4 on IPv4-only network). --- diff --git a/src/forward.cc b/src/forward.cc index 9b25cb2e6c..b261886b58 100644 --- a/src/forward.cc +++ b/src/forward.cc @@ -518,9 +518,6 @@ FwdState::checkRetry() if (n_tries > Config.forward_max_tries) return false; - if (origin_tries > 2) - return false; - if (squid_curtime - start_t > Config.Timeout.forward) return false; @@ -940,9 +937,6 @@ FwdState::connectStart() debugs(17, 3, HERE << "reusing pconn " << serverConnection()); ++n_tries; - if (!serverConnection()->getPeer()) - ++origin_tries; - comm_add_close_handler(serverConnection()->fd, fwdServerClosedWrapper, this); /* Update server side TOS and Netfilter mark on the connection. */ @@ -1131,9 +1125,6 @@ FwdState::reforward() if (n_tries > Config.forward_max_tries) return 0; - if (origin_tries > 1) - return 0; - if (request->bodyNibbled()) return 0; diff --git a/src/forward.h b/src/forward.h index f2d0fbf2fc..c8b8d9129a 100644 --- a/src/forward.h +++ b/src/forward.h @@ -97,7 +97,6 @@ private: Comm::ConnectionPointer clientConn; ///< a possibly open connection to the client. time_t start_t; int n_tries; - int origin_tries; // AsyncCalls which we set and may need cancelling. struct {