X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=prosodyctl;h=cf2ab74df253f1c850d9597acebc82ead6f82945;hb=6c14885d1f943ef23c00cb4afe673a82f77adbcf;hp=aa6f2073d5708225d3a81ec388e4ee6204e7184f;hpb=c36630d8de110bbe7e237baa7d67ee604147b688;p=prosody.git diff --git a/prosodyctl b/prosodyctl index aa6f2073..cf2ab74d 100755 --- a/prosodyctl +++ b/prosodyctl @@ -838,6 +838,7 @@ function commands.check(arg) end if not what or what == "dns" then local dns = require "net.dns"; + local idna = require "util.encodings".idna; local ip = require "util.ip"; local c2s_ports = set.new(config.get("*", "c2s_ports") or {5222}); local s2s_ports = set.new(config.get("*", "s2s_ports") or {5269}); @@ -856,13 +857,13 @@ function commands.check(arg) local fqdn = socket.dns.tohostname(socket.dns.gethostname()); if fqdn then - local res = dns.lookup(fqdn, "A"); + local res = dns.lookup(idna.to_ascii(fqdn), "A"); if res then for _, record in ipairs(res) do external_addresses:add(record.a); end end - local res = dns.lookup(fqdn, "AAAA"); + local res = dns.lookup(idna.to_ascii(fqdn), "AAAA"); if res then for _, record in ipairs(res) do external_addresses:add(record.aaaa); @@ -870,7 +871,7 @@ function commands.check(arg) end end - local local_addresses = socket.local_addresses and socket.local_addresses() or {}; + local local_addresses = require"util.net".local_addresses() or {}; for addr in it.values(local_addresses) do if not ip.new_ip(addr).private then @@ -895,7 +896,7 @@ function commands.check(arg) print("Checking DNS for "..(is_component and "component" or "host").." "..host.."..."); local target_hosts = set.new(); if not is_component then - local res = dns.lookup("_xmpp-client._tcp."..host..".", "SRV"); + local res = dns.lookup("_xmpp-client._tcp."..idna.to_ascii(host)..".", "SRV"); if res then for _, record in ipairs(res) do target_hosts:add(record.srv.target); @@ -912,7 +913,7 @@ function commands.check(arg) end end end - local res = dns.lookup("_xmpp-server._tcp."..host..".", "SRV"); + local res = dns.lookup("_xmpp-server._tcp."..idna.to_ascii(host)..".", "SRV"); if res then for _, record in ipairs(res) do target_hosts:add(record.srv.target); @@ -943,7 +944,7 @@ function commands.check(arg) if modules:contains("proxy65") then local proxy65_target = config.get(host, "proxy65_address") or host; - local A, AAAA = dns.lookup(proxy65_target, "A"), dns.lookup(proxy65_target, "AAAA"); + local A, AAAA = dns.lookup(idna.to_ascii(proxy65_target), "A"), dns.lookup(idna.to_ascii(proxy65_target), "AAAA"); local prob = {}; if not A then table.insert(prob, "A"); @@ -958,7 +959,7 @@ function commands.check(arg) for host in target_hosts do local host_ok_v4, host_ok_v6; - local res = dns.lookup(host, "A"); + local res = dns.lookup(idna.to_ascii(host), "A"); if res then for _, record in ipairs(res) do if external_addresses:contains(record.a) then @@ -974,7 +975,7 @@ function commands.check(arg) end end end - local res = dns.lookup(host, "AAAA"); + local res = dns.lookup(idna.to_ascii(host), "AAAA"); if res then for _, record in ipairs(res) do if external_addresses:contains(record.aaaa) then