net.dns, net.adns: Move coroutine-calling logic into resolver:cancel()

Mon, 05 Jul 2010 11:51:17 +0100

author
Matthew Wild <mwild1@gmail.com>
date
Mon, 05 Jul 2010 11:51:17 +0100
changeset 3325
b3117a1da834
parent 3324
070c8ba71b76
child 3326
fb95015bc646

net.dns, net.adns: Move coroutine-calling logic into resolver:cancel()

net/adns.lua file | annotate | diff | comparison | revisions
net/dns.lua file | annotate | diff | comparison | revisions
--- a/net/adns.lua	Mon Jul 05 11:50:21 2010 +0100
+++ b/net/adns.lua	Mon Jul 05 11:51:17 2010 +0100
@@ -36,12 +36,9 @@
 			end)(dns.peek(qname, qtype, qclass));
 end
 
-function cancel(handle, call_handler)
+function cancel(handle, call_handler, reason)
 	log("warn", "Cancelling DNS lookup for %s", tostring(handle[3]));
-	dns.cancel(handle);
-	if call_handler then
-		coroutine.resume(handle[4]);
-	end
+	dns.cancel(handle, call_handler);
 end
 
 function new_async_socket(sock, resolver)
--- a/net/dns.lua	Mon Jul 05 11:50:21 2010 +0100
+++ b/net/dns.lua	Mon Jul 05 11:51:17 2010 +0100
@@ -830,9 +830,12 @@
 	return response;
 end
 
-function resolver:cancel(data)
+function resolver:cancel(data, call_handler)
 	local cos = get(self.wanted, unpack(data, 1, 3));
 	if cos then
+		if call_handler then
+			coroutine.resume(data[4]);
+		end
 		cos[data[4]] = nil;
 	end
 end

mercurial