#include <thread>
#include <future>
-#include <mutex>
#include <boost/format.hpp>
#include <utility>
#include "version.hh"
#include "ext/luawrapper/include/LuaContext.hpp"
+#include "lock.hh"
#include "lua-auth4.hh"
#include "sstuff.hh"
#include "minicurl.hh"
static std::vector<DNSZoneRecord> lookup(const DNSName& name, uint16_t qtype, int zoneid)
{
- static UeberBackend ub;
- static std::mutex mut;
- std::lock_guard<std::mutex> lock(mut);
- ub.lookup(QType(qtype), name, zoneid);
+ static LockGuarded<UeberBackend> s_ub;
+
DNSZoneRecord dr;
vector<DNSZoneRecord> ret;
- while(ub.get(dr)) {
- ret.push_back(dr);
+ {
+ auto ub = s_ub.lock();
+ ub->lookup(QType(qtype), name, zoneid);
+ while (ub->get(dr)) {
+ ret.push_back(dr);
+ }
}
return ret;
}