Resolver::~Resolver()
{
- for(std::map<std::string,int>::iterator iter = locals.begin(); iter != locals.end(); iter++) {
- close(iter->second);
- }
+ for(std::map<std::string,int>::iterator iter = locals.begin(); iter != locals.end(); iter++) {
+ if (iter->second >= 0)
+ close(iter->second);
+ }
}
uint16_t Resolver::sendResolve(const ComboAddress& remote, const ComboAddress& local,
} else {
// try to make socket
sock = makeQuerySocket(local, true);
+ Utility::setNonBlocking( sock );
locals[lstr] = sock;
}
}
function prequery ( dnspacket )
qname, qtype = dnspacket:getQuestion()
remote = dnspacket:getRemote()
- if qname == "stest.com" and remote != "127.0.0.2":
- return false
- return true
+ if qname == "stest.com" and remote ~= "127.0.0.2" then
+ dnspacket:setRcode(pdns.NXDOMAIN)
+ return true
+ end
+ return false
end