From 806c95f2cc970133df888fcd12e5eff4b084653d Mon Sep 17 00:00:00 2001 From: bert hubert Date: Mon, 20 Oct 2014 16:49:20 +0200 Subject: [PATCH] actually add the relevant files --- pdns/secpoll-recursor.cc | 50 ++++++++++++++++++++++++++++++++++++++++ pdns/secpoll-recursor.hh | 10 ++++++++ 2 files changed, 60 insertions(+) create mode 100644 pdns/secpoll-recursor.cc create mode 100644 pdns/secpoll-recursor.hh diff --git a/pdns/secpoll-recursor.cc b/pdns/secpoll-recursor.cc new file mode 100644 index 0000000000..284be75910 --- /dev/null +++ b/pdns/secpoll-recursor.cc @@ -0,0 +1,50 @@ +#include "secpoll-recursor.hh" +#include "syncres.hh" +#include "logger.hh" +#include "arguments.hh" + +#ifndef PACKAGEVERSION +#define PACKAGEVERSION VERSION +#endif + +uint32_t g_security_status; +string g_security_message; + +void doSecPoll(time_t* last_secpoll) +{ + if(::arg()["security-poll-suffix"].empty()) + return; + + struct timeval now; + gettimeofday(&now, 0); + SyncRes sr(now); + + vector ret; + + int res=sr.beginResolve("recursor-" PACKAGEVERSION ".security-status."+::arg()["security-poll-suffix"], QType(QType::TXT), 1, ret); + if(!res && !ret.empty()) { + string content=ret.begin()->content; + if(!content.empty() && content[0]=='"' && content[content.size()-1]=='"') { + content=content.substr(1, content.length()-2); + } + + pair split = splitField(content, ' '); + + g_security_status = atoi(split.first.c_str()); + g_security_message = split.second; + + *last_secpoll=now.tv_sec; + } + else { + L< +#include "namespaces.hh" + +void doSecPoll(time_t* ); +extern uint32_t g_security_status; +extern std::string g_security_message; + +#endif -- 2.47.2