Classes

class  AdaptationServiceCheck
 an "adaptation_service" ACL More...
 
class  Address
 list of address-based ACLs. More...
 
class  AllOf
 
class  AndNode
 
class  AnnotateClientCheck
 an "annotate_client" ACL More...
 
class  AnnotateTransactionCheck
 an "annotate_transaction" ACL More...
 
class  AnnotationCheck
 common parent of several ACLs dealing with transaction annotations More...
 
class  Answer
 
class  AnyOf
 Configurable any-of ACL. Each ACL line is a disjuction of ACLs. More...
 
class  AtStepCheck
 an "at_step" ACL More...
 
class  CertificateErrorCheck
 an "ssl_error" ACL More...
 
class  CharacterSetOption
 option value to configure one or more characters (e.g., -m=",;") More...
 
class  ChecklistFiller
 an interface for those capable of configuring an ACLFilledChecklist object More...
 
class  ClientCertificateCheck
 a "user_cert" or "ca_cert" ACL More...
 
class  ConnectionsEncrypted
 
class  ConnMark
 
class  CurrentTimeCheck
 a "time" ACL More...
 
class  DestinationAsnCheck
 a "dst_as" ACL More...
 
class  DestinationDomainCheck
 a "dstdomain" or "dstdom_regex" ACL More...
 
class  FinalizedParameterizedNode
 
class  HasComponentCheck
 a "has" ACL More...
 
class  HierCodeCheck
 a "hier_code" ACL More...
 
class  HttpRepHeaderCheck
 a "rep_header" ACL More...
 
class  HttpReqHeaderCheck
 a "req_header" ACL More...
 
class  InnerNode
 An intermediate Acl::Node tree node. Manages a collection of child tree nodes. More...
 
class  LocalPortCheck
 a "localport" ACL More...
 
class  MethodCheck
 a "method" ACL More...
 
class  MyPortNameCheck
 a "myportname" ACL More...
 
class  NamedAcls
 parsed "acl aclname ..." directives indexed by aclname More...
 
class  Node
 
class  NoteCheck
 a "note" ACL More...
 
class  NotNode
 Implements the "not" or "!" operator. More...
 
class  Option
 A single option supported by an ACL: -x[=value] or –name[=value]. More...
 
class  OptionExtractor
 low-level parser that extracts but does not interpret ACL options More...
 
class  OptionsParser
 parses/validates/stores ACL options; skips/preserves parameter flags More...
 
class  OptionValue
 Stores configuration of a typical boolean flag or a single-value Option. More...
 
class  OrNode
 
class  ParameterizedNode
 
class  ParsingContext
 CodeContext of the being-parsed acl directive. More...
 
class  PeerNameCheck
 a "peername" or "peername_regex" ACL More...
 
class  ProtocolCheck
 a "proto" ACL More...
 
class  ReplyHeaderCheck
 matches the value of a given reply header (e.g., "rep_mime_type" ACL) More...
 
class  RequestHeaderCheck
 matches the value of a given request header (e.g., "browser" or "referer_regex") More...
 
class  ServerCertificateCheck
 a "server_cert_fingerprint" ACL More...
 
class  ServerNameCheck
 an "ssl::server_name" or "ssl::server_name_regex" ACL More...
 
class  ServerNameMatcher
 GeneralNameMatcher for matching configured ACL parameters. More...
 
class  SnmpCommunityCheck
 an "snmp_community" ACL More...
 
class  SourceAsnCheck
 a "src_as" ACL More...
 
class  SourceDomainCheck
 a "srcdomain" or "srcdom_regex" ACL More...
 
class  SplayInserter
 
class  SquidErrorCheck
 a "squid_error" ACL More...
 
class  TagCheck
 a "tag" ACL More...
 
class  TransactionInitiator
 transaction_initiator ACL More...
 
class  Tree
 
class  TypedOption
 a type-specific Option (e.g., a boolean –toggle or -m=SBuf) More...
 
class  TypeNameCmp
 Acl::Node type name comparison functor. More...
 
class  UrlCheck
 a "url_regex" ACL More...
 
class  UrlLoginCheck
 a "urllogin" ACL More...
 
class  UrlPathCheck
 a "urlpath_regex" ACL More...
 
class  UrlPortCheck
 a "port" ACL More...
 

Typedefs

typedef std::map< TypeName, Maker, TypeNameCmpMakers
 Acl::Node makers indexed by Node type name. More...
 
using TypeName = const char *
 the ACL type name known to admins More...
 
using Maker = Node *(*)(TypeName typeName)
 a "factory" function for making Acl::Node objects (of some Node child type) More...
 
typedef OptionValue< CharacterSetCharacterSetOptionValue
 
using TreePointer = RefCount< Acl::Tree >
 reconfiguration-safe storage of ACL rules More...
 
using Nodes = std::vector< Node::Pointer >
 operands of a boolean ACL expression, in configuration/evaluation order More...
 
typedef OptionValue< bool > BooleanOptionValue
 
typedef OptionValue< SBufTextOptionValue
 
typedef TypedOption< BooleanOptionValueBooleanOption
 
typedef TypedOption< TextOptionValueTextOption
 
using Options = std::vector< const Option * >
 

Functions

static MakersTheMakers ()
 registered Acl::Node Makers More...
 
static Acl::NodeMake (TypeName typeName)
 creates an Acl::Node object of the named (and already registered) Node child type More...
 
void RegisterMaker (TypeName typeName, Maker maker)
 use the given Acl::Node Maker for all ACLs of the named type More...
 
void SetKey (SBuf &keyStorage, const char *keyParameterName, const char *newKey)
 
std::ostream & operator<< (std::ostream &o, const Answer &a)
 
void DumpNamedAcls (std::ostream &, const char *directiveName, NamedAcls *)
 report the given list of "acl" directives (using squid.conf syntax) More...
 
void FreeNamedAcls (NamedAcls **)
 delete the given list of "acl" directives More...
 
void Init (void)
 prepares to parse ACLs configuration More...
 
const TreeToTree (const TreePointer *cfg)
 
void ParseFlags (const Options &options)
 
const OptionsNoOptions ()
 
const BooleanOptionCaseSensitivityOption ()
 
std::ostream & operator<< (std::ostream &, const Option &)
 
std::ostream & operator<< (std::ostream &, const Options &)
 
const char * AllowOrDeny (const Answer &action)
 

Detailed Description

Acl::Node check answer

Typedef Documentation

◆ BooleanOption

Definition at line 205 of file Options.h.

◆ BooleanOptionValue

Definition at line 203 of file Options.h.

◆ CharacterSetOptionValue

◆ Maker

using Acl::Maker = typedef Node *(*)(TypeName typeName)

Definition at line 26 of file Acl.h.

◆ Makers

typedef std::map<TypeName, Maker, TypeNameCmp> Acl::Makers

Definition at line 48 of file Acl.cc.

◆ Nodes

Definition at line 19 of file InnerNode.h.

◆ Options

using Acl::Options = typedef std::vector<const Option *>

Definition at line 217 of file Options.h.

◆ TextOption

Definition at line 206 of file Options.h.

◆ TextOptionValue

Definition at line 204 of file Options.h.

◆ TreePointer

Definition at line 38 of file forward.h.

◆ TypeName

using Acl::TypeName = typedef const char *

Definition at line 24 of file Acl.h.

Function Documentation

◆ AllowOrDeny()

const char* Acl::AllowOrDeny ( const Answer action)
inline

◆ CaseSensitivityOption()

const Acl::BooleanOption & Acl::CaseSensitivityOption ( )

A boolean option that controls case-sensitivity (-i/+i). An enabled (-i) state is "case insensitive". A disabled (+i) and default states are "case sensitive".

Definition at line 241 of file Options.cc.

Referenced by ACLRegexData::lineOptions(), and ACLUserData::lineOptions().

◆ DumpNamedAcls()

void Acl::DumpNamedAcls ( std::ostream &  os,
const char *  directiveName,
NamedAcls namedAcls 
)

Definition at line 335 of file Acl.cc.

References debugs.

Referenced by dump_acl().

◆ FreeNamedAcls()

void Acl::FreeNamedAcls ( NamedAcls **  namedAcls)

Definition at line 346 of file Acl.cc.

References assert.

Referenced by free_acl(), and TestACLMaxUserIP::testParseLine().

◆ Init()

◆ Make()

static Acl::Node* Acl::Make ( TypeName  typeName)
static

Definition at line 61 of file Acl.cc.

References assert, debugs, Here, TheMakers(), and ToSBuf().

Referenced by Acl::Node::ParseNamed(), and Mgr::RegisterAction().

◆ NoOptions()

const Acl::Options & Acl::NoOptions ( )
Returns
an empty Options container

Definition at line 234 of file Options.cc.

Referenced by ACLData< X509 * >::lineOptions(), Acl::Node::lineOptions(), and Acl::Node::options().

◆ operator<<() [1/3]

std::ostream & Acl::operator<< ( std::ostream &  os,
const Option option 
)

Definition at line 248 of file Options.cc.

References Acl::Option::print().

◆ operator<<() [2/3]

std::ostream & Acl::operator<< ( std::ostream &  os,
const Options options 
)

Definition at line 255 of file Options.cc.

◆ operator<<() [3/3]

std::ostream& Acl::operator<< ( std::ostream &  o,
const Answer a 
)
inline

Definition at line 109 of file Acl.h.

References ACCESS_ALLOWED, ACCESS_AUTH_REQUIRED, ACCESS_DENIED, and ACCESS_DUNNO.

◆ ParseFlags()

void Acl::ParseFlags ( const Options options)

parses the flags part of the being-parsed ACL, filling Option values

Parameters
optionsoptions supported by the ACL as a whole (e.g., -n)

Definition at line 227 of file Options.cc.

References Acl::OptionsParser::parse().

Referenced by Acl::Node::parseFlags().

◆ RegisterMaker()

void Acl::RegisterMaker ( TypeName  typeName,
Maker  maker 
)

Definition at line 92 of file Acl.cc.

References assert, and TheMakers().

Referenced by Init(), and MyTestProgram::startup().

◆ SetKey()

void Acl::SetKey ( SBuf keyStorage,
const char *  keyParameterName,
const char *  newKey 
)

Validate and store the ACL key parameter for ACL types declared using "acl aclname type key argument..." declaration that require unique key values (if any) for each aclname+type combination. Key comparison is case-insensitive.

Definition at line 100 of file Acl.cc.

References SBuf::caseCmp(), Debug::Extra(), Here, SBuf::isEmpty(), and ToSBuf().

Referenced by ACLHTTPHeaderData::parse(), ACLNoteData::parse(), and ACLCertificateData::parse().

◆ TheMakers()

static Makers& Acl::TheMakers ( )
static

Definition at line 52 of file Acl.cc.

Referenced by Make(), and RegisterMaker().

◆ ToTree()

const Acl::Tree & Acl::ToTree ( const TreePointer cfg)

convenient and safe access to a stored (and parsed/configured) Tree

Returns
**cfg or *cfg->getRaw() \prec cfg points to a non-nil TreePointer object; ACL parsing code is written so that ToTree() caller may just check that cfg itself is not nil (because parsing code never stores nil TreePointer objects).

Definition at line 123 of file Gadgets.cc.

References Assure.

Referenced by aclDestroyAccessList(), aclParseAccessLine(), Security::KeyLog::dump(), dump_acl_access(), dump_acl_list(), dump_AuthSchemes(), dump_ftp_epsv(), dump_http_upgrade_request_protocols(), dump_on_unsupported_protocol(), dump_sslproxy_ssl_bump(), and Note::printAsNoteDirective().

 

Introduction

Documentation

Support

Miscellaneous