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);
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 */