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 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  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  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  SnmpCommunityCheck
 an "snmp_community" ACL More...
 
class  SourceAsnCheck
 a "src_as" ACL More...
 
class  SourceDomainCheck
 a "srcdomain" or "srcdom_regex" ACL More...
 
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 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 makers indexed by ACL type name. More...
 
typedef const char * TypeName
 the ACL type name known to admins More...
 
typedef ACL *(* Maker) (TypeName typeName)
 a "factory" function for making ACL objects (of some ACL child type) More...
 
typedef OptionValue< CharacterSetCharacterSetOptionValue
 
typedef std::vector< ACL * > Nodes
 a collection of nodes 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 Makers More...
 
static ACLMake (TypeName typeName)
 creates an ACL object of the named (and already registered) ACL child type More...
 
void RegisterMaker (TypeName typeName, Maker maker)
 use the given ACL 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 Init (void)
 prepares to parse ACLs configuration More...
 
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 check answer

Typedef Documentation

◆ BooleanOption

Definition at line 202 of file Options.h.

◆ BooleanOptionValue

Definition at line 200 of file Options.h.

◆ CharacterSetOptionValue

◆ Maker

typedef ACL *(* Acl::Maker) (TypeName typeName)

Definition at line 29 of file Acl.h.

◆ Makers

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

Definition at line 40 of file Acl.cc.

◆ Nodes

Definition at line 18 of file InnerNode.h.

◆ Options

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

Definition at line 214 of file Options.h.

◆ TextOption

Definition at line 203 of file Options.h.

◆ TextOptionValue

Definition at line 201 of file Options.h.

◆ TypeName

typedef const char* Acl::TypeName

Definition at line 27 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().

◆ Init()

◆ Make()

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

Definition at line 53 of file Acl.cc.

References assert, DBG_CRITICAL, debugs, self_destruct(), and TheMakers().

Referenced by ACL::ParseAclLine().

◆ NoOptions()

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

Definition at line 234 of file Options.cc.

Referenced by ACL::lineOptions(), ACLData< M >::lineOptions(), and ACL::options().

◆ operator<<() [1/3]

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

Definition at line 247 of file Options.cc.

References Acl::Option::print().

◆ operator<<() [2/3]

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

Definition at line 254 of file Options.cc.

◆ operator<<() [3/3]

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

Definition at line 176 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::parseFlags().

◆ RegisterMaker()

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

Definition at line 71 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 79 of file Acl.cc.

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

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

◆ TheMakers()

static Makers & Acl::TheMakers ( )
static

Definition at line 44 of file Acl.cc.

Referenced by Make(), and RegisterMaker().

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors