]> git.ipfire.org Git - thirdparty/squid.git/blobdiff - src/acl/AclDenyInfoList.h
Source Format Enforcement (#532)
[thirdparty/squid.git] / src / acl / AclDenyInfoList.h
index e5b49ab443dc30461d6f02a6b846173ac60d8c34..003030df1738af8b307b138280635c301f21ca1d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1996-2014 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.
@@ -9,18 +9,35 @@
 #ifndef SQUID_ACLDENYINFOLIST_H_
 #define SQUID_ACLDENYINFOLIST_H_
 
+#include "acl/forward.h"
 #include "err_type.h"
-
-class AclNameList;
+#include "errorpage.h"
+#include "mem/forward.h"
+#include "sbuf/forward.h"
 
 /// deny_info representation. Currently a POD.
 class AclDenyInfoList
 {
+    MEMPROXY_CLASS(AclDenyInfoList);
+
 public:
-    err_type err_page_id;
-    char *err_page_name;
-    AclNameList *acl_list;
-    AclDenyInfoList *next;
+    AclDenyInfoList(const char *t, const SBuf &aCfgLocation) {
+        err_page_name = xstrdup(t);
+        err_page_id = errorReservePageId(t, aCfgLocation);
+    }
+    ~AclDenyInfoList() {
+        xfree(err_page_name);
+        while (next) {
+            auto *a = next;
+            next = a->next;
+            a->next = nullptr;
+            delete a;
+        }
+    }
+    err_type err_page_id = ERR_NONE;
+    char *err_page_name = nullptr;
+    SBufList acl_list; ///< ACL names in configured order
+    AclDenyInfoList *next = nullptr;
 };
 
 #endif /* SQUID_ACLDENYINFOLIST_H_ */