Switch to lightweight secure DNS client

This commit is contained in:
Vladislav Yarmak
2025-08-12 19:38:17 +03:00
parent 8ebbd70126
commit e1c30f97c7
9 changed files with 163 additions and 132 deletions
+35
View File
@@ -0,0 +1,35 @@
package resolver
import (
"context"
"net"
)
func NewPlainResolver(addr string) *net.Resolver {
return &net.Resolver{
PreferGo: true,
Dial: func(ctx context.Context, network, _ string) (net.Conn, error) {
return (&net.Dialer{
Resolver: &net.Resolver{},
}).DialContext(ctx, network, addr)
},
}
}
func NewTCPResolver(addr string) *net.Resolver {
return &net.Resolver{
PreferGo: true,
Dial: func(ctx context.Context, network, _ string) (net.Conn, error) {
dnet := "tcp"
switch (network) {
case "udp4":
dnet = "tcp4"
case "udp6":
dnet = "tcp6"
}
return (&net.Dialer{
Resolver: &net.Resolver{},
}).DialContext(ctx, dnet, addr)
},
}
}