]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Merging async-call branch changes to HEAD:
authorrousskov <>
Wed, 13 Feb 2008 06:29:25 +0000 (06:29 +0000)
committerrousskov <>
Wed, 13 Feb 2008 06:29:25 +0000 (06:29 +0000)
ConnStateData used a RefCount pointer (the openReference) to keep itself alive
which is not compatible with the cbdata used by CommCalls. This change makes
the ConnStateData class non RefCountable and uses cbdata instead.

src/ACLChecklist.cc
src/ACLChecklist.h
src/AuthUserRequest.cc
src/AuthUserRequest.h

index 8ef3b2de3d02678dc89e860f177d6a237d8e82fb..e18330901ab7c545aed79445eae9631a39a83f60 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: ACLChecklist.cc,v 1.45 2008/02/11 22:25:53 rousskov Exp $
+ * $Id: ACLChecklist.cc,v 1.46 2008/02/12 23:29:25 rousskov Exp $
  *
  * DEBUG: section 28    Access Control
  * AUTHOR: Duane Wessels
@@ -401,7 +401,7 @@ ACLChecklist::~ACLChecklist()
     if (auth_user_request)
         AUTHUSERREQUESTUNLOCK(auth_user_request, "ACLChecklist destructor");
 
-    conn_ = NULL;
+    cbdataReferenceDone(conn_);
 
     cbdataReferenceDone(accessList);
 
@@ -409,17 +409,17 @@ ACLChecklist::~ACLChecklist()
 }
 
 
-ConnStateData::Pointer
+ConnStateData *
 ACLChecklist::conn()
 {
     return  conn_;
 }
 
 void
-ACLChecklist::conn(ConnStateData::Pointer aConn)
+ACLChecklist::conn(ConnStateData *aConn)
 {
     assert (conn() == NULL);
-    conn_ = aConn;
+    conn_ = cbdataReference(aConn);
 }
 
 int
index ec33d44b4b791a8c4153d75396143c86ecac78cb..1902c285760249601da0503c810e469d832d366a 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: ACLChecklist.h,v 1.30 2008/02/11 22:25:53 rousskov Exp $
+ * $Id: ACLChecklist.h,v 1.31 2008/02/12 23:29:25 rousskov Exp $
  *
  *
  * SQUID Web Proxy Cache          http://www.squid-cache.org/
@@ -97,12 +97,11 @@ class NullState : public AsyncState
     void checkCallback(allow_t answer);
     void preCheck();
     _SQUID_INLINE_ bool matchAclListFast(const ACLList * list);
-
-    ConnStateData::Pointer conn();
+    ConnStateData * conn();
     int fd() const; // uses conn() if available
 
     // set either conn or FD
-    void conn(ConnStateData::Pointer);
+    void conn(ConnStateData *);
     void fd(int aDescriptor);
 
     int authenticated();
@@ -153,7 +152,7 @@ private:
     void matchAclList(const ACLList * list, bool const fast);
     void matchAclListSlow(const ACLList * list);
     CBDATA_CLASS(ACLChecklist);
-    ConnStateData::Pointer conn_;      /* hack for ident and NTLM */
+    ConnStateData * conn_;     /* hack for ident and NTLM */
     int fd_; // may be available when conn_ is not
     bool async_;
     bool finished_;
index 51bcf0b1562b76524fb3776759c0e47864dfbab1..e72f553c87f70af167f003b784239ae929dd79e0 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: AuthUserRequest.cc,v 1.18 2007/12/14 23:11:45 amosjeffries Exp $
+ * $Id: AuthUserRequest.cc,v 1.19 2008/02/12 23:29:25 rousskov Exp $
  *
  * DO NOT MODIFY NEXT 2 LINES:
  * arch-tag: 6803fde1-d5a2-4c29-9034-1c0c9f650eb4
@@ -286,7 +286,7 @@ AuthUserRequest::connLastHeader()
  * This is basically a handle approach.
  */
 static void
-authenticateAuthenticateUser(AuthUserRequest * auth_user_request, HttpRequest * request, ConnStateData::Pointer &conn, http_hdr_type type)
+authenticateAuthenticateUser(AuthUserRequest * auth_user_request, HttpRequest * request, ConnStateData * conn, http_hdr_type type)
 {
     assert(auth_user_request != NULL);
 
@@ -294,7 +294,7 @@ authenticateAuthenticateUser(AuthUserRequest * auth_user_request, HttpRequest *
 }
 
 static AuthUserRequest *
-authTryGetUser (AuthUserRequest **auth_user_request, ConnStateData::Pointer & conn, HttpRequest * request)
+authTryGetUser (AuthUserRequest **auth_user_request, ConnStateData * conn, HttpRequest * request)
 {
     if (*auth_user_request)
         return *auth_user_request;
@@ -329,7 +329,7 @@ authTryGetUser (AuthUserRequest **auth_user_request, ConnStateData::Pointer & co
  */
 auth_acl_t
 
-AuthUserRequest::authenticate(AuthUserRequest ** auth_user_request, http_hdr_type headertype, HttpRequest * request, ConnStateData::Pointer conn, IPAddress &src_addr)
+AuthUserRequest::authenticate(AuthUserRequest ** auth_user_request, http_hdr_type headertype, HttpRequest * request, ConnStateData * conn, IPAddress &src_addr)
 {
     const char *proxy_auth;
     assert(headertype != 0);
@@ -508,7 +508,7 @@ AuthUserRequest::authenticate(AuthUserRequest ** auth_user_request, http_hdr_typ
 
 auth_acl_t
 
-AuthUserRequest::tryToAuthenticateAndSetAuthUser(AuthUserRequest ** auth_user_request, http_hdr_type headertype, HttpRequest * request, ConnStateData::Pointer conn, IPAddress &src_addr)
+AuthUserRequest::tryToAuthenticateAndSetAuthUser(AuthUserRequest ** auth_user_request, http_hdr_type headertype, HttpRequest * request, ConnStateData * conn, IPAddress &src_addr)
 {
     /* If we have already been called, return the cached value */
     AuthUserRequest *t = authTryGetUser (auth_user_request, conn, request);
index 0089d76d0803fd2e3c2c85b2996704b873efcd17..abfa2ed789361c43346bd886668f4703c59014d2 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: AuthUserRequest.h,v 1.7 2007/12/14 23:11:45 amosjeffries Exp $
+ * $Id: AuthUserRequest.h,v 1.8 2008/02/12 23:29:25 rousskov Exp $
  *
  * DO NOT MODIFY NEXT 2 LINES:
  * arch-tag: 674533af-8b21-4641-b71a-74c4639072a0
@@ -64,7 +64,7 @@ public:
 
     int direction();
     virtual int authenticated() const = 0;
-    virtual void authenticate(HttpRequest * request, ConnStateData::Pointer conn, http_hdr_type type) = 0;
+    virtual void authenticate(HttpRequest * request, ConnStateData * conn, http_hdr_type type) = 0;
     /* template method */
     virtual int module_direction() = 0;
     virtual void addHeader(HttpReply * rep, int accel);
@@ -78,7 +78,7 @@ public:
 
     virtual void user (AuthUser *aUser) {_auth_user=aUser;}
 
-    static auth_acl_t tryToAuthenticateAndSetAuthUser(AuthUserRequest **, http_hdr_type, HttpRequest *, ConnStateData::Pointer, IPAddress &);
+    static auth_acl_t tryToAuthenticateAndSetAuthUser(AuthUserRequest **, http_hdr_type, HttpRequest *, ConnStateData *, IPAddress &);
     static void addReplyAuthHeader(HttpReply * rep, AuthUserRequest * auth_user_request, HttpRequest * request, int accelerated, int internal);
 
     AuthUserRequest();
@@ -105,7 +105,7 @@ public:
 
 private:
 
-    static auth_acl_t authenticate(AuthUserRequest ** auth_user_request, http_hdr_type headertype, HttpRequest * request, ConnStateData::Pointer conn, IPAddress &src_addr);
+    static auth_acl_t authenticate(AuthUserRequest ** auth_user_request, http_hdr_type headertype, HttpRequest * request, ConnStateData * conn, IPAddress &src_addr);
 
     /* return a message on the 407 error pages */
     char *message;