diff --git a/client.go b/client.go index 87740727..d982de7f 100644 --- a/client.go +++ b/client.go @@ -69,7 +69,7 @@ func (c *Client) exchangeBuffer(inbuf []byte, a string, outbuf []byte) (n int, w if err = w.dial(); err != nil { return 0, w, err } - defer w.close() + defer w.conn.Close() w.t = time.Now() if n, err = w.writeClient(inbuf); err != nil { return 0, w, err @@ -120,9 +120,6 @@ func (c *Client) ExchangeRtt(m *Msg, a string) (r *Msg, rtt time.Duration, err e in = make([]byte, size) } if n, w, err = c.exchangeBuffer(out, a, in); err != nil { - if w.conn != nil { - return nil, 0, err - } return nil, 0, err } r = new(Msg) @@ -355,5 +352,3 @@ func setTimeouts(w *reply) { w.conn.SetWriteDeadline(time.Now().Add(w.client.WriteTimeout)) } } - -func (w *reply) close() (err error) { return w.conn.Close() } diff --git a/xfr.go b/xfr.go index f6bd6533..417b1493 100644 --- a/xfr.go +++ b/xfr.go @@ -55,7 +55,7 @@ func (c *Client) XfrReceive(q *Msg, a string) (chan *XfrMsg, error) { func (w *reply) axfrReceive(c chan *XfrMsg) { first := true - defer w.close() + defer w.conn.Close() defer close(c) for { in, err := w.receive() @@ -90,7 +90,7 @@ func (w *reply) axfrReceive(c chan *XfrMsg) { func (w *reply) ixfrReceive(c chan *XfrMsg) { var serial uint32 // The first serial seen is the current server serial first := true - defer w.close() + defer w.conn.Close() defer close(c) for { in, err := w.receive()