# HG changeset patch # User Kim Alvefur # Date 1574566994 -3600 # Node ID 1ee87b4979c29534fef03e0407ade5af6f723944 # Parent 55490be0dc2948bed3e7d6731104886f65e22ddc net.resolvers.service: Pass IP literals directly to basic resolver IP literals will not work with SRV records anyways. Fixes s2s with IP literals. diff -r 55490be0dc29 -r 1ee87b4979c2 net/resolvers/service.lua --- a/net/resolvers/service.lua Sun Nov 24 04:30:32 2019 +0100 +++ b/net/resolvers/service.lua Sun Nov 24 04:43:14 2019 +0100 @@ -1,5 +1,6 @@ local adns = require "net.adns"; local basic = require "net.resolvers.basic"; +local inet_pton = require "util.net".pton; local idna_to_ascii = require "util.encodings".idna.to_ascii; local unpack = table.unpack or unpack; -- luacheck: ignore 113 @@ -69,6 +70,14 @@ end local function new(hostname, service, conn_type, extra) + local is_ip = inet_pton(hostname); + if not is_ip and hostname:sub(1,1) == '[' then + is_ip = inet_pton(hostname:sub(2,-2)); + end + if is_ip and extra and extra.default_port then + return basic.new(hostname, extra.default_port, conn_type, extra); + end + return setmetatable({ hostname = idna_to_ascii(hostname); service = service;