]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Cleanup: migrate acl_tos and acl_nfmark to CBDATA_CLASS API
authorAmos Jeffries <squid3@treenet.co.nz>
Mon, 2 Feb 2015 18:51:25 +0000 (10:51 -0800)
committerAmos Jeffries <squid3@treenet.co.nz>
Mon, 2 Feb 2015 18:51:25 +0000 (10:51 -0800)
Also a little documentation and syntax polishing.

src/FwdState.cc
src/cache_cf.cc
src/ip/QosConfig.cc
src/ip/QosConfig.h

index 2072553b000c87f947ec054e4e18b1f0e7f6ae84..4845af5722a7e1f65a184223c42b778b1e6a3036 100644 (file)
@@ -1197,9 +1197,7 @@ FwdState::logReplyStatus(int tries, const Http::StatusCode status)
 tos_t
 aclMapTOS(acl_tos * head, ACLChecklist * ch)
 {
-    acl_tos *l;
-
-    for (l = head; l; l = l->next) {
+    for (acl_tos *l = head; l; l = l->next) {
         if (!l->aclList || ch->fastCheck(l->aclList) == ACCESS_ALLOWED)
             return l->tos;
     }
@@ -1211,9 +1209,7 @@ aclMapTOS(acl_tos * head, ACLChecklist * ch)
 nfmark_t
 aclMapNfmark(acl_nfmark * head, ACLChecklist * ch)
 {
-    acl_nfmark *l;
-
-    for (l = head; l; l = l->next) {
+    for (acl_nfmark *l = head; l; l = l->next) {
         if (!l->aclList || ch->fastCheck(l->aclList) == ACCESS_ALLOWED)
             return l->nfmark;
     }
index d497e240d3e9a989bb1b7200a07576216c1c7f46..6cd55985df413e9d5d7ea7d71563386d47319656 100644 (file)
@@ -1397,8 +1397,6 @@ free_acl_address(Acl::Address ** head)
     *head = NULL;
 }
 
-CBDATA_TYPE(acl_tos);
-
 static void
 dump_acl_tos(StoreEntry * entry, const char *name, acl_tos * head)
 {
@@ -1416,18 +1414,9 @@ dump_acl_tos(StoreEntry * entry, const char *name, acl_tos * head)
     }
 }
 
-static void
-freed_acl_tos(void *data)
-{
-    acl_tos *l = static_cast<acl_tos *>(data);
-    aclDestroyAclList(&l->aclList);
-}
-
 static void
 parse_acl_tos(acl_tos ** head)
 {
-    acl_tos *l;
-    acl_tos **tail = head;  /* sane name below */
     unsigned int tos;           /* Initially uint for strtoui. Casted to tos_t before return */
     char *token = ConfigParser::NextToken();
 
@@ -1447,14 +1436,13 @@ parse_acl_tos(acl_tos ** head)
         tos = chTos;
     }
 
-    CBDATA_INIT_TYPE_FREECB(acl_tos, freed_acl_tos);
-
-    l = cbdataAlloc(acl_tos);
+    acl_tos *l = new acl_tos;
 
     l->tos = (tos_t)tos;
 
     aclParseAclList(LegacyParser, &l->aclList, token);
 
+    acl_tos **tail = head;  /* sane name below */
     while (*tail)
         tail = &(*tail)->next;
 
@@ -1464,24 +1452,16 @@ parse_acl_tos(acl_tos ** head)
 static void
 free_acl_tos(acl_tos ** head)
 {
-    while (*head) {
-        acl_tos *l = *head;
-        *head = l->next;
-        l->next = NULL;
-        cbdataFree(l);
-    }
+    delete *head;
+    head = NULL;
 }
 
 #if SO_MARK && USE_LIBCAP
 
-CBDATA_TYPE(acl_nfmark);
-
 static void
 dump_acl_nfmark(StoreEntry * entry, const char *name, acl_nfmark * head)
 {
-    acl_nfmark *l;
-
-    for (l = head; l; l = l->next) {
+    for (acl_nfmark *l = head; l; l = l->next) {
         if (l->nfmark > 0)
             storeAppendPrintf(entry, "%s 0x%02X", name, l->nfmark);
         else
@@ -1493,18 +1473,9 @@ dump_acl_nfmark(StoreEntry * entry, const char *name, acl_nfmark * head)
     }
 }
 
-static void
-freed_acl_nfmark(void *data)
-{
-    acl_nfmark *l = static_cast<acl_nfmark *>(data);
-    aclDestroyAclList(&l->aclList);
-}
-
 static void
 parse_acl_nfmark(acl_nfmark ** head)
 {
-    acl_nfmark *l;
-    acl_nfmark **tail = head;   /* sane name below */
     nfmark_t mark;
     char *token = ConfigParser::NextToken();
 
@@ -1518,14 +1489,13 @@ parse_acl_nfmark(acl_nfmark ** head)
         return;
     }
 
-    CBDATA_INIT_TYPE_FREECB(acl_nfmark, freed_acl_nfmark);
-
-    l = cbdataAlloc(acl_nfmark);
+    acl_nfmark *l = new acl_nfmark;
 
     l->nfmark = mark;
 
     aclParseAclList(LegacyParser, &l->aclList, token);
 
+    acl_nfmark **tail = head;   /* sane name below */
     while (*tail)
         tail = &(*tail)->next;
 
@@ -1535,12 +1505,8 @@ parse_acl_nfmark(acl_nfmark ** head)
 static void
 free_acl_nfmark(acl_nfmark ** head)
 {
-    while (*head) {
-        acl_nfmark *l = *head;
-        *head = l->next;
-        l->next = NULL;
-        cbdataFree(l);
-    }
+    delete *head;
+    head = NULL;
 }
 #endif /* SO_MARK */
 
index 7731c215d7327e7269f14c60255188c5cd964dc7..1d8a1c8620a8d8f92fb56bc649852b031fd20794 100644 (file)
 
 #include <cerrno>
 
+CBDATA_CLASS_INIT(acl_tos);
+
+acl_tos::~acl_tos()
+{
+    aclDestroyAclList(&aclList);
+    delete next;
+}
+
+CBDATA_CLASS_INIT(acl_nfmark);
+
+acl_nfmark::~acl_nfmark()
+{
+    aclDestroyAclList(&aclList);
+    delete next;
+}
+
 void
 Ip::Qos::getTosFromServer(const Comm::ConnectionPointer &server, fde *clientFde)
 {
index 882e1426a4431bbd758d98c8d7e5765efcc005e6..62eaca313ad16234225db3c2b8603b4fb56440a6 100644 (file)
 class fde;
 
 // TODO: move to new ACL framework
-// not integrated in namespace, as this class uses a strange CBDATA definition
-// POD
 class acl_tos
 {
+    CBDATA_CLASS(acl_tos);
+
 public:
+    acl_tos() : next(NULL), aclList(NULL) {}
+    ~acl_tos();
+
     acl_tos *next;
     ACLList *aclList;
     tos_t tos;
 };
+
 // TODO: move to new ACL framework
-// not integrated in namespace, as this class uses a strange CBDATA definition
-// POD
 class acl_nfmark
 {
+    CBDATA_CLASS(acl_nfmark);
+
 public:
+    acl_nfmark() : next(NULL), aclList(NULL) {}
+    ~acl_nfmark();
+
     acl_nfmark *next;
     ACLList *aclList;
     nfmark_t nfmark;