struct ProtobufExportConfig
{
std::set<uint16_t> exportTypes = { QType::A, QType::AAAA, QType::CNAME };
- ComboAddress server;
+ std::vector<ComboAddress> servers;
uint64_t maxQueuedEntries{100};
uint16_t timeout{2};
uint16_t reconnectWaitTime{1};
bool taggedOnly{false};
};
+struct FrameStreamExportConfig
+{
+ std::vector<string> servers;
+ bool enabled{false};
+ bool logQueries{true};
+ bool logResponses{true};
+ unsigned bufferHint{0};
+ unsigned flushTimeout{0};
+ unsigned inputQueueSize{0};
+ unsigned outputQueueSize{0};
+ unsigned queueNotifyThreshold{0};
+ unsigned reopenInterval{0};
+};
+
+struct TrustAnchorFileInfo {
+ uint32_t interval{24};
+ std::string fname;
+};
+
class LuaConfigItems
{
public:
LuaConfigItems();
SortList sortlist;
DNSFilterEngine dfe;
+ TrustAnchorFileInfo trustAnchorFileInfo; // Used to update the Trust Anchors from file periodically
map<DNSName,dsmap_t> dsAnchors;
map<DNSName,std::string> negAnchors;
ProtobufExportConfig protobufExportConfig;
ProtobufExportConfig outgoingProtobufExportConfig;
+ FrameStreamExportConfig frameStreamExportConfig;
+
/* we need to increment this every time the configuration
is reloaded, so we know if we need to reload the protobuf
remote loggers */
struct luaConfigDelayedThreads
{
- std::vector<std::tuple<std::vector<ComboAddress>, boost::optional<DNSFilterEngine::Policy>, uint32_t, size_t, TSIGTriplet, size_t, ComboAddress, uint16_t, std::shared_ptr<SOARecordContent>, std::string> > rpzMasterThreads;
+ std::vector<std::tuple<std::vector<ComboAddress>, boost::optional<DNSFilterEngine::Policy>, bool, uint32_t, size_t, TSIGTriplet, size_t, ComboAddress, uint16_t, std::shared_ptr<SOARecordContent>, std::string> > rpzMasterThreads;
};
void loadRecursorLuaConfig(const std::string& fname, luaConfigDelayedThreads& delayedThreads);