]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Cleanup: migrate AclAddress to CBDATA_CLASS API
authorAmos Jeffries <squid3@treenet.co.nz>
Mon, 2 Feb 2015 16:20:11 +0000 (08:20 -0800)
committerAmos Jeffries <squid3@treenet.co.nz>
Mon, 2 Feb 2015 16:20:11 +0000 (08:20 -0800)
Also, shuffle into the Acl:: namespace

src/FwdState.cc
src/SquidConfig.h
src/acl/Address.cc [moved from src/acl/AclAddress.cc with 63% similarity]
src/acl/Address.h [moved from src/acl/AclAddress.h with 60% similarity]
src/acl/Makefile.am
src/acl/forward.h
src/cache_cf.cc

index 8397fe443575eb5ecbebdc1be83cb4a714e3a846..2072553b000c87f947ec054e4e18b1f0e7f6ae84 100644 (file)
@@ -10,7 +10,7 @@
 
 #include "squid.h"
 #include "AccessLogEntry.h"
-#include "acl/AclAddress.h"
+#include "acl/Address.h"
 #include "acl/FilledChecklist.h"
 #include "acl/Gadgets.h"
 #include "anyp/PortCfg.h"
@@ -1259,8 +1259,7 @@ getOutgoingAddress(HttpRequest * request, Comm::ConnectionPointer conn)
     // TODO use the connection details in ACL.
     // needs a bit of rework in ACLFilledChecklist to use Comm::Connection instead of ConnStateData
 
-    AclAddress *l;
-    for (l = Config.accessList.outgoing_address; l; l = l->next) {
+    for (Acl::Address *l = Config.accessList.outgoing_address; l; l = l->next) {
 
         /* check if the outgoing address is usable to the destination */
         if (conn->remote.isIPv4() != l->addr.isIPv4()) continue;
index c001348dde069c23ccb4c57cd179d60a4722a144..4ef76642e2a49c6e7cb8492c5bc657f5c98826fd 100644 (file)
@@ -357,7 +357,7 @@ public:
         acl_access *redirector;
         acl_access *store_id;
         acl_access *reply;
-        AclAddress *outgoing_address;
+        Acl::Address *outgoing_address;
 #if USE_HTCP
 
         acl_access *htcp;
similarity index 63%
rename from src/acl/AclAddress.cc
rename to src/acl/Address.cc
index b7ad5432c37d4c5513866b1934ec64f48fef1610..d789428a59969ab7598d359e2599cef84f18601f 100644 (file)
@@ -7,7 +7,13 @@
  */
 
 #include "squid.h"
-#include "AclAddress.h"
+#include "acl/Address.h"
+#include "acl/Gadgets.h"
 
-//TODO: fill in
+CBDATA_NAMESPACED_CLASS_INIT(Acl, Address);
 
+Acl::Address::~Address()
+{
+    aclDestroyAclList(&aclList);
+    delete next;
+}
similarity index 60%
rename from src/acl/AclAddress.h
rename to src/acl/Address.h
index 149f8d300f5d8584bcc502e59d3176b25c51f40e..dbd27fb8a837d7b956b2fc94b224ca948b834b06 100644 (file)
@@ -6,21 +6,31 @@
  * Please see the COPYING and CONTRIBUTORS files for details.
  */
 
-#ifndef ACLADDRESS_H_
-#define ACLADDRESS_H_
+#ifndef _SQUID_SRC_ACL_ADDRESS_H_
+#define _SQUID_SRC_ACL_ADDRESS_H_
 
 #include "acl/Acl.h"
 #include "ip/Address.h"
 
+namespace Acl
+{
+
 /// list of address-based ACLs.
-class AclAddress
+class Address
 {
+    CBDATA_CLASS(Address);
+
 public:
-    AclAddress *next;
+    Address() : next(NULL), aclList(NULL) {}
+    ~Address();
+
+    Acl::Address *next;
     ACLList *aclList;
 
     Ip::Address addr;
 };
 
-#endif /* ACLADDRESS_H_ */
+} // namespace Acl
+
+#endif /* _SQUID_SRC_ACL_ADDRESS_H_ */
 
index 54af89b74017a85b1b894ef25418151949eaa532..a7e97f5167bc3a25c7e83b20f4a2ede50f6237af 100644 (file)
@@ -33,8 +33,8 @@ libstate_la_SOURCES = \
        Strategised.h \
        FilledChecklist.cc \
        FilledChecklist.h \
-       AclAddress.h \
-       AclAddress.cc
+       Address.h \
+       Address.cc
 
 ## data-specific ACLs
 libacls_la_SOURCES = \
index 5ab9dcafdbbbbc024c3b4f4de505e6eeb159bc3c..741fa250e9d718808a39617ce4d6124368fcd450 100644 (file)
@@ -16,13 +16,13 @@ class ACLChecklist;
 class ACLFilledChecklist;
 class ACLList;
 
-class AclAddress;
 class AclDenyInfoList;
 class AclSizeLimit;
 
 namespace Acl
 {
 
+class Address;
 class InnerNode;
 class NotNode;
 class AndNode;
index 3265ec5410ca787fecf78a0bb5a13bb9a4696177..d497e240d3e9a989bb1b7200a07576216c1c7f46 100644 (file)
 
 #include "squid.h"
 #include "acl/Acl.h"
-#include "acl/AclAddress.h"
 #include "acl/AclDenyInfoList.h"
 #include "acl/AclNameList.h"
 #include "acl/AclSizeLimit.h"
+#include "acl/Address.h"
 #include "acl/Gadgets.h"
 #include "acl/MethodData.h"
 #include "acl/Tree.h"
@@ -1359,15 +1359,12 @@ free_address(Ip::Address *addr)
     addr->setEmpty();
 }
 
-CBDATA_TYPE(AclAddress);
-
 static void
-dump_acl_address(StoreEntry * entry, const char *name, AclAddress * head)
+dump_acl_address(StoreEntry * entry, const char *name, Acl::Address * head)
 {
     char buf[MAX_IPSTRLEN];
-    AclAddress *l;
 
-    for (l = head; l; l = l->next) {
+    for (Acl::Address *l = head; l; l = l->next) {
         if (!l->addr.isAnyAddr())
             storeAppendPrintf(entry, "%s %s", name, l->addr.toStr(buf,MAX_IPSTRLEN));
         else
@@ -1380,22 +1377,13 @@ dump_acl_address(StoreEntry * entry, const char *name, AclAddress * head)
 }
 
 static void
-freed_acl_address(void *data)
-{
-    AclAddress *l = static_cast<AclAddress *>(data);
-    aclDestroyAclList(&l->aclList);
-}
-
-static void
-parse_acl_address(AclAddress ** head)
+parse_acl_address(Acl::Address ** head)
 {
-    AclAddress *l;
-    AclAddress **tail = head;   /* sane name below */
-    CBDATA_INIT_TYPE_FREECB(AclAddress, freed_acl_address);
-    l = cbdataAlloc(AclAddress);
+    Acl::Address *l = new Acl::Address;
     parse_address(&l->addr);
     aclParseAclList(LegacyParser, &l->aclList, l->addr);
 
+    Acl::Address **tail = head;
     while (*tail)
         tail = &(*tail)->next;
 
@@ -1403,13 +1391,10 @@ parse_acl_address(AclAddress ** head)
 }
 
 static void
-free_acl_address(AclAddress ** head)
+free_acl_address(Acl::Address ** head)
 {
-    while (*head) {
-        AclAddress *l = *head;
-        *head = l->next;
-        cbdataFree(l);
-    }
+    delete *head;
+    *head = NULL;
 }
 
 CBDATA_TYPE(acl_tos);