From: Francesco Chemolli Date: Thu, 3 Sep 2015 11:18:47 +0000 (+0200) Subject: Fix cbdata-related parts of UserNameCache. X-Git-Tag: SQUID_4_0_1~21^2~39 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c2eec79f1f281fc08818fe4d7a6f6c1b305ede22;p=thirdparty%2Fsquid.git Fix cbdata-related parts of UserNameCache. Self-register new User objects into the cache. --- diff --git a/src/auth/UserNameCache.cc b/src/auth/UserNameCache.cc index 1eee7e1dc4..e21a29c873 100644 --- a/src/auth/UserNameCache.cc +++ b/src/auth/UserNameCache.cc @@ -15,6 +15,8 @@ namespace Auth { +CBDATA_CLASS_INIT(UserNameCache); + UserNameCache::UserNameCache(const char *name) : cachename(name), cacheCleanupEventName("User cache cleanup: ") { diff --git a/src/auth/basic/User.cc b/src/auth/basic/User.cc index c8189132b9..ff0cfb5b25 100644 --- a/src/auth/basic/User.cc +++ b/src/auth/basic/User.cc @@ -19,7 +19,9 @@ Auth::Basic::User::User(Auth::Config *aConfig, const char *aRequestRealm) : passwd(NULL), queue(NULL), currentRequest(NULL) -{} +{ + Cache()->insert(Pointer(this)); +} Auth::Basic::User::~User() { @@ -83,8 +85,7 @@ Auth::Basic::User::updateCached(Auth::Basic::User *from) CbcPointer Auth::Basic::User::Cache() { - static Auth::UserNameCache cache("basic"); - static CbcPointer p(&cache); + static CbcPointer p(new Auth::UserNameCache("basic")); return p; } diff --git a/src/auth/digest/User.cc b/src/auth/digest/User.cc index 805aacddb2..f4d1b4408d 100644 --- a/src/auth/digest/User.cc +++ b/src/auth/digest/User.cc @@ -20,6 +20,7 @@ Auth::Digest::User::User(Auth::Config *aConfig, const char *aRequestRealm) : HA1created(0) { memset(HA1, 0, sizeof(HA1)); + Cache()->insert(Pointer(this)); } Auth::Digest::User::~User() @@ -76,7 +77,6 @@ Auth::Digest::User::currentNonce() CbcPointer Auth::Digest::User::Cache() { - static Auth::UserNameCache cache("digest"); - static CbcPointer p(&cache); + static CbcPointer p(new Auth::UserNameCache("digest")); return p; } diff --git a/src/auth/negotiate/User.cc b/src/auth/negotiate/User.cc index ba50d1c422..a72d9095cb 100644 --- a/src/auth/negotiate/User.cc +++ b/src/auth/negotiate/User.cc @@ -15,6 +15,7 @@ Auth::Negotiate::User::User(Auth::Config *aConfig, const char *aRequestRealm) : Auth::User(aConfig, aRequestRealm) { + Cache()->insert(Pointer(this)); } Auth::Negotiate::User::~User() @@ -31,7 +32,6 @@ Auth::Negotiate::User::ttl() const CbcPointer Auth::Negotiate::User::Cache() { - static Auth::UserNameCache cache("negotiate"); - static CbcPointer p(&cache); + static CbcPointer p(new Auth::UserNameCache("negotiate")); return p; } diff --git a/src/auth/ntlm/User.cc b/src/auth/ntlm/User.cc index 47f1758790..4a3f09429d 100644 --- a/src/auth/ntlm/User.cc +++ b/src/auth/ntlm/User.cc @@ -15,6 +15,7 @@ Auth::Ntlm::User::User(Auth::Config *aConfig, const char *aRequestRealm) : Auth::User(aConfig, aRequestRealm) { + Cache()->insert(Pointer(this)); } Auth::Ntlm::User::~User() @@ -31,7 +32,6 @@ Auth::Ntlm::User::ttl() const CbcPointer Auth::Ntlm::User::Cache() { - static Auth::UserNameCache cache("ntlm"); - static CbcPointer p(&cache); + static CbcPointer p(new Auth::UserNameCache("basic")); return p; }