]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Cleanup: convert DNS nameserver list from wordlist to SBufList
authorAmos Jeffries <squid3@treenet.co.nz>
Sun, 19 Feb 2017 04:18:27 +0000 (17:18 +1300)
committerAmos Jeffries <squid3@treenet.co.nz>
Sun, 19 Feb 2017 04:18:27 +0000 (17:18 +1300)
src/SquidConfig.h
src/cache_cf.cc
src/cf.data.depend
src/cf.data.pre
src/dns_internal.cc
src/icmp/Makefile.am

index c83aac4f36ba6166464862b57e67dac716a3a451..8770018f4d9923c8e6e5c8a15a8a1c78f1cd345c 100644 (file)
@@ -234,7 +234,6 @@ public:
     size_t tcpRcvBufsz;
     size_t udpMaxHitObjsz;
     wordlist *mcast_group_list;
-    wordlist *dns_nameservers;
     CachePeer *peers;
     int npeers;
 
@@ -531,6 +530,7 @@ public:
     char *storeId_extras;
 
     struct {
+        SBufList nameservers;
         int v4_first;       ///< Place IPv4 first in the order of DNS results.
         ssize_t packet_max; ///< maximum size EDNS advertised for DNS replies.
     } dns;
index 17c864b5835e9b39fa7775fa36682ab1f8cb40c6..a37a29ba97e7179ad4309831acef00a6d9686eda 100644 (file)
@@ -1300,16 +1300,42 @@ parseBytesUnits(const char *unit)
     return 0;
 }
 
+static void
+parse_SBufList(SBufList * list)
+{
+    while (char *token = ConfigParser::NextQuotedToken())
+        list->push_back(SBuf(token));
+}
+
+// just dump a list, no directive name
 static void
 dump_SBufList(StoreEntry * entry, const SBufList &words)
 {
-    for (SBufList::const_iterator i = words.begin(); i != words.end(); ++i) {
-        entry->append(i->rawContent(), i->length());
+    for (const auto &i : words) {
+        entry->append(i.rawContent(), i.length());
         entry->append(" ",1);
     }
     entry->append("\n",1);
 }
 
+// dump a SBufList type directive with name
+static void
+dump_SBufList(StoreEntry * entry, const char *name, SBufList &list)
+{
+    if (!list.empty()) {
+        entry->append(name, strlen(name));
+        entry->append(" ", 1);
+        dump_SBufList(entry, list);
+    }
+}
+
+static void
+free_SBufList(SBufList *list)
+{
+    if (list)
+        list->clear();
+}
+
 static void
 dump_acl(StoreEntry * entry, const char *name, ACL * ae)
 {
index d78fe2a1d71495ab554b13e9e049e662c9f1bdf6..d11e7e2cd74baeb31b9280ead3b7f76d2804f3f5 100644 (file)
@@ -86,6 +86,7 @@ wccp2_amethod
 wccp2_service
 wccp2_service_info
 wordlist
+SBufList
 sslproxy_ssl_bump      acl
 sslproxy_ssl_bump_peeked acl
 sslproxy_cert_sign     acl
index 64e7dea1c2cfc11b38824a3e1526811446a284bd..d9cc7f8c5de02031e27e6ad3d91275936e4375d7 100644 (file)
@@ -9328,10 +9328,10 @@ DOC_START
 DOC_END
 
 NAME: dns_nameservers
-TYPE: wordlist
+TYPE: SBufList
 DEFAULT: none
 DEFAULT_DOC: Use operating system definitions
-LOC: Config.dns_nameservers
+LOC: Config.dns.nameservers
 DOC_START
        Use this if you want to specify a list of DNS name servers
        (IP addresses) to use instead of those given in your
index f4120cb1815fcec261db61ba13807e9a33a04f0a..4da508416fc630c3aafeec2e712dd0a546fcfed7 100644 (file)
@@ -416,9 +416,9 @@ static bool
 idnsParseNameservers(void)
 {
     bool result = false;
-    for (wordlist *w = Config.dns_nameservers; w; w = w->next) {
-        debugs(78, DBG_IMPORTANT, "Adding nameserver " << w->key << " from squid.conf");
-        idnsAddNameserver(w->key);
+    for (auto &i : Config.dns.nameservers) {
+        debugs(78, DBG_IMPORTANT, "Adding nameserver " << i << " from squid.conf");
+        idnsAddNameserver(i.c_str());
         result = true;
     }
     return result;
index 97f3cb12169cf66addef6ced00268310219c5ac3..2d7a32c92aa87ee509a98344791fe597079ec452 100644 (file)
@@ -47,6 +47,7 @@ COPIED_SOURCE= \
        SquidNew.cc \
        stub_HelperChildConfig.cc \
        stub_libmem.cc \
+       stub_SBuf.cc \
        STUB.h \
        time.cc
 
@@ -108,5 +109,8 @@ stub_HelperChildConfig.cc: $(top_srcdir)/src/tests/stub_HelperChildConfig.cc
 stub_libmem.cc: $(top_srcdir)/src/tests/stub_libmem.cc STUB.h
        cp $(top_srcdir)/src/tests/stub_libmem.cc $@
 
+stub_SBuf.cc: $(top_srcdir)/src/tests/stub_SBuf.cc STUB.h
+       cp $(top_srcdir)/src/tests/stub_SBuf.cc $@
+
 STUB.h: $(top_srcdir)/src/tests/STUB.h
        cp $(top_srcdir)/src/tests/STUB.h $@