2 * Copyright (C) 1996-2023 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/FilledChecklist.h"
13 #include "acl/TransactionInitiator.h"
15 #include "debug/Stream.h"
16 #include "HttpRequest.h"
17 #include "MasterXaction.h"
18 #include "SquidConfig.h"
20 Acl::TransactionInitiator::TransactionInitiator (const char *aClass
) : class_ (aClass
), initiators_(0)
24 Acl::TransactionInitiator::typeString() const
30 Acl::TransactionInitiator::empty () const
36 Acl::TransactionInitiator::parse()
38 while (const char *s
= ConfigParser::strtokFile()) {
39 initiators_
|= XactionInitiator::ParseInitiators(s
);
40 cfgWords
.push_back(SBuf(s
));
45 Acl::TransactionInitiator::match(ACLChecklist
*checklist
)
47 ACLFilledChecklist
*filled
= Filled((ACLChecklist
*)checklist
);
48 assert(filled
->request
);
49 assert(filled
->request
->masterXaction
);
50 const XactionInitiator requestInitiator
= filled
->request
->masterXaction
->initiator
;
51 return requestInitiator
.in(initiators_
) ? 1 : 0;
55 Acl::TransactionInitiator::dump() const