<p>The most important of these new features are:
<itemize>
- <item>
+ <item>Cache Manager changes
</itemize>
-Most user-facing changes are reflected in squid.conf (see below).
+<p>Most user-facing changes are reflected in squid.conf (see further below).
+<sect1>Cache Manager changes<label id="mgr">
+<p>For more information about the Cache Manager feature, see <url url="https://wiki.squid-cache.org/Features/CacheManager/Index" name="wiki">.
+
+<p>
+<descrip>
+ <tag>non_peers</tag>
+ <p>Removed the <em>mgr:non_peers</em> report. Squid still ignores
+ unexpected ICP responses but no longer remembers the details that comprised
+ the removed report. The senders of these ICP messages are still reported to
+ cache.log at debugging level 1 (with an exponential backoff).
+
+</descrip>
<sect>Changes to squid.conf since Squid-@SQUID_RELEASE_OLD@
<p>
<tag>buffered_logs</tag>
<p>Honor the <em>off</em> setting in 'udp' access_log module.
+ <tag>cachemgr_passwd</tag>
+ <p>Removed the <em>non_peers</em> action. See the Cache Manager
+ <ref id="mgr" name="section"> for details.
+
</descrip>
<sect1>Removed directives<label id="removeddirectives">
/// cache_peer name (if explicitly configured) or hostname (otherwise).
/// Unique across already configured cache_peers in the current configuration.
- /// Not necessarily unique across discovered non-peers (see mgr:non_peers).
/// The value may change during CachePeer configuration.
/// The value affects various peer selection hashes (e.g., carp.hash).
/// Preserves configured spelling (i.e. does not lower letters case).
/// Never nil.
char *name = nullptr;
- /// The lowercase version of the configured cache_peer hostname or
- /// the IP address of a non-peer (see mgr:non_peers).
- /// May not be unique among cache_peers and non-peers.
+ /// The lowercase version of the configured cache_peer hostname.
+ /// May not be unique among cache_peers.
/// Never nil.
char *host = nullptr;
static void neighborIgnoreNonPeer(const Ip::Address &, icp_opcode);
static OBJH neighborDumpPeers;
-static OBJH neighborDumpNonPeers;
static void dump_peers(StoreEntry * sentry, CachePeer * peers);
static unsigned short echo_port;
Mgr::RegisterAction("server_list",
"Peer Cache Statistics",
neighborDumpPeers, 0, 1);
-
- if (Comm::IsConnOpen(icpIncomingConn)) {
- Mgr::RegisterAction("non_peers",
- "List of Unknown sites sending ICP messages",
- neighborDumpNonPeers, 0, 1);
- }
}
void
++NLateReplies;
}
-static CachePeer *non_peers = nullptr;
-
static void
neighborIgnoreNonPeer(const Ip::Address &from, icp_opcode opcode)
{
- CachePeer *np;
-
- for (np = non_peers; np; np = np->next) {
- if (np->in_addr != from)
- continue;
-
- if (np->in_addr.port() != from.port())
- continue;
-
- break;
- }
-
- if (np == nullptr) {
- char fromStr[MAX_IPSTRLEN];
- from.toStr(fromStr, sizeof(fromStr));
- np = new CachePeer(fromStr);
- np->in_addr = from;
- np->icp.port = from.port();
- np->type = PEER_NONE;
- np->next = non_peers;
- non_peers = np;
+ static uint64_t ignoredReplies = 0;
+ if (isPowTen(++ignoredReplies)) {
+ debugs(15, DBG_IMPORTANT, "WARNING: Ignored " << ignoredReplies << " ICP replies from non-peers" <<
+ Debug::Extra << "last seen non-peer source address: " << from <<
+ Debug::Extra << "last seen ICP reply opcode: " << icp_opcode_str[opcode]);
}
-
- ++ np->icp.counts[opcode];
-
- if (isPowTen(++np->stats.ignored_replies))
- debugs(15, DBG_IMPORTANT, "WARNING: Ignored " << np->stats.ignored_replies << " replies from non-peer " << *np);
}
/* ignoreMulticastReply
dump_peers(sentry, Config.peers);
}
-static void
-neighborDumpNonPeers(StoreEntry * sentry)
-{
- dump_peers(sentry, non_peers);
-}
-
void
dump_peer_options(StoreEntry * sentry, CachePeer * p)
{