Index: squid/src/neighbors.c diff -c squid/src/neighbors.c:1.299.2.2 squid/src/neighbors.c:1.299.2.3 *** squid/src/neighbors.c:1.299.2.2 Tue Aug 27 22:41:16 2002 --- squid/src/neighbors.c Tue Aug 12 18:28:19 2003 *************** *** 430,435 **** --- 430,436 ---- int peers_pinged = 0; int parent_timeout = 0, parent_exprep = 0; int sibling_timeout = 0, sibling_exprep = 0; + int mcast_timeout = 0, mcast_exprep = 0; if (Config.peers == NULL) return 0; *************** *** 490,496 **** * says a multicast peer is dead. */ p->stats.last_reply = squid_curtime; ! (*exprep) += p->mcast.n_replies_expected; } else if (neighborUp(p)) { /* its alive, expect a reply from it */ if (neighborType(p, request) == PEER_PARENT) { --- 491,498 ---- * says a multicast peer is dead. */ p->stats.last_reply = squid_curtime; ! mcast_exprep += p->mcast.n_replies_expected; ! mcast_timeout += (p->stats.rtt * p->mcast.n_replies_expected); } else if (neighborUp(p)) { /* its alive, expect a reply from it */ if (neighborType(p, request) == PEER_PARENT) { *************** *** 551,557 **** /* * How many replies to expect? */ ! *exprep = parent_exprep + sibling_exprep; /* * If there is a configured timeout, use it --- 553,559 ---- /* * How many replies to expect? */ ! *exprep = parent_exprep + sibling_exprep + mcast_exprep; /* * If there is a configured timeout, use it *************** *** 562,567 **** --- 564,571 ---- if (*exprep> 0) { if (parent_exprep) *timeout = 2 * parent_timeout / parent_exprep; + else if (mcast_exprep) + *timeout = 2 * mcast_timeout / mcast_exprep; else *timeout = 2 * sibling_timeout / sibling_exprep; } else

AltStyle によって変換されたページ (->オリジナル) /