Commit 4ac06a34 authored by dilyevsky's avatar dilyevsky Committed by GitHub

[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).
parent 06399955
...@@ -89,15 +89,12 @@ func exchange(m *dns.Msg, co net.Conn) (*dns.Msg, error) { ...@@ -89,15 +89,12 @@ func exchange(m *dns.Msg, co net.Conn) (*dns.Msg, error) {
writeDeadline := time.Now().Add(defaultTimeout) writeDeadline := time.Now().Add(defaultTimeout)
dnsco.SetWriteDeadline(writeDeadline) 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) readDeadline := time.Now().Add(defaultTimeout)
co.SetReadDeadline(readDeadline) co.SetReadDeadline(readDeadline)
r, err := dnsco.ReadMsg() return dnsco.ReadMsg()
dnsco.Close()
if r == nil {
return nil, err
}
return r, err
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment