]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Allow unix domains sockets for dnstap destinations
authorOtto Moerbeek <otto.moerbeek@open-xchange.com>
Mon, 3 Jun 2019 14:15:19 +0000 (16:15 +0200)
committerOtto Moerbeek <otto.moerbeek@open-xchange.com>
Mon, 3 Jun 2019 14:15:19 +0000 (16:15 +0200)
pdns/pdns_recursor.cc
pdns/rec-lua-conf.cc
pdns/rec-lua-conf.hh

index faa4d9bf76cc7c6677bac231e38a2c5f5e1de304..491ae26bd95d34a0c4e3a5c62b2130bd90c0e4cc 100644 (file)
@@ -983,7 +983,14 @@ static std::shared_ptr<std::vector<std::unique_ptr<FrameStreamLogger>>> startFra
       options["outputQueueSize"] = config.outputQueueSize;
       options["queueNotifyThreshold"] = config.queueNotifyThreshold;
       options["reopenInterval"] = config.reopenInterval;
-      auto fsl = new FrameStreamLogger(server.sin4.sin_family, server.toStringWithPort(), true, options);
+      FrameStreamLogger *fsl = nullptr;
+      try {
+        ComboAddress address(server);
+        fsl = new FrameStreamLogger(address.sin4.sin_family, address.toStringWithPort(), true, options);
+      }
+      catch (const PDNSException& e) {
+        fsl = new FrameStreamLogger(AF_UNIX, server, true, options);
+      }
       fsl->setLogQueries(config.logQueries);
       fsl->setLogResponses(config.logResponses);
       result->emplace_back(fsl);
index bd077250cbe8c4d3d5ef77e649f4f8e25b08604a..04e2d9f67326a753883c0a140032119318ca0ff8 100644 (file)
@@ -554,14 +554,14 @@ void loadRecursorLuaConfig(const std::string& fname, luaConfigDelayedThreads& de
             parseFrameStreamOptions(vars, lci.frameStreamExportConfig);
           }
           catch(std::exception& e) {
-            g_log<<Logger::Error<<"Error while starting dnstap framestream logger: "<<e.what()<<endl;
+            g_log<<Logger::Error<<"Error reading config for dnstap framestream logger: "<<e.what()<<endl;
           }
           catch(PDNSException& e) {
-            g_log<<Logger::Error<<"Error while starting dnstap framestream logger: "<<e.reason<<endl;
+            g_log<<Logger::Error<<"Error reading config for dnstap framestream logger: "<<e.reason<<endl;
           }
       }
       else {
-        g_log<<Logger::Error<<"Only one dnstapFrameStreamServer() directive can be configured, we already have "<<lci.frameStreamExportConfig.servers.at(0).toString()<<endl;
+        g_log<<Logger::Error<<"Only one dnstapFrameStreamServer() directive can be configured, we already have "<<lci.frameStreamExportConfig.servers.at(0)<<endl;
       }
     });
 #endif /* HAVE_FSTRM */
index 8060864c9a12307df650aa472c5a5943f65bea88..1cd2e62046cd9a9ee7d9c27c39df4eb38719b7dd 100644 (file)
@@ -43,7 +43,7 @@ struct ProtobufExportConfig
 
 struct FrameStreamExportConfig
 {
-  std::vector<ComboAddress> servers;
+  std::vector<string> servers;
   bool enabled{false};
   bool logQueries{true};
   bool logResponses{true};