#include "squid.h"
#include "acl/Acl.h"
#include "acl/FilledChecklist.h"
#include "cache_cf.h"
#include "client_side.h"
#include "client_side_request.h"
#include "comm/Connection.h"
#include "ConfigParser.h"
#include "ExternalACL.h"
#include "ExternalACLEntry.h"
#include "fde.h"
#include "format/Token.h"
#include "helper.h"
#include "helper/Reply.h"
#include "http/Stream.h"
#include "HttpHeaderTools.h"
#include "HttpReply.h"
#include "HttpRequest.h"
#include "ip/tools.h"
#include "MemBuf.h"
#include "mgr/Registration.h"
#include "rfc1738.h"
#include "SquidConfig.h"
#include "SquidString.h"
#include "SquidTime.h"
#include "Store.h"
#include "tools.h"
#include "wordlist.h"
#include "ssl/ServerBump.h"
#include "ssl/support.h"
#include "auth/Acl.h"
#include "auth/Gadgets.h"
#include "auth/UserRequest.h"
#include "ident/AclIdent.h"

Go to the source code of this file.
Classes | |
class | external_acl |
class | external_acl_data |
class | externalAclState |
Macros | |
#define | DEFAULT_EXTERNAL_ACL_TTL 1 * 60 * 60 |
#define | DEFAULT_EXTERNAL_ACL_CHILDREN 5 |
Macro Definition Documentation
◆ DEFAULT_EXTERNAL_ACL_CHILDREN
#define DEFAULT_EXTERNAL_ACL_CHILDREN 5 |
Definition at line 56 of file external_acl.cc.
◆ DEFAULT_EXTERNAL_ACL_TTL
#define DEFAULT_EXTERNAL_ACL_TTL 1 * 60 * 60 |
Definition at line 53 of file external_acl.cc.
Function Documentation
◆ aclMatchExternal()
|
static |
Definition at line 599 of file external_acl.cc.
References ACCESS_DUNNO, AuthenticateAcl(), external_acl::cache, copyResultsFromEntry(), ExternalACLEntry::date, DBG_IMPORTANT, debugs, external_acl_data::def, ExternalACLEntry::def, ACLFilledChecklist::extacl_entry, external_acl_cache_touch(), external_acl_entry_expired(), external_acl_grace_expired(), external_acl_message, ACLChecklist::goAsync(), hash_lookup(), HERE(), ExternalACLLookup::Instance(), hash_link::key, ExternalACLEntry::log, makeExternalAclKey(), ExternalACLEntry::message, external_acl::name, NULL, ACLFilledChecklist::request, external_acl::require_auth, ExternalACLEntry::result, ExternalACLLookup::Start(), ExternalACLEntry::tag, String::termedBuf(), external_acl::theHelper, ExternalACLEntry::user, and helper::willOverload().
Referenced by ACLExternal::match().
◆ copyResultsFromEntry()
|
static |
Definition at line 574 of file external_acl.cc.
References HttpRequest::clientConnectionManager, HttpRequest::extacl_log, HttpRequest::extacl_message, HttpRequest::extacl_passwd, HttpRequest::extacl_user, CbcPointer< Cbc >::get(), ExternalACLEntry::log, ExternalACLEntry::message, ExternalACLEntry::notes, ExternalACLEntry::password, String::size(), ExternalACLEntry::tag, HttpRequest::tag, UpdateRequestNotes(), and ExternalACLEntry::user.
Referenced by aclMatchExternal().
◆ dump_externalAclHelper()
void dump_externalAclHelper | ( | StoreEntry * | sentry, |
const char * | name, | ||
const external_acl * | list | ||
) |
Definition at line 376 of file external_acl.cc.
References DEFAULT_EXTERNAL_ACL_CHILDREN, DEFAULT_EXTERNAL_ACL_TTL, wordlist::key, Format::LOG_QUOTE_SHELL, node::next, wordlist::next, NULL, and storeAppendPrintf().
◆ external_acl_cache_add()
|
static |
Definition at line 846 of file external_acl.cc.
References ACCESS_DUNNO, external_acl::add(), external_acl::cache, data, debugs, ExternalACLEntry::def, external_acl_cache_delete(), external_acl_cache_touch(), hash_lookup(), HERE(), hash_link::key, external_acl::maybeCacheable(), NULL, ExternalACLEntry::update(), and xstrdup.
Referenced by externalAclHandleReply().
◆ external_acl_cache_delete()
|
static |
Definition at line 884 of file external_acl.cc.
References assert, external_acl::cache, external_acl::cache_entries, external_acl::cache_size, ExternalACLEntry::def, dlinkDelete(), RefCount< C >::getRaw(), hash_remove_link(), ExternalACLEntry::lru, external_acl::lru_list, and NULL.
Referenced by external_acl::~external_acl(), external_acl_cache_add(), and external_acl::trimCache().
◆ external_acl_cache_touch()
|
static |
Definition at line 751 of file external_acl.cc.
References dlinkAdd(), dlinkDelete(), RefCount< C >::getRaw(), ExternalACLEntry::lru, external_acl::lru_list, external_acl::maybeCacheable(), and ExternalACLEntry::result.
Referenced by aclMatchExternal(), and external_acl_cache_add().
◆ external_acl_entry_expired()
|
static |
Definition at line 818 of file external_acl.cc.
References ACCESS_DUNNO, Acl::Answer::allowed(), external_acl::cache_size, ExternalACLEntry::date, external_acl::negative_ttl, ExternalACLEntry::result, squid_curtime, and external_acl::ttl.
Referenced by aclMatchExternal().
◆ external_acl_grace_expired()
|
static |
Definition at line 830 of file external_acl.cc.
References ACCESS_DUNNO, Acl::Answer::allowed(), external_acl::cache_size, ExternalACLEntry::date, external_acl::grace, external_acl::negative_ttl, ExternalACLEntry::result, squid_curtime, and external_acl::ttl.
Referenced by aclMatchExternal().
◆ externalAclHandleReply()
|
static |
Definition at line 953 of file external_acl.cc.
References ACCESS_ALLOWED, ACCESS_DENIED, ACCESS_DUNNO, NotePairs::append(), externalAclState::callback, externalAclState::callback_data, cbdataReferenceValid(), cbdataReferenceValidDone, data, debugs, externalAclState::def, dlinkDelete(), Helper::Error, external_acl_cache_add(), NotePairs::findFirst(), HERE(), externalAclState::key, externalAclState::list, ExternalACLEntryData::log, ExternalACLEntryData::message, ExternalACLEntryData::notes, Helper::Reply::notes, NULL, Helper::Okay, ExternalACLEntryData::password, external_acl::queue, externalAclState::queue, ExternalACLEntryData::result, Helper::Reply::result, ExternalACLEntryData::tag, and ExternalACLEntryData::user.
Referenced by ExternalACLLookup::Start().
◆ externalAclInit()
void externalAclInit | ( | void | ) |
Definition at line 1111 of file external_acl.cc.
References Config, SquidConfig::externalAclHelperList, externalAclRegisterWithCacheManager(), hash4, hash_create(), hashPrime(), helperOpenServers(), IPC_TCP_SOCKET, and external_acl::next.
Referenced by mainInitialize(), mainReconfigureFinish(), and mainRotate().
◆ externalAclRegisterWithCacheManager()
|
static |
Definition at line 1103 of file external_acl.cc.
References externalAclStats(), and Mgr::RegisterAction().
Referenced by externalAclInit().
◆ externalAclShutdown()
void externalAclShutdown | ( | void | ) |
Definition at line 1135 of file external_acl.cc.
References Config, SquidConfig::externalAclHelperList, helperShutdown(), external_acl::next, and external_acl::theHelper.
Referenced by mainReconfigureStart(), mainRotate(), and SquidShutdown().
◆ externalAclStats()
|
static |
Definition at line 1091 of file external_acl.cc.
References assert, Config, SquidConfig::externalAclHelperList, external_acl::next, and storeAppendPrintf().
Referenced by externalAclRegisterWithCacheManager().
◆ find_externalAclHelper()
|
static |
Definition at line 433 of file external_acl.cc.
References Config, SquidConfig::externalAclHelperList, node::next, and NULL.
Referenced by ACLExternal::parse().
◆ free_externalAclHelper()
void free_externalAclHelper | ( | external_acl ** | list | ) |
Definition at line 426 of file external_acl.cc.
References NULL.
◆ makeExternalAclKey()
|
static |
Definition at line 763 of file external_acl.cc.
References ACLFilledChecklist::al, arg, external_acl_data::arguments, Format::Format::assemble(), MemBuf::buf, MemBuf::clean(), external_acl_data::def, external_acl::format, Format::Format::format, ACLChecklist::goAsync(), MemBuf::init(), IdentLookup::Instance(), AccessLogEntry::lastAclData, AccessLogEntry::lastAclName, Format::LFT_EXT_ACL_DATA, Format::LFT_EXT_ACL_NAME, Format::LFT_USER_IDENT, Format::LOG_QUOTE_URL, external_acl_data::name, Format::Token::next, NULL, external_acl::quote, MemBuf::reset(), rfc1738_escape, ACLFilledChecklist::rfc931, safe_free, sb, MemBuf::size, strwordquote(), and xstrdup.
Referenced by aclMatchExternal(), and ExternalACLLookup::Start().
◆ parse_externalAclHelper()
void parse_externalAclHelper | ( | external_acl ** | list | ) |
Definition at line 181 of file external_acl.cc.