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