net.dns, net.adns: Update resolver:cancel() API so that a table doesn't need to be created for each cancellation internal to net.dns

Mon, 05 Jul 2010 12:05:46 +0100

author
Matthew Wild <mwild1@gmail.com>
date
Mon, 05 Jul 2010 12:05:46 +0100
changeset 3326
fb95015bc646
parent 3325
b3117a1da834
child 3327
b447682f2a8d

net.dns, net.adns: Update resolver:cancel() API so that a table doesn't need to be created for each cancellation internal to net.dns

net/adns.lua file | annotate | diff | comparison | revisions
net/dns.lua file | annotate | diff | comparison | revisions
--- a/net/adns.lua	Mon Jul 05 11:51:17 2010 +0100
+++ b/net/adns.lua	Mon Jul 05 12:05:46 2010 +0100
@@ -38,7 +38,7 @@
 
 function cancel(handle, call_handler, reason)
 	log("warn", "Cancelling DNS lookup for %s", tostring(handle[3]));
-	dns.cancel(handle, call_handler);
+	dns.cancel(handle[1], handle[2], handle[3], handle[4], call_handler);
 end
 
 function new_async_socket(sock, resolver)
--- a/net/dns.lua	Mon Jul 05 11:51:17 2010 +0100
+++ b/net/dns.lua	Mon Jul 05 12:05:46 2010 +0100
@@ -698,7 +698,7 @@
 					return dns_timeout;
 				else
 					-- Tried everything, failed
-					resolver:cancel({qclass, qtype, qname, co}, true);
+					resolver:cancel(qclass, qtype, qname, co, true);
 				end
 			end
 		end)
@@ -830,13 +830,13 @@
 	return response;
 end
 
-function resolver:cancel(data, call_handler)
-	local cos = get(self.wanted, unpack(data, 1, 3));
+function resolver:cancel(qclass, qtype, qname, co, call_handler)
+	local cos = get(self.wanted, qclass, qtype, qname);
 	if cos then
 		if call_handler then
-			coroutine.resume(data[4]);
+			coroutine.resume(co);
 		end
-		cos[data[4]] = nil;
+		cos[co] = nil;
 	end
 end
 

mercurial