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

Method Exchange

dohclient.go:58–83  ·  view source on GitHub ↗
(m *dns.Msg)

Source from the content-addressed store, hash-verified

56}
57
58func (c *DOHClient) Exchange(m *dns.Msg) (*dns.Msg, error) {
59 b, err := m.Pack()
60 if err != nil {
61 return nil, err
62 }
63 hr, err := http.NewRequest("POST", c.DOH, bytes.NewReader(b))
64 if err != nil {
65 return nil, err
66 }
67 hr.Header.Set("Accept", "application/dns-message")
68 hr.Header.Set("Content-Type", "application/dns-message")
69 res, err := c.Client.Do(hr)
70 if err != nil {
71 return nil, err
72 }
73 defer res.Body.Close()
74 b, err = io.ReadAll(res.Body)
75 if err != nil {
76 return nil, err
77 }
78 r := &dns.Msg{}
79 if err := r.Unpack(b); err != nil {
80 return nil, err
81 }
82 return r, nil
83}
84
85// if no AAAA, return nil
86func (c *DOHClient) AAAA(domain string) (net.IP, error) {

Callers 3

AAAAMethod · 0.95
AMethod · 0.95
mainFunction · 0.95

Calls 2

SetMethod · 0.80
CloseMethod · 0.45

Tested by

no test coverage detected