From df116954de0e86a90f7fc549f0391a7eecd2ba77 Mon Sep 17 00:00:00 2001 From: blade Date: Fri, 7 Aug 2020 00:57:23 +0800 Subject: [PATCH] fix bug, failed to assert net error due to error wrap Signed-off-by: blade --- client.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/client.go b/client.go index e816941..796b120 100644 --- a/client.go +++ b/client.go @@ -339,7 +339,8 @@ func filterCloseErr(err error) error { return ErrClosed default: // if we have an epipe on a write or econnreset on a read , we cast to errclosed - if oerr, ok := err.(*net.OpError); ok && (oerr.Op == "write" || oerr.Op == "read") { + var oerr *net.OpError + if errors.As(err, &oerr) && (oerr.Op == "write" || oerr.Op == "read") { serr, sok := oerr.Err.(*os.SyscallError) if sok && ((serr.Err == syscall.EPIPE && oerr.Op == "write") || (serr.Err == syscall.ECONNRESET && oerr.Op == "read")) {