From 30d8aee5ba4c188ad1c3c961008fe1558f79a8bc Mon Sep 17 00:00:00 2001 From: Vladislav Yarmak Date: Wed, 24 Sep 2025 00:32:48 +0300 Subject: [PATCH] resolver: fix empty scheme --- resolver/factory.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/resolver/factory.go b/resolver/factory.go index fc0688c..d650174 100644 --- a/resolver/factory.go +++ b/resolver/factory.go @@ -10,6 +10,7 @@ import ( ) func FromURL(u string) (*net.Resolver, error) { +begin: parsed, err := url.Parse(u) if err != nil { return nil, err @@ -17,7 +18,15 @@ func FromURL(u string) (*net.Resolver, error) { host := parsed.Hostname() port := parsed.Port() switch scheme := strings.ToLower(parsed.Scheme); scheme { - case "", "udp", "dns": + case "": + switch { + case strings.HasPrefix(u, "//"): + u = "dns:" + u + default: + u = "dns://" + u + } + goto begin + case "udp", "dns": if port == "" { port = "53" }