+-- Prosody IM
+-- Copyright (C) 2008-2009 Matthew Wild
+-- Copyright (C) 2008-2009 Waqas Hussain
+--
+-- This project is MIT/X11 licensed. Please see the
+-- COPYING file in the source package for more information.
+--
+
local server = require "net.server";
local dns = require "net.dns";
end
log("debug", "Records for %s not in cache, sending query (%s)...", qname, tostring(coroutine.running()));
dns.query(qname, qtype, qclass);
- coroutine.yield(nil); -- Wait for reply
+ coroutine.yield({ qclass or "IN", qtype or "A", qname, coroutine.running()}); -- Wait for reply
log("debug", "Reply for %s (%s)", qname, tostring(coroutine.running()));
local ok, err = pcall(handler, dns.peek(qname, qtype, qclass));
if not ok then
end)(dns.peek(qname, qtype, qclass));
end
+function cancel(handle, call_handler)
+ log("warn", "Cancelling DNS lookup for %s", tostring(handle[3]));
+ dns.cancel(handle);
+ if call_handler then
+ coroutine.resume(handle[4]);
+ end
+end
+
function new_async_socket(sock)
local newconn = {};
local listener = {};