]>
Commit | Line | Data |
---|---|---|
5ceaee75 | 1 | /* |
f6e9a3ee | 2 | * Copyright (C) 1996-2019 The Squid Software Foundation and contributors |
5ceaee75 CT |
3 | * |
4 | * Squid software is distributed under GPLv2+ license and includes | |
5 | * contributions from numerous individuals and organizations. | |
6 | * Please see the COPYING and CONTRIBUTORS files for details. | |
7 | */ | |
8 | ||
9 | /* DEBUG: section 28 Access Control */ | |
10 | ||
11 | #include "squid.h" | |
5ceaee75 | 12 | #include "acl/FilledChecklist.h" |
bf7af17b | 13 | #include "acl/TransactionInitiator.h" |
5ceaee75 CT |
14 | #include "cache_cf.h" |
15 | #include "Debug.h" | |
16 | #include "HttpRequest.h" | |
17 | #include "MasterXaction.h" | |
18 | #include "SquidConfig.h" | |
19 | ||
20 | ACL * | |
21 | Acl::TransactionInitiator::clone() const | |
22 | { | |
23 | return new Acl::TransactionInitiator(*this); | |
24 | } | |
25 | ||
26 | Acl::TransactionInitiator::TransactionInitiator (const char *aClass) : class_ (aClass), initiators_(0) | |
27 | {} | |
28 | ||
29 | char const * | |
30 | Acl::TransactionInitiator::typeString() const | |
31 | { | |
32 | return class_; | |
33 | } | |
34 | ||
35 | bool | |
36 | Acl::TransactionInitiator::empty () const | |
37 | { | |
38 | return false; | |
39 | } | |
40 | ||
41 | void | |
42 | Acl::TransactionInitiator::parse() | |
43 | { | |
44 | while (const char *s = ConfigParser::strtokFile()) { | |
45 | initiators_ |= XactionInitiator::ParseInitiators(s); | |
46 | cfgWords.push_back(SBuf(s)); | |
47 | } | |
48 | } | |
49 | ||
50 | int | |
51 | Acl::TransactionInitiator::match(ACLChecklist *checklist) | |
52 | { | |
53 | ACLFilledChecklist *filled = Filled((ACLChecklist*)checklist); | |
54 | assert(filled->request); | |
55 | assert(filled->request->masterXaction); | |
56 | const XactionInitiator requestInitiator = filled->request->masterXaction->initiator; | |
57 | return requestInitiator.in(initiators_) ? 1 : 0; | |
58 | } | |
59 | ||
60 | SBufList | |
61 | Acl::TransactionInitiator::dump() const | |
62 | { | |
63 | return cfgWords; | |
64 | } | |
65 |