From 08acdd0829231fce2892b5ee7096d8260a717fbe Mon Sep 17 00:00:00 2001 From: Amos Jeffries Date: Sat, 24 Apr 2010 15:42:16 +1200 Subject: [PATCH] Kill final traces of UserRequest circular references. --- src/Makefile.am | 1 - src/auth/User.cc | 34 ---------------------------- src/auth/User.cci | 34 ---------------------------- src/auth/User.h | 18 --------------- src/auth/UserRequest.cc | 8 ------- src/auth/basic/auth_basic.cc | 7 ------ src/auth/digest/auth_digest.cc | 7 ------ src/auth/digest/digestUserRequest.cc | 2 +- src/auth/negotiate/auth_negotiate.cc | 3 --- src/auth/ntlm/auth_ntlm.cc | 3 --- src/ip/stubQosConfig.cc | 8 +++---- src/tests/testAuth.cc | 12 ---------- 12 files changed, 5 insertions(+), 132 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am index 5f7981ff0d..a7072e92b3 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -981,7 +981,6 @@ tests_testAuth_SOURCES = \ ConfigParser.cc \ HelperChildConfig.h \ HelperChildConfig.cc \ - ip/stubQosConfig.cc \ tests/stub_acl.cc tests/stub_cache_cf.cc \ tests/stub_helper.cc cbdata.cc String.cc \ tests/stub_store.cc HttpHeaderTools.cc HttpHeader.cc mem.cc ClientInfo.h \ diff --git a/src/auth/User.cc b/src/auth/User.cc index 65caa3d5cb..a6c9e248d9 100644 --- a/src/auth/User.cc +++ b/src/auth/User.cc @@ -62,9 +62,6 @@ AuthUser::AuthUser(AuthConfig *aConfig) : proxy_auth_list.head = proxy_auth_list.tail = NULL; proxy_match_cache.head = proxy_match_cache.tail = NULL; ip_list.head = ip_list.tail = NULL; -#if USER_REQUEST_LOOP_DEAD - requests.head = requests.tail = NULL; -#endif debugs(29, 5, "AuthUser::AuthUser: Initialised auth_user '" << this << "'."); } @@ -94,21 +91,6 @@ AuthUser::absorb(AuthUser::Pointer from) */ debugs(29, 5, "authenticateAuthUserMerge auth_user '" << from << "' into auth_user '" << this << "'."); -#if USER_REQUEST_LOOP_DEAD - dlink_node *link = from->requests.head; - - while (link) { - AuthUserRequest::Pointer *auth_user_request = static_cast(link->data); - /* add to our list. replace if already present. */ - addRequest(*auth_user_request); - AuthUserRequest::Pointer aur = *(auth_user_request); - aur->user(this); - /* remove from other list */ - dlink_node *tmplink = link; - link = link->next; - dlinkDelete(tmplink, &from->requests); - } -#endif /* USER_REQUEST_LOOP_DEAD */ /* absorb the list of IP address sources (for max_user_ip controls) */ AuthUserIP *new_ipdata; @@ -173,22 +155,6 @@ AuthUser::~AuthUser() delete usernamehash; } -#if USER_REQUEST_LOOP_DEAD - /* remove any outstanding requests */ - dlink_node *link = requests.head; - - while (link) { - debugs(29, 5, "AuthUser::~AuthUser: removing request entry '" << link->data << "'"); - AuthUserRequest::Pointer *auth_user_request = static_cast(link->data); - dlink_node *tmplink = link; - link = link->next; - dlinkDelete(tmplink, &requests); - tmplink->data = NULL; - dlinkNodeDelete(tmplink); - *auth_user_request = NULL; - } -#endif /* USER_REQUEST_LOOP_DEAD */ - /* free cached acl results */ aclCacheMatchFlush(&proxy_match_cache); diff --git a/src/auth/User.cci b/src/auth/User.cci index 35e4074a8b..f7d31b3845 100644 --- a/src/auth/User.cci +++ b/src/auth/User.cci @@ -56,37 +56,3 @@ AuthUser::username(char const *aString) safe_free(username_); } } - -#if USER_REQUEST_LOOP_DEAD -void -AuthUser::addRequest(AuthUserRequest::Pointer request) -{ - /* lock for the request link (AKA lock because the request links to us) */ - lock(); - - dlink_node *node = dlinkNodeNew(); - - dlinkAdd(&request, node, &requests); -} - -void -AuthUser::doneRequest(AuthUserRequest::Pointer request) -{ - /* unlink from the auth_user struct */ - dlink_node *link = requests.head; - AuthUserRequest::Pointer *auth_user_request = NULL; - - while (link) { - auth_user_request = static_cast(link->data); - if (*auth_user_request == request) { - dlink_node *tmplink = link; - link = link->next; - dlinkDelete(tmplink, &requests); - tmplink->data = NULL; - dlinkNodeDelete(tmplink); - *auth_user_request = NULL; - } - link = link->next; - } -} -#endif /* USER_REQUEST_LOOP_DEAD */ diff --git a/src/auth/User.h b/src/auth/User.h index 47e4654d1d..67a777095e 100644 --- a/src/auth/User.h +++ b/src/auth/User.h @@ -34,10 +34,6 @@ #ifndef SQUID_AUTHUSER_H #define SQUID_AUTHUSER_H -#if USER_REQUEST_LOOP_DEAD -#include "auth/UserRequest.h" -#endif - #include "auth/AuthType.h" #include "dlink.h" #include "ip/IpAddress.h" @@ -95,20 +91,6 @@ public: void removeIp(Ip::Address); void addIp(Ip::Address); -#if USER_REQUEST_LOOP_DEAD -protected: - /* manage list of active authentication requests for this username */ - /** the auth_user_request structures that link to this. Yes it could be a splaytree - * but how many requests will a single username have in parallel? */ - dlink_list requests; - - /* AYJ: why? do we need this here? it forms the core of a circular refcount. */ - -public: - _SQUID_INLINE_ void addRequest(AuthUserRequest::Pointer); - _SQUID_INLINE_ void doneRequest(AuthUserRequest::Pointer); -#endif /* USER_REQUEST_LOOP_DEAD */ - void addToNameCache(); static void UsernameCacheStats(StoreEntry * output); diff --git a/src/auth/UserRequest.cc b/src/auth/UserRequest.cc index 830ed008c2..7ca5e31c87 100644 --- a/src/auth/UserRequest.cc +++ b/src/auth/UserRequest.cc @@ -140,14 +140,6 @@ AuthUserRequest::~AuthUserRequest() debugs(29, 5, "AuthUserRequest::~AuthUserRequest: freeing request " << this); if (user() != NULL) { -#if USER_REQUEST_LOOP_DEAD - /* AYJ: something strange: in order to be deleted this object must not be - * referenced anywhere. Including the AuthUser list of requests. - * I expect the following loop to NEVER find a pointer to this request object. - */ - user()->doneRequest(this); -#endif /* USER_REQUEST_LOOP_DEAD */ - /* release our references to the user credentials */ user(NULL); } diff --git a/src/auth/basic/auth_basic.cc b/src/auth/basic/auth_basic.cc index a16f3fa7ea..21e55619fd 100644 --- a/src/auth/basic/auth_basic.cc +++ b/src/auth/basic/auth_basic.cc @@ -417,10 +417,6 @@ BasicUser::makeLoggingInstance(AuthUserRequest::Pointer auth_user_request) username(NULL); /* set the auth_user type */ basic_auth->auth_type = AUTH_BROKEN; -#if USER_REQUEST_LOOP_DEAD - /* link the request to the user */ - basic_auth->addRequest(auth_user_request); -#endif /* USER_REQUEST_LOOP_DEAD */ } } @@ -533,9 +529,6 @@ AuthBasicConfig::decode(char const *proxy_auth) /* link the request to the in-cache user */ auth_user_request->user(auth_user); -#if USER_REQUEST_LOOP_DEAD - basic_auth->addRequest(auth_user_request); -#endif /* USER_REQUEST_LOOP_DEAD */ return auth_user_request; } diff --git a/src/auth/digest/auth_digest.cc b/src/auth/digest/auth_digest.cc index 4c0c8d8fe6..da650fc1bd 100644 --- a/src/auth/digest/auth_digest.cc +++ b/src/auth/digest/auth_digest.cc @@ -830,9 +830,6 @@ authDigestLogUsername(char *username, AuthUserRequest::Pointer auth_user_request digest_user->auth_type = AUTH_BROKEN; /* link the request to the user */ auth_user_request->user(digest_user); -#if USER_REQUEST_LOOP_DEAD - digest_user->addRequest(auth_user_request); -#endif return auth_user_request; } @@ -1114,10 +1111,6 @@ AuthDigestConfig::decode(char const *proxy_auth) assert(digest_request != NULL); digest_request->user(digest_user); -#if USER_REQUEST_LOOP_DEAD - digest_user->addRequest(digest_request); -#endif - debugs(29, 9, "username = '" << digest_user->username() << "'\nrealm = '" << digest_request->realm << "'\nqop = '" << digest_request->qop << "'\nalgorithm = '" << digest_request->algorithm << "'\nuri = '" << diff --git a/src/auth/digest/digestUserRequest.cc b/src/auth/digest/digestUserRequest.cc index 3c953b427b..21480ee307 100644 --- a/src/auth/digest/digestUserRequest.cc +++ b/src/auth/digest/digestUserRequest.cc @@ -134,7 +134,7 @@ AuthDigestUserRequest::authenticate(HttpRequest * request, ConnStateData * conn, } else { const char *useragent = request->header.getStr(HDR_USER_AGENT); - static IpAddress last_broken_addr; + static Ip::Address last_broken_addr; static int seen_broken_client = 0; if (!seen_broken_client) { diff --git a/src/auth/negotiate/auth_negotiate.cc b/src/auth/negotiate/auth_negotiate.cc index a1bbaf47aa..9b9b6f97b2 100644 --- a/src/auth/negotiate/auth_negotiate.cc +++ b/src/auth/negotiate/auth_negotiate.cc @@ -319,9 +319,6 @@ AuthNegotiateConfig::decode(char const *proxy_auth) auth_user_request->user(newUser); auth_user_request->user()->auth_type = AUTH_NEGOTIATE; -#if USER_REQUEST_LOOP_DEAD - auth_user_request->user()->addRequest(auth_user_request); -#endif /* all we have to do is identify that it's Negotiate - the helper does the rest */ debugs(29, 9, "AuthNegotiateConfig::decode: Negotiate authentication"); diff --git a/src/auth/ntlm/auth_ntlm.cc b/src/auth/ntlm/auth_ntlm.cc index 333942403d..5d149fdc1a 100644 --- a/src/auth/ntlm/auth_ntlm.cc +++ b/src/auth/ntlm/auth_ntlm.cc @@ -290,9 +290,6 @@ AuthNTLMConfig::decode(char const *proxy_auth) auth_user_request->user(newUser); auth_user_request->user()->auth_type = AUTH_NTLM; -#if USER_REQUEST_LOOP_DEAD - auth_user_request->user()->addRequest(auth_user_request); -#endif /* all we have to do is identify that it's NTLM - the helper does the rest */ debugs(29, 9, "AuthNTLMConfig::decode: NTLM authentication"); diff --git a/src/ip/stubQosConfig.cc b/src/ip/stubQosConfig.cc index 458f655734..3af90bf1e1 100644 --- a/src/ip/stubQosConfig.cc +++ b/src/ip/stubQosConfig.cc @@ -2,10 +2,10 @@ #if USE_ZPH_QOS -#include "QosConfig.h" +#include "ip/QosConfig.h" #include "Store.h" -QosConfig::QosConfig() : +Ip::QosConfig::QosConfig() : tos_local_hit(0), tos_sibling_hit(0), tos_parent_hit(0), @@ -16,7 +16,7 @@ QosConfig::QosConfig() : } void -QosConfig::parseConfigLine() +Ip::QosConfig::parseConfigLine() { // %i honors 0 and 0x prefixes, which are important for things like umask /* parse options ... */ @@ -39,7 +39,7 @@ QosConfig::parseConfigLine() } void -QosConfig::dumpConfigLine(char *entry, const char *name) const +Ip::QosConfig::dumpConfigLine(char *entry, const char *name) const { ; /* Not needed in stub */ } diff --git a/src/tests/testAuth.cc b/src/tests/testAuth.cc index 449cb689c5..056bc14ba0 100644 --- a/src/tests/testAuth.cc +++ b/src/tests/testAuth.cc @@ -202,9 +202,6 @@ testAuthBasicUserRequest::username() BasicUser *basic_auth=new BasicUser(AuthConfig::Find("basic")); basic_auth->username("John"); temp->user(basic_auth); -#if USER_REQUEST_LOOP_DEAD - basic_auth->addRequest(temp); -#endif CPPUNIT_ASSERT_EQUAL(0, strcmp("John", temp->username())); } #endif /* HAVE_AUTH_MODULE_BASIC */ @@ -228,9 +225,6 @@ testAuthDigestUserRequest::username() DigestUser *duser=new DigestUser(AuthConfig::Find("digest")); duser->username("John"); temp->user(duser); -#if USER_REQUEST_LOOP_DEAD - duser->addRequest(temp); -#endif CPPUNIT_ASSERT_EQUAL(0, strcmp("John", temp->username())); } #endif /* HAVE_AUTH_MODULE_DIGEST */ @@ -254,9 +248,6 @@ testAuthNTLMUserRequest::username() NTLMUser *nuser=new NTLMUser(AuthConfig::Find("ntlm")); nuser->username("John"); temp->user(nuser); -#if USER_REQUEST_LOOP_DEAD - nuser->addRequest(temp); -#endif CPPUNIT_ASSERT_EQUAL(0, strcmp("John", temp->username())); } #endif /* HAVE_AUTH_MODULE_NTLM */ @@ -280,9 +271,6 @@ testAuthNegotiateUserRequest::username() NegotiateUser *nuser=new NegotiateUser(AuthConfig::Find("negotiate")); nuser->username("John"); temp->user(nuser); -#if USER_REQUEST_LOOP_DEAD - nuser->addRequest(temp); -#endif CPPUNIT_ASSERT_EQUAL(0, strcmp("John", temp->username())); } -- 2.47.3