/*
- * Copyright (C) 1996-2014 The Squid Software Foundation and contributors
+ * Copyright (C) 1996-2017 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/IntRange.h"
#include "cache_cf.h"
+#include "ConfigParser.h"
#include "Debug.h"
+#include "fatal.h"
#include "Parsing.h"
-/* explicit instantiation required for some systems */
-/** \cond AUTODOCS_IGNORE */
-template cbdata_type CbDataList< Range<int> >::CBDATA_CbDataList;
-/** \endcond */
-
void
ACLIntRange::parse()
{
- char *a;
-
- while ((a = strtokFile())) {
+ while (char *a = ConfigParser::strtokFile()) {
char *b = strchr(a, '-');
unsigned short port1, port2;
port2 = port1;
if (port2 >= port1) {
- RangeType temp (0,0);
- temp.start = port1;
- temp.end = port2+1;
+ RangeType temp(port1, port2+1);
ranges.push_back(temp);
} else {
debugs(28, DBG_CRITICAL, "ACLIntRange::parse: Invalid port value");
bool
ACLIntRange::match(int i)
{
- RangeType const toFind (i, i+1);
- CbDataListIterator<RangeType> iter(ranges);
-
- while (!iter.end()) {
- const RangeType & element = iter.next();
- RangeType result = element.intersection (toFind);
+ RangeType const toFind(i, i+1);
+ for (std::list<RangeType>::const_iterator iter = ranges.begin(); iter != ranges.end(); ++iter) {
+ const RangeType & element = *iter;
+ RangeType result = element.intersection(toFind);
if (result.size())
return true;
if (!ranges.empty())
fatal("ACLIntRange::clone: attempt to clone used ACL");
- return new ACLIntRange (*this);
+ return new ACLIntRange(*this);
}
ACLIntRange::~ACLIntRange()
ACLIntRange::dump() const
{
SBufList sl;
- CbDataListIterator<RangeType> iter(ranges);
-
- while (!iter.end()) {
+ for (std::list<RangeType>::const_iterator iter = ranges.begin(); iter != ranges.end(); ++iter) {
SBuf sb;
- const RangeType & element = iter.next();
+ const RangeType & element = *iter;
if (element.size() == 1)
sb.Printf("%d", element.start);