Config.cc File Reference
#include "squid.h"
#include "auth/CredentialsCache.h"
#include "auth/digest/Config.h"
#include "auth/digest/Scheme.h"
#include "auth/digest/User.h"
#include "auth/digest/UserRequest.h"
#include "auth/Gadgets.h"
#include "auth/State.h"
#include "auth/toUtf.h"
#include "base/LookupTable.h"
#include "base/Random.h"
#include "cache_cf.h"
#include "event.h"
#include "helper.h"
#include "HttpHeaderTools.h"
#include "HttpReply.h"
#include "HttpRequest.h"
#include "md5.h"
#include "mgr/Registration.h"
#include "rfc2617.h"
#include "sbuf/SBuf.h"
#include "sbuf/StringConvert.h"
#include "Store.h"
#include "StrList.h"
#include "wordlist.h"
#include "mem/Allocator.h"
#include "mem/Pool.h"
Include dependency graph for Config.cc:

Go to the source code of this file.

Enumerations

enum  http_digest_attr_type {
  DIGEST_USERNAME,
  DIGEST_REALM,
  DIGEST_QOP,
  DIGEST_ALGORITHM,
  DIGEST_URI,
  DIGEST_NONCE,
  DIGEST_NC,
  DIGEST_CNONCE,
  DIGEST_RESPONSE,
  DIGEST_INVALID_ATTR
}
 

Functions

static const auto & digestFieldsLookupTable ()
 
static void authenticateDigestNonceCacheCleanup (void *data)
 
static digest_nonce_h * authenticateDigestNonceFindNonce (const char *noncehex)
 
static void authenticateDigestNonceDelete (digest_nonce_h *nonce)
 
static void authenticateDigestNonceSetup (void)
 
static void authDigestNonceEncode (digest_nonce_h *nonce)
 
static void authDigestNonceLink (digest_nonce_h *nonce)
 
static void authDigestNonceUserUnlink (digest_nonce_h *nonce)
 
digest_nonce_h * authenticateDigestNonceNew (void)
 
void authenticateDigestNonceShutdown (void)
 
void authDigestNonceUnlink (digest_nonce_h *nonce)
 
const char * authenticateDigestNonceNonceHex (const digest_nonce_h *nonce)
 
int authDigestNonceIsValid (digest_nonce_h *nonce, char nc[9])
 
int authDigestNonceIsStale (digest_nonce_h *nonce)
 
int authDigestNonceLastRequest (digest_nonce_h *nonce)
 
void authDigestNoncePurge (digest_nonce_h *nonce)
 
static void authenticateDigestStats (StoreEntry *sentry)
 
void authDigestUserLinkNonce (Auth::Digest::User *user, digest_nonce_h *nonce)
 
static Auth::UserRequest::Pointer authDigestLogUsername (char *username, Auth::UserRequest::Pointer auth_user_request, const char *requestRealm)
 

Variables

static AUTHSSTATS authenticateDigestStats
 
Helper::ClientPointer digestauthenticators
 
static hash_tabledigest_nonce_cache
 
static int authdigest_initialised = 0
 
static Mem::Allocatordigest_nonce_pool = nullptr
 

Enumeration Type Documentation

◆ http_digest_attr_type

Enumerator
DIGEST_USERNAME 
DIGEST_REALM 
DIGEST_QOP 
DIGEST_ALGORITHM 
DIGEST_URI 
DIGEST_NONCE 
DIGEST_NC 
DIGEST_CNONCE 
DIGEST_RESPONSE 
DIGEST_INVALID_ATTR 

Definition at line 56 of file Config.cc.

Function Documentation

◆ authDigestLogUsername()

static Auth::UserRequest::Pointer authDigestLogUsername ( char *  username,
Auth::UserRequest::Pointer  auth_user_request,
const char *  requestRealm 
)
static

◆ authDigestNonceEncode()

static void authDigestNonceEncode ( digest_nonce_h *  nonce)
static

Definition at line 103 of file Config.cc.

References CvtHex(), H(), SquidMD5Final(), SquidMD5Init(), SquidMD5Update(), xcalloc(), and xfree.

Referenced by authenticateDigestNonceNew().

◆ authDigestNonceIsStale()

int authDigestNonceIsStale ( digest_nonce_h *  nonce)

◆ authDigestNonceIsValid()

int authDigestNonceIsValid ( digest_nonce_h *  nonce,
char  nc[9] 
)

Definition at line 327 of file Config.cc.

References authDigestNonceIsStale(), Config, debugs, and Auth::SchemeConfig::Find().

◆ authDigestNonceLastRequest()

int authDigestNonceLastRequest ( digest_nonce_h *  nonce)
Return values
0the digest is not stale yet
-1the digest will be stale on the next request

Definition at line 408 of file Config.cc.

References Config, debugs, and Auth::SchemeConfig::Find().

◆ authDigestNonceLink()

static void authDigestNonceLink ( digest_nonce_h *  nonce)
static

Definition at line 272 of file Config.cc.

References assert, and debugs.

Referenced by authDigestUserLinkNonce(), and authenticateDigestNonceNew().

◆ authDigestNoncePurge()

void authDigestNoncePurge ( digest_nonce_h *  nonce)

◆ authDigestNonceUnlink()

void authDigestNonceUnlink ( digest_nonce_h *  nonce)

◆ authDigestNonceUserUnlink()

static void authDigestNonceUserUnlink ( digest_nonce_h *  nonce)
static

◆ authDigestUserLinkNonce()

void authDigestUserLinkNonce ( Auth::Digest::User *  user,
digest_nonce_h *  nonce 
)

Definition at line 652 of file Config.cc.

References assert, authDigestNonceLink(), dlinkAddTail(), and node::next.

◆ authenticateDigestNonceCacheCleanup()

static void authenticateDigestNonceCacheCleanup ( void *  data)
static

◆ authenticateDigestNonceDelete()

static void authenticateDigestNonceDelete ( digest_nonce_h *  nonce)
static

Definition at line 190 of file Config.cc.

References assert, digest_nonce_pool, Mem::Allocator::freeOne(), and safe_free.

Referenced by authDigestNonceUnlink().

◆ authenticateDigestNonceFindNonce()

static digest_nonce_h * authenticateDigestNonceFindNonce ( const char *  noncehex)
static

◆ authenticateDigestNonceNew()

◆ authenticateDigestNonceNonceHex()

const char* authenticateDigestNonceNonceHex ( const digest_nonce_h *  nonce)

Definition at line 298 of file Config.cc.

Referenced by authenticateDigestNonceFindNonce().

◆ authenticateDigestNonceSetup()

static void authenticateDigestNonceSetup ( void  )
static

◆ authenticateDigestNonceShutdown()

void authenticateDigestNonceShutdown ( void  )

Definition at line 216 of file Config.cc.

References assert, authDigestNoncePurge(), debugs, digest_nonce_cache, hash_first(), and hash_next().

◆ authenticateDigestStats()

static void authenticateDigestStats ( StoreEntry sentry)
static

Definition at line 605 of file Config.cc.

References digestauthenticators.

◆ digestFieldsLookupTable()

static const auto& digestFieldsLookupTable ( )
static

Variable Documentation

◆ authdigest_initialised

int authdigest_initialised = 0
static

Definition at line 53 of file Config.cc.

◆ authenticateDigestStats

AUTHSSTATS authenticateDigestStats
static

Definition at line 47 of file Config.cc.

◆ digest_nonce_cache

◆ digest_nonce_pool

Mem::Allocator* digest_nonce_pool = nullptr
static

◆ digestauthenticators

Helper::ClientPointer digestauthenticators

Definition at line 49 of file Config.cc.

Referenced by authenticateDigestStats().

 

Introduction

Documentation

Support

Miscellaneous