-#ifndef SQUID_ACLDENYINFOLIST_H_
-#define SQUID_ACLDENYINFOLIST_H_
/*
- * DEBUG: section
- * AUTHOR:
- *
- * SQUID Web Proxy Cache http://www.squid-cache.org/
- * ----------------------------------------------------------
- *
- * Squid is the result of efforts by numerous individuals from
- * the Internet community; see the CONTRIBUTORS file for full
- * details. Many organizations have provided support for Squid's
- * development; see the SPONSORS file for full details. Squid is
- * Copyrighted (C) 2001 by the Regents of the University of
- * California; see the COPYRIGHT file for full details. Squid
- * incorporates software developed and/or copyrighted by other
- * sources; see the CREDITS file for full details.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
+ * 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.
+ * Please see the COPYING and CONTRIBUTORS files for details.
*/
+#ifndef SQUID_ACLDENYINFOLIST_H_
+#define SQUID_ACLDENYINFOLIST_H_
+
+#include "acl/forward.h"
#include "err_type.h"
-#include "acl/AclNameList.h"
+#include "errorpage.h"
+#include "mem/forward.h"
+#include "sbuf/forward.h"
+
+/// deny_info representation. Currently a POD.
+class AclDenyInfoList
+{
+ MEMPROXY_CLASS(AclDenyInfoList);
-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_ */
+