]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Upgrade ACLFilledChecklist::request to smart Pointer (#1501)
authorAmos Jeffries <yadij@users.noreply.github.com>
Sun, 8 Oct 2023 20:23:17 +0000 (20:23 +0000)
committerSquid Anubis <squid-anubis@squid-cache.org>
Mon, 9 Oct 2023 08:01:15 +0000 (08:01 +0000)
No logic changes. Just the member type.

src/acl/FilledChecklist.cc
src/acl/FilledChecklist.h
src/auth/Acl.cc
src/auth/AclProxyAuth.cc
src/external_acl.cc

index 285540162a364aa724e88f7add2881e6180f53c4..2a1fc7703a97c7f84053dfbaa2935b6860929645 100644 (file)
@@ -26,7 +26,6 @@ CBDATA_CLASS_INIT(ACLFilledChecklist);
 
 ACLFilledChecklist::ACLFilledChecklist() :
     dst_rdns(nullptr),
-    request (nullptr),
     reply (nullptr),
 #if USE_AUTH
     auth_user_request (nullptr),
@@ -52,8 +51,6 @@ ACLFilledChecklist::~ACLFilledChecklist()
 
     safe_free(dst_rdns); // created by xstrdup().
 
-    HTTPMSGUNLOCK(request);
-
     HTTPMSGUNLOCK(reply);
 
     cbdataReferenceDone(conn_);
@@ -89,13 +86,13 @@ ACLFilledChecklist::verifyAle() const
             showDebugWarning("HttpRequest object");
             // XXX: al->request should be original,
             // but the request may be already adapted
-            al->request = request;
+            al->request = request.getRaw();
             HTTPMSGLOCK(al->request);
         }
 
         if (!al->adapted_request) {
             showDebugWarning("adapted HttpRequest object");
-            al->adapted_request = request;
+            al->adapted_request = request.getRaw();
             HTTPMSGLOCK(al->adapted_request);
         }
 
@@ -213,7 +210,6 @@ ACLFilledChecklist::markSourceDomainChecked()
  */
 ACLFilledChecklist::ACLFilledChecklist(const acl_access *A, HttpRequest *http_request, const char *ident):
     dst_rdns(nullptr),
-    request(nullptr),
     reply(nullptr),
 #if USE_AUTH
     auth_user_request(nullptr),
@@ -242,7 +238,6 @@ void ACLFilledChecklist::setRequest(HttpRequest *httpRequest)
     assert(!request);
     if (httpRequest) {
         request = httpRequest;
-        HTTPMSGLOCK(request);
 #if FOLLOW_X_FORWARDED_FOR
         if (Config.onoff.acl_uses_indirect_client)
             src_addr = request->indirect_client_addr;
index 0e71be360a1247c48bfae43a1d2ec99a213fad5e..83ab54832e6628d31897229539ebbea66ae39cfb 100644 (file)
@@ -14,6 +14,7 @@
 #include "acl/forward.h"
 #include "base/CbcPointer.h"
 #include "error/forward.h"
+#include "HttpRequest.h"
 #include "ip/Address.h"
 #if USE_AUTH
 #include "auth/UserRequest.h"
@@ -22,8 +23,6 @@
 
 class CachePeer;
 class ConnStateData;
-class HttpRequest;
-class HttpReply;
 
 /** \ingroup ACLAPI
     ACLChecklist filled with specific data, representing Squid and transaction
@@ -76,7 +75,7 @@ public:
     SBuf dst_peer_name;
     char *dst_rdns;
 
-    HttpRequest *request;
+    HttpRequest::Pointer request;
     HttpReply *reply;
 
     char rfc931[USER_IDENT_SZ];
index 62c66380c0f485f286b488b753cc2a8f8868b65b..9f202030a6a66820d8df1e9e585a8020489b493c 100644 (file)
@@ -28,10 +28,10 @@ Acl::Answer
 AuthenticateAcl(ACLChecklist *ch)
 {
     ACLFilledChecklist *checklist = Filled(ch);
-    HttpRequest *request = checklist->request;
+    const auto request = checklist->request;
     Http::HdrType headertype;
 
-    if (nullptr == request) {
+    if (!request) {
         fatal ("requiresRequest SHOULD have been true for this ACL!!");
         return ACCESS_DENIED;
     } else if (request->flags.sslBumped) {
@@ -55,7 +55,7 @@ AuthenticateAcl(ACLChecklist *ch)
     /* get authed here */
     /* Note: this fills in auth_user_request when applicable */
     const AuthAclState result = Auth::UserRequest::tryToAuthenticateAndSetAuthUser(
-                                    &checklist->auth_user_request, headertype, request,
+                                    &checklist->auth_user_request, headertype, checklist->request.getRaw(),
                                     checklist->conn(), checklist->src_addr, checklist->al);
     switch (result) {
 
index 7ac354c14fe4a79b0c409db5db545d1eef80a7d5..b61ee766ba79432c2251155f3a5be3d7d14abde6 100644 (file)
@@ -120,7 +120,7 @@ ProxyAuthLookup::checkForAsync(ACLChecklist *cl) const
     /* make sure someone created auth_user_request for us */
     assert(checklist->auth_user_request != nullptr);
     assert(checklist->auth_user_request->valid());
-    checklist->auth_user_request->start(checklist->request, checklist->al, LookupDone, checklist);
+    checklist->auth_user_request->start(checklist->request.getRaw(), checklist->al, LookupDone, checklist);
 }
 
 void
index 1895d7b22556a8c32e4092d0fd2c4cf4d0272566..87e3bf154723efe1c21ecd38e7aab7a61d742627 100644 (file)
@@ -569,7 +569,7 @@ ACLExternal::~ACLExternal()
 }
 
 static void
-copyResultsFromEntry(HttpRequest *req, const ExternalACLEntryPointer &entry)
+copyResultsFromEntry(const HttpRequest::Pointer &req, const ExternalACLEntryPointer &entry)
 {
     if (req) {
 #if USE_AUTH