diff --git a/plugin/pkg/proxy/connect.go b/plugin/pkg/proxy/connect.go index d799df498..f1cc481a1 100644 --- a/plugin/pkg/proxy/connect.go +++ b/plugin/pkg/proxy/connect.go @@ -7,7 +7,6 @@ package proxy import ( "context" "io" - "net" "strconv" "sync/atomic" "time" @@ -118,20 +117,11 @@ func (p *Proxy) Connect(ctx context.Context, state request.Request, opts Options for { ret, err = pc.c.ReadMsg() if err != nil { - // For UDP, if the error is not a network error keep waiting for a valid response to prevent malformed - // spoofs from blocking the upstream response. - // In the case this is a legitimate malformed response from the upstream, this will result in a timeout. - if proto == "udp" { - if _, ok := err.(net.Error); !ok { - continue - } - } - pc.c.Close() // connection closed by peer, close the persistent connection + pc.c.Close() // not giving it back if err == io.EOF && cached { return nil, ErrCachedClosed } - - // recover the origin Id after upstream. + // recovery the origin Id after upstream. if ret != nil { ret.Id = originId }