]> git.ipfire.org Git - thirdparty/squid.git/blobdiff - src/acl/UserData.cc
Source Format Enforcement (#763)
[thirdparty/squid.git] / src / acl / UserData.cc
index bd1b7e0875360838d703541d3fc10196a21691e8..13c639b64a94d5ef7962e5c443c941aa461684ac 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1996-2014 The Squid Software Foundation and contributors
+ * Copyright (C) 1996-2021 The Squid Software Foundation and contributors
  *
  * Squid software is distributed under GPLv2+ license and includes
  * contributions from numerous individuals and organizations.
 #include "ConfigParser.h"
 #include "Debug.h"
 #include "globals.h"
+#include "sbuf/Algorithms.h"
 #include "util.h"
-#include "SBufAlgos.h"
 
-ACLUserData::~ACLUserData()
+const Acl::ParameterFlags &
+ACLUserData::supportedFlags() const
 {
+    static const Acl::ParameterFlags flagNames = { "-i", "+i" };
+    return flagNames;
 }
 
 bool
@@ -44,25 +47,41 @@ ACLUserData::dump() const
 {
     SBufList sl;
 
-    if (flags.case_insensitive)
-        sl.push_back(SBuf("-i"));
-
     if (flags.required) {
         sl.push_back(SBuf("REQUIRED"));
-    } else {
-        sl.insert(sl.end(), userDataNames.begin(), userDataNames.end());
+        return sl;
     }
 
-    debugs(28,5, "ACLUserData dump output: " << SBufContainerJoin(userDataNames,SBuf(" ")));
+    if (flags.case_insensitive)
+        sl.push_back(SBuf("-i"));
+
+    sl.insert(sl.end(), userDataNames.begin(), userDataNames.end());
+
+    debugs(28,5, "ACLUserData dump output: " <<
+           JoinContainerToSBuf(userDataNames.begin(), userDataNames.end(),
+                               SBuf(" ")));
     return sl;
 }
 
+static bool
+CaseSensitiveSBufCompare(const SBuf &lhs, const SBuf &rhs)
+{
+    return (lhs.cmp(rhs) < 0);
+}
+
 static bool
 CaseInsensitveSBufCompare(const SBuf &lhs, const SBuf &rhs)
 {
     return (lhs.caseCmp(rhs) < 0);
 }
 
+ACLUserData::ACLUserData() :
+    userDataNames(CaseSensitiveSBufCompare)
+{
+    flags.case_insensitive = false;
+    flags.required = false;
+}
+
 void
 ACLUserData::parse()
 {