MCPcopy
hub / github.com/tsenart/vegeta / NewResolver

Function NewResolver

internal/resolver/resolver.go:24–36  ·  view source on GitHub ↗

NewResolver - create a new instance of a dns resolver for plugging into net.DefaultResolver. Addresses should be a list of ip addrs and optional port numbers, separated by colon. For example: 1.2.3.4:53 and 1.2.3.4 are both valid. In the absence of a port number, 53 will be used instead.

(addrs []string)

Source from the content-addressed store, hash-verified

22// For example: 1.2.3.4:53 and 1.2.3.4 are both valid. In the absence
23// of a port number, 53 will be used instead.
24func NewResolver(addrs []string) (*net.Resolver, error) {
25 if len(addrs) == 0 {
26 return nil, errors.New("must specify at least resolver address")
27 }
28 cleanAddrs, err := normalizeAddrs(addrs)
29 if err != nil {
30 return nil, err
31 }
32 return &net.Resolver{
33 PreferGo: true,
34 Dial: (&resolver{addrs: cleanAddrs, dialer: &net.Dialer{}}).dial,
35 }, nil
36}
37
38func normalizeAddrs(addrs []string) ([]string, error) {
39 normal := make([]string, len(addrs))

Callers 2

attackFunction · 0.92
TestResolverFunction · 0.85

Calls 1

normalizeAddrsFunction · 0.85

Tested by 1

TestResolverFunction · 0.68