From 80efa545d498d159a6a38782f935768c6a67b0b0 Mon Sep 17 00:00:00 2001 From: Derek McGowan Date: Mon, 14 Mar 2022 18:56:48 -0700 Subject: [PATCH] Unwrap syscall error and check Signed-off-by: Derek McGowan --- client.go | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/client.go b/client.go index 930f79d..384eb02 100644 --- a/client.go +++ b/client.go @@ -22,7 +22,6 @@ import ( "fmt" "io" "net" - "os" "strings" "sync" "syscall" @@ -416,11 +415,9 @@ func filterCloseErr(err error) error { default: // if we have an epipe on a write or econnreset on a read , we cast to errclosed 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")) { - + if errors.As(err, &oerr) { + if (oerr.Op == "write" && errors.Is(err, syscall.EPIPE)) || + (oerr.Op == "read" && errors.Is(err, syscall.ECONNRESET)) { return ErrClosed } }