From: rousskov <> Date: Wed, 13 Feb 2008 06:29:25 +0000 (+0000) Subject: Merging async-call branch changes to HEAD: X-Git-Tag: BASIC_TPROXY4~103 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=69d779f87df8da821cd11bc718be735f2444acaa;p=thirdparty%2Fsquid.git Merging async-call branch changes to HEAD: 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. --- diff --git a/src/ACLChecklist.cc b/src/ACLChecklist.cc index 8ef3b2de3d..e18330901a 100644 --- a/src/ACLChecklist.cc +++ b/src/ACLChecklist.cc @@ -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 diff --git a/src/ACLChecklist.h b/src/ACLChecklist.h index ec33d44b4b..1902c28576 100644 --- a/src/ACLChecklist.h +++ b/src/ACLChecklist.h @@ -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_; diff --git a/src/AuthUserRequest.cc b/src/AuthUserRequest.cc index 51bcf0b156..e72f553c87 100644 --- a/src/AuthUserRequest.cc +++ b/src/AuthUserRequest.cc @@ -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); diff --git a/src/AuthUserRequest.h b/src/AuthUserRequest.h index 0089d76d08..abfa2ed789 100644 --- a/src/AuthUserRequest.h +++ b/src/AuthUserRequest.h @@ -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;