MCPcopy Create free account
hub / github.com/SenseUnit/dumbproxy / LookupNetIP

Method LookupNetIP

resolver/fast.go:40–74  ·  view source on GitHub ↗
(ctx context.Context, network, host string)

Source from the content-addressed store, hash-verified

38}
39
40func (r FastResolver) LookupNetIP(ctx context.Context, network, host string) ([]netip.Addr, error) {
41 ctx, cl := context.WithCancel(ctx)
42 defer cl()
43 errors := make(chan error)
44 success := make(chan []netip.Addr)
45 for _, res := range r.upstreams {
46 go func(res LookupNetIPer) {
47 addrs, err := res.LookupNetIP(ctx, network, host)
48 if err == nil {
49 select {
50 case success <- addrs:
51 case <-ctx.Done():
52 }
53 } else {
54 select {
55 case errors <- err:
56 case <-ctx.Done():
57 }
58 }
59 }(res)
60 }
61
62 var resErr error
63 for _ = range r.upstreams {
64 select {
65 case <-ctx.Done():
66 return nil, ctx.Err()
67 case resAddrs := <-success:
68 return resAddrs, nil
69 case err := <-errors:
70 resErr = multierror.Append(resErr, err)
71 }
72 }
73 return nil, resErr
74}

Callers

nothing calls this directly

Calls 1

LookupNetIPMethod · 0.65

Tested by

no test coverage detected