]> git.ipfire.org Git - thirdparty/squid.git/blob - src/ExternalACLEntry.h
Merged from trunk
[thirdparty/squid.git] / src / ExternalACLEntry.h
1
2 /*
3 * DEBUG: section 82 External ACL
4 * AUTHOR: Henrik Nordstrom, MARA Systems AB
5 *
6 * SQUID Web Proxy Cache http://www.squid-cache.org/
7 * ----------------------------------------------------------
8 *
9 * The contents of this file is Copyright (C) 2002 by MARA Systems AB,
10 * Sweden, unless otherwise is indicated in the specific function. The
11 * author gives his full permission to include this file into the Squid
12 * software product under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * Squid is the result of efforts by numerous individuals from
17 * the Internet community; see the CONTRIBUTORS file for full
18 * details. Many organizations have provided support for Squid's
19 * development; see the SPONSORS file for full details. Squid is
20 * Copyrighted (C) 2001 by the Regents of the University of
21 * California; see the COPYRIGHT file for full details. Squid
22 * incorporates software developed and/or copyrighted by other
23 * sources; see the CREDITS file for full details.
24 *
25 * This program is free software; you can redistribute it and/or modify
26 * it under the terms of the GNU General Public License as published by
27 * the Free Software Foundation; either version 2 of the License, or
28 * (at your option) any later version.
29 *
30 * This program is distributed in the hope that it will be useful,
31 * but WITHOUT ANY WARRANTY; without even the implied warranty of
32 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
33 * GNU General Public License for more details.
34 *
35 * You should have received a copy of the GNU General Public License
36 * along with this program; if not, write to the Free Software
37 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
38 *
39 * Copyright (c) 2003, Robert Collins <robertc@squid-cache.org>
40 */
41
42 #ifndef SQUID_EXTERNALACLENTRY_H
43 #define SQUID_EXTERNALACLENTRY_H
44
45 #include "acl/Acl.h"
46 #include "cbdata.h"
47
48 class external_acl;
49 /******************************************************************
50 * ExternalACLEntryData
51 * Core data that ExternalACLEntry manages.
52 * Not meant to be used as remote storage at any point:
53 * stack or static or composition use only.
54 */
55
56 class ExternalACLEntryData
57 {
58
59 public:
60 ExternalACLEntryData() : result(ACCESS_DUNNO) {}
61
62 allow_t result;
63 #if USE_AUTH
64 // TODO use an AuthUser to hold this info
65 String user;
66 String password;
67 #endif
68 String message;
69 String tag;
70 String log;
71 };
72
73 /*******************************************************************
74 * external_acl cache entry
75 * Used opaqueue in the interface
76 */
77
78 class ExternalACLEntry: public hash_link
79 {
80
81 public:
82 void *operator new (size_t bytesToAllocate);
83 void operator delete (void *address);
84
85 ExternalACLEntry();
86 ~ExternalACLEntry();
87
88 void update(ExternalACLEntryData const &);
89 dlink_node lru;
90 allow_t result;
91 time_t date;
92 #if USE_AUTH
93 String user;
94 String password;
95 #endif
96 String message;
97 String tag;
98 String log;
99 external_acl *def;
100
101 private:
102 CBDATA_CLASS(ExternalACLEntry);
103 };
104
105 typedef class ExternalACLEntry external_acl_entry;
106
107 #endif