Mercurial > prosody-hg
comparison net/resolvers/basic.lua @ 8775:ae7cf011e46a
net.resolvers.basic: Support IP address literals
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Wed, 02 May 2018 19:06:59 +0200 |
| parents | 601681acea73 |
| children | 4ac3103787cc |
comparison
equal
deleted
inserted
replaced
| 8774:cac4bd0d3335 | 8775:ae7cf011e46a |
|---|---|
| 1 local adns = require "net.adns"; | 1 local adns = require "net.adns"; |
| 2 local inet_pton = require "util.net".pton; | |
| 2 | 3 |
| 3 local methods = {}; | 4 local methods = {}; |
| 4 local resolver_mt = { __index = methods }; | 5 local resolver_mt = { __index = methods }; |
| 5 | 6 |
| 6 -- Find the next target to connect to, and | 7 -- Find the next target to connect to, and |
| 21 local function ready() | 22 local function ready() |
| 22 n = n - 1; | 23 n = n - 1; |
| 23 if n > 0 then return; end | 24 if n > 0 then return; end |
| 24 self.targets = targets; | 25 self.targets = targets; |
| 25 self:next(cb); | 26 self:next(cb); |
| 27 end | |
| 28 | |
| 29 local is_ip = inet_pton(self.hostname); | |
| 30 if is_ip then | |
| 31 if #is_ip == 16 then | |
| 32 cb(self.conn_type.."6", self.hostname, self.port, self.extra); | |
| 33 elseif #is_ip == 4 then | |
| 34 cb(self.conn_type, self.hostname, self.port, self.extra); | |
| 35 end | |
| 36 return; | |
| 26 end | 37 end |
| 27 | 38 |
| 28 -- Resolve DNS to target list | 39 -- Resolve DNS to target list |
| 29 local dns_resolver = adns.resolver(); | 40 local dns_resolver = adns.resolver(); |
| 30 dns_resolver:lookup(function (answer) | 41 dns_resolver:lookup(function (answer) |
