/*
- * Copyright (C) 1996-2014 The Squid Software Foundation and contributors
+ * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
*
* Squid software is distributed under GPLv2+ license and includes
* contributions from numerous individuals and organizations.
#include "squid.h"
#include "acl/Checklist.h"
#include "acl/DomainData.h"
+#include "anyp/Uri.h"
#include "cache_cf.h"
-#include "Debug.h"
-#include "src/URL.h"
+#include "ConfigParser.h"
+#include "debug/Stream.h"
#include "util.h"
template<class T>
ACLDomainData::~ACLDomainData()
{
- if (domains)
+ if (domains) {
domains->destroy(xRefFree);
+ delete domains;
+ }
}
template<class T>
bool d3big = (strlen(d3) > strlen(d4)); // Always suggest removing the longer one.
debugs(28, DBG_IMPORTANT, "WARNING: '" << (d3big?d3:d4) << "' is a subdomain of '" << (d3big?d4:d3) << "'");
debugs(28, DBG_IMPORTANT, "WARNING: You should remove '" << (d3big?d3:d4) << "' from the ACL named '" << AclMatchedName << "'");
- debugs(28, 2, HERE << "Ignore '" << d3 << "' to keep splay tree searching predictable");
+ debugs(28, 2, "Ignore '" << d3 << "' to keep splay tree searching predictable");
}
} else if (ret == 0) {
// It may be an exact duplicate. No problem. Just drop.
bool
ACLDomainData::match(char const *host)
{
- if (host == NULL)
+ if (host == nullptr)
return 0;
debugs(28, 3, "aclMatchDomainList: checking '" << host << "'");
debugs(28, 3, "aclMatchDomainList: '" << host << "' " << (result ? "found" : "NOT found"));
- return (result != NULL);
+ return (result != nullptr);
}
struct AclDomainDataDumpVisitor {
void
ACLDomainData::parse()
{
- char *t = NULL;
-
if (!domains)
domains = new Splay<char *>();
- while ((t = strtokFile())) {
+ while (char *t = ConfigParser::strtokFile()) {
Tolower(t);
domains->insert(xstrdup(t), aclDomainCompare);
}
return domains->empty();
}
-ACLData<char const *> *
-ACLDomainData::clone() const
-{
- /* Splay trees don't clone yet. */
- assert (!domains);
- return new ACLDomainData;
-}
-