/*
- * Copyright (C) 1996-2016 The Squid Software Foundation and contributors
+ * Copyright (C) 1996-2020 The Squid Software Foundation and contributors
*
* Squid software is distributed under GPLv2+ license and includes
* contributions from numerous individuals and organizations.
CBDATA_NAMESPACED_CLASS_INIT(Acl, Tree);
-allow_t
+Acl::Answer
Acl::Tree::winningAction() const
{
return actionAt(lastMatch_ - nodes.begin());
}
-allow_t
+Acl::Answer
Acl::Tree::lastAction() const
{
if (actions.empty())
}
/// computes action that corresponds to the position of the matched rule
-allow_t
+Acl::Answer
Acl::Tree::actionAt(const Nodes::size_type pos) const
{
assert(pos < nodes.size());
}
void
-Acl::Tree::add(ACL *rule, const allow_t &action)
+Acl::Tree::add(ACL *rule, const Acl::Answer &action)
{
// either all rules have actions or none
assert(nodes.size() == actions.size());
InnerNode::add(rule);
}
-SBufList
-Acl::Tree::treeDump(const char *prefix, const ActionToString &convert) const
-{
- SBufList text;
- Actions::const_iterator action = actions.begin();
- typedef Nodes::const_iterator NCI;
- for (NCI node = nodes.begin(); node != nodes.end(); ++node) {
-
- text.push_back(SBuf(prefix));
-
- if (action != actions.end()) {
- const char *act = convert ? convert[action->kind] :
- (*action == ACCESS_ALLOWED ? "allow" : "deny");
- text.push_back(act?SBuf(act):SBuf("???"));
- ++action;
- }
-
-#if __cplusplus >= 201103L
- text.splice(text.end(), (*node)->dump());
-#else
- // temp is needed until c++11 move constructor
- SBufList temp = (*node)->dump();
- text.splice(text.end(), temp);
-#endif
- text.push_back(SBuf("\n"));
- }
- return text;
-}
-
bool
Acl::Tree::bannedAction(ACLChecklist *checklist, Nodes::const_iterator node) const
{