]> granicus.if.org Git - pdns/commitdiff
dnsdist: De-duplicate DNSCrypt binds in `showDNSCryptBinds()`
authorRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 2 Jul 2019 15:07:34 +0000 (17:07 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 2 Jul 2019 15:07:34 +0000 (17:07 +0200)
pdns/dnsdist-lua.cc

index ac9f00f46d01077aef7278cc8ec57508cebe44cb..9165ab1eed75e93f80c1db87cff5c12bf687e33a 100644 (file)
@@ -1133,11 +1133,13 @@ void setupLuaConfig(bool client)
       ret << (fmt % "#" % "Address" % "Provider Name") << endl;
       size_t idx = 0;
 
+      std::unordered_set<std::shared_ptr<DNSCryptContext>> contexts;
       for (const auto& frontend : g_frontends) {
         const std::shared_ptr<DNSCryptContext> ctx = frontend->dnscryptCtx;
-        if (!ctx) {
+        if (!ctx || contexts.count(ctx) != 0) {
           continue;
         }
+        contexts.insert(ctx);
         ret<< (fmt % idx % frontend->local.toStringWithPort() % ctx->getProviderName()) << endl;
         idx++;
       }