------------------------------------------------------------ revno: 13166 revision-id: rousskov@measurement-factory.com-20131202003624-kgqorhs74uk4dqc5 parent: rousskov@measurement-factory.com-20131202003550-73w7r30u6ws6x2d0 committer: Alex Rousskov branch nick: trunk timestamp: Sun 2013-12-01 17:36:24 -0700 message: Documented that ACLs should be refcounted. Refcounting would avoid ACL destruction problems (when some ACLs use other ACLs or when an ACL goes async during reconfigure) and may even reduce problems with AclMatchedName. ------------------------------------------------------------ # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: rousskov@measurement-factory.com-20131202003624-\ # kgqorhs74uk4dqc5 # target_branch: http://bzr.squid-cache.org/bzr/squid3/trunk/ # testament_sha1: f13baa7a1109b46324ef2390d7af7f4561c9a511 # timestamp: 2013-12-02 00:53:40 +0000 # source_branch: http://bzr.squid-cache.org/bzr/squid3/trunk/ # base_revision_id: rousskov@measurement-factory.com-20131202003550-\ # 73w7r30u6ws6x2d0 # # Begin patch === modified file 'src/acl/Acl.h' --- src/acl/Acl.h 2013-05-28 14:28:15 +0000 +++ src/acl/Acl.h 2013-12-02 00:36:24 +0000 @@ -135,7 +135,7 @@ char name[ACL_NAME_SZ]; char *cfgline; - ACL *next; + ACL *next; // XXX: remove or at least use refcounting ACLFlags flags; ///< The list of given ACL flags bool registered; ///< added to Config.aclList and can be reused via by FindByName() @@ -244,6 +244,7 @@ MEMPROXY_CLASS_INLINE(acl_proxy_auth_match_cache); /// \ingroup ACLAPI +/// XXX: find a way to remove or at least use a refcounted ACL pointer extern const char *AclMatchedName; /* NULL */ #endif /* SQUID_ACL_H */ === modified file 'src/acl/InnerNode.h' --- src/acl/InnerNode.h 2013-05-28 14:28:15 +0000 +++ src/acl/InnerNode.h 2013-12-02 00:36:24 +0000 @@ -40,6 +40,7 @@ /* ACL API */ virtual int match(ACLChecklist *checklist); + // XXX: use refcounting instead of raw pointers std::vector nodes; ///< children nodes of this intermediate node };