MCPcopy
hub / github.com/txthinking/brook / Exchange

Method Exchange

dnsclient.go:28–54  ·  view source on GitHub ↗
(m *dns.Msg)

Source from the content-addressed store, hash-verified

26}
27
28func (c *DNSClient) Exchange(m *dns.Msg) (*dns.Msg, error) {
29 conn, err := DialUDP("udp", "", c.Server)
30 if err != nil {
31 return nil, err
32 }
33 defer conn.Close()
34 if err := conn.SetDeadline(time.Now().Add(time.Duration(60) * time.Second)); err != nil {
35 return nil, err
36 }
37 b, err := m.Pack()
38 if err != nil {
39 return nil, err
40 }
41 if _, err := conn.Write(b); err != nil {
42 return nil, err
43 }
44 b = make([]byte, 1024)
45 i, err := conn.Read(b)
46 if err != nil {
47 return nil, err
48 }
49 r := &dns.Msg{}
50 if err := r.Unpack(b[:i]); err != nil {
51 return nil, err
52 }
53 return r, nil
54}
55
56// if no AAAA, return nil
57func (c *DNSClient) AAAA(domain string) (net.IP, error) {

Callers 2

AAAAMethod · 0.95
AMethod · 0.95

Calls 4

CloseMethod · 0.45
SetDeadlineMethod · 0.45
WriteMethod · 0.45
ReadMethod · 0.45

Tested by

no test coverage detected