# HG changeset patch # User Kim Alvefur # Date 1685534899 -7200 # Node ID 332e95f75dbb91b5a15e988e0486015bf39a955b # Parent d5f322dd424b497ed6f0e1cfa729524377fba780 util.prosodyctl.check: Fix error where hostname can't be turned into A label Where gethostname or tohostname returns an invalid name, e.g. containing underscores or something, to_ascii would reject this and return nil, which triggers an error in the dns lookup. Reported by prova2 in the chat, for whom tohostname returned a long name containing underscores. diff -r d5f322dd424b -r 332e95f75dbb util/prosodyctl/check.lua --- a/util/prosodyctl/check.lua Thu Aug 18 03:26:32 2022 +0200 +++ b/util/prosodyctl/check.lua Wed May 31 14:08:19 2023 +0200 @@ -751,16 +751,17 @@ local fqdn = socket.dns.tohostname(socket.dns.gethostname()); if fqdn then - do - local res = dns.lookup(idna.to_ascii(fqdn), "A"); + local fqdn_a = idna.to_ascii(fqdn); + if fqdn_a then + local res = dns.lookup(fqdn_a, "A"); if res then for _, record in ipairs(res) do external_addresses:add(record.a); end end end - do - local res = dns.lookup(idna.to_ascii(fqdn), "AAAA"); + if fqdn_a then + local res = dns.lookup(fqdn_a, "AAAA"); if res then for _, record in ipairs(res) do external_addresses:add(record.aaaa);