(addr string)
| 17 | } |
| 18 | |
| 19 | func NewTCPResolver(addr string) *net.Resolver { |
| 20 | return &net.Resolver{ |
| 21 | PreferGo: true, |
| 22 | Dial: func(ctx context.Context, network, _ string) (net.Conn, error) { |
| 23 | dnet := "tcp" |
| 24 | switch network { |
| 25 | case "udp4": |
| 26 | dnet = "tcp4" |
| 27 | case "udp6": |
| 28 | dnet = "tcp6" |
| 29 | } |
| 30 | return (&net.Dialer{ |
| 31 | Resolver: &net.Resolver{}, |
| 32 | }).DialContext(ctx, dnet, addr) |
| 33 | }, |
| 34 | } |
| 35 | } |