diff options
| author | Shulhan <ms@kilabit.info> | 2018-09-25 10:52:30 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2018-09-25 10:52:30 +0700 |
| commit | 2b642292b3c2d4ae46308f01428bc955e974ad98 (patch) | |
| tree | bdda41b20acbbf4ac7d803ae2fdffcd898329c9f | |
| parent | af219eca7a9b4609b288103530cafc73f52c1266 (diff) | |
| download | pakakeh.go-2b642292b3c2d4ae46308f01428bc955e974ad98.tar.xz | |
lib/dns: simplify reading and closing response body on DoH client
| -rw-r--r-- | lib/dns/dohclient.go | 42 |
1 files changed, 14 insertions, 28 deletions
diff --git a/lib/dns/dohclient.go b/lib/dns/dohclient.go index 68bf9724..7de92672 100644 --- a/lib/dns/dohclient.go +++ b/lib/dns/dohclient.go @@ -136,15 +136,13 @@ func (cl *DoHClient) Post(msg *Message) (*Message, error) { res := NewMessage() packet, err := ioutil.ReadAll(httpRes.Body) + httpRes.Body.Close() if err != nil { - httpRes.Body.Close() return nil, err } res.Packet = append(res.Packet[:0], packet...) - httpRes.Body.Close() - err = res.Unpack() return res, err @@ -167,26 +165,20 @@ func (cl *DoHClient) Get(msg *Message) (*Message, error) { return nil, err } - if httpRes.StatusCode != 200 { - body, err := ioutil.ReadAll(httpRes.Body) - if err != nil { - return nil, err - } - err = fmt.Errorf("%s", string(body)) + body, err := ioutil.ReadAll(httpRes.Body) + httpRes.Body.Close() + if err != nil { return nil, err } - res := NewMessage() - - packet, err := ioutil.ReadAll(httpRes.Body) - if err != nil { - httpRes.Body.Close() + if httpRes.StatusCode != 200 { + err = fmt.Errorf("%s", string(body)) return nil, err } - res.Packet = append(res.Packet[:0], packet...) + res := NewMessage() - httpRes.Body.Close() + res.Packet = append(res.Packet[:0], body...) if len(res.Packet) > 20 { err = res.Unpack() @@ -212,24 +204,18 @@ func (cl *DoHClient) Query(msg *Message, ns net.Addr) (*Message, error) { func (cl *DoHClient) Recv(msg *Message) (int, error) { httpRes := <-cl.chRes - if httpRes.StatusCode != 200 { - body, err := ioutil.ReadAll(httpRes.Body) - if err != nil { - return 0, err - } - err = fmt.Errorf("%s", string(body)) + body, err := ioutil.ReadAll(httpRes.Body) + httpRes.Body.Close() + if err != nil { return 0, err } - packet, err := ioutil.ReadAll(httpRes.Body) - if err != nil { - httpRes.Body.Close() + if httpRes.StatusCode != 200 { + err = fmt.Errorf("%s", string(body)) return 0, err } - msg.Packet = append(msg.Packet[:0], packet...) - - httpRes.Body.Close() + msg.Packet = append(msg.Packet[:0], body...) if len(msg.Packet) > 20 { err = msg.Unpack() |
