aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2018-09-25 10:52:30 +0700
committerShulhan <ms@kilabit.info>2018-09-25 10:52:30 +0700
commit2b642292b3c2d4ae46308f01428bc955e974ad98 (patch)
treebdda41b20acbbf4ac7d803ae2fdffcd898329c9f
parentaf219eca7a9b4609b288103530cafc73f52c1266 (diff)
downloadpakakeh.go-2b642292b3c2d4ae46308f01428bc955e974ad98.tar.xz
lib/dns: simplify reading and closing response body on DoH client
-rw-r--r--lib/dns/dohclient.go42
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()