Mercurial > prosody-hg
comparison net/dns.lua @ 3326:fb95015bc646
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
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Mon, 05 Jul 2010 12:05:46 +0100 |
| parents | b3117a1da834 |
| children | b447682f2a8d |
comparison
equal
deleted
inserted
replaced
| 3325:b3117a1da834 | 3326:fb95015bc646 |
|---|---|
| 696 conn = self:getsocket(o.server); | 696 conn = self:getsocket(o.server); |
| 697 conn:send(o.packet); | 697 conn:send(o.packet); |
| 698 return dns_timeout; | 698 return dns_timeout; |
| 699 else | 699 else |
| 700 -- Tried everything, failed | 700 -- Tried everything, failed |
| 701 resolver:cancel({qclass, qtype, qname, co}, true); | 701 resolver:cancel(qclass, qtype, qname, co, true); |
| 702 end | 702 end |
| 703 end | 703 end |
| 704 end) | 704 end) |
| 705 end | 705 end |
| 706 end | 706 end |
| 828 end | 828 end |
| 829 | 829 |
| 830 return response; | 830 return response; |
| 831 end | 831 end |
| 832 | 832 |
| 833 function resolver:cancel(data, call_handler) | 833 function resolver:cancel(qclass, qtype, qname, co, call_handler) |
| 834 local cos = get(self.wanted, unpack(data, 1, 3)); | 834 local cos = get(self.wanted, qclass, qtype, qname); |
| 835 if cos then | 835 if cos then |
| 836 if call_handler then | 836 if call_handler then |
| 837 coroutine.resume(data[4]); | 837 coroutine.resume(co); |
| 838 end | 838 end |
| 839 cos[data[4]] = nil; | 839 cos[co] = nil; |
| 840 end | 840 end |
| 841 end | 841 end |
| 842 | 842 |
| 843 function resolver:pulse() -- - - - - - - - - - - - - - - - - - - - - pulse | 843 function resolver:pulse() -- - - - - - - - - - - - - - - - - - - - - pulse |
| 844 --print(':pulse'); | 844 --print(':pulse'); |
