diff options
author | 2018-09-17 10:21:12 -0700 | |
---|---|---|
committer | 2018-09-17 10:21:12 -0700 | |
commit | 4ac06a342b48e25cf79773a7d9d1cf57f0f6c564 (patch) | |
tree | 10bbee2653b802d0e1c07b8f8d077d50f953e1e3 | |
parent | 063999551d2d7ac58a66c1c376668ac2d44af379 (diff) | |
download | coredns-4ac06a342b48e25cf79773a7d9d1cf57f0f6c564.tar.gz coredns-4ac06a342b48e25cf79773a7d9d1cf57f0f6c564.tar.zst coredns-4ac06a342b48e25cf79773a7d9d1cf57f0f6c564.zip |
[plugin/proxy]: Return on WriteMsg err. (#2096)
* [plugin/proxy]: Return on WriteMsg err.
Followup PR on the heels of #2050. Short-circut and log on error from
`WriteMsg`. This will prevent code getting stuck on `ReadMsg` and allow
for easier debugging.
Also simply the `ReadMsg` calling code a little - remove double `Close` (already called above).
-rw-r--r-- | plugin/proxy/dns.go | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/plugin/proxy/dns.go b/plugin/proxy/dns.go index c1aa7f190..a96762c1d 100644 --- a/plugin/proxy/dns.go +++ b/plugin/proxy/dns.go @@ -89,15 +89,12 @@ func exchange(m *dns.Msg, co net.Conn) (*dns.Msg, error) { writeDeadline := time.Now().Add(defaultTimeout) dnsco.SetWriteDeadline(writeDeadline) - dnsco.WriteMsg(m) + if err := dnsco.WriteMsg(m); err != nil { + log.Debugf("Failed to send message: %v", err) + return nil, err + } readDeadline := time.Now().Add(defaultTimeout) co.SetReadDeadline(readDeadline) - r, err := dnsco.ReadMsg() - - dnsco.Close() - if r == nil { - return nil, err - } - return r, err + return dnsco.ReadMsg() } |