2 * Copyright (C) 1996-2017 The Squid Software Foundation and contributors
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.
9 /* DEBUG: section 28 Access Control */
12 #include "acl/TransactionInitiator.h"
13 #include "acl/FilledChecklist.h"
16 #include "HttpRequest.h"
17 #include "MasterXaction.h"
18 #include "SquidConfig.h"
21 Acl::TransactionInitiator::clone() const
23 return new Acl::TransactionInitiator(*this);
26 Acl::TransactionInitiator::TransactionInitiator (const char *aClass
) : class_ (aClass
), initiators_(0)
30 Acl::TransactionInitiator::typeString() const
36 Acl::TransactionInitiator::empty () const
42 Acl::TransactionInitiator::parse()
44 while (const char *s
= ConfigParser::strtokFile()) {
45 initiators_
|= XactionInitiator::ParseInitiators(s
);
46 cfgWords
.push_back(SBuf(s
));
51 Acl::TransactionInitiator::match(ACLChecklist
*checklist
)
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;
61 Acl::TransactionInitiator::dump() const