Unwrap syscall error and check
Signed-off-by: Derek McGowan <derek@mcg.dev>
This commit is contained in:
parent
6f33ccebed
commit
80efa545d4
@ -22,7 +22,6 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"net"
|
"net"
|
||||||
"os"
|
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"syscall"
|
"syscall"
|
||||||
@ -416,11 +415,9 @@ func filterCloseErr(err error) error {
|
|||||||
default:
|
default:
|
||||||
// if we have an epipe on a write or econnreset on a read , we cast to errclosed
|
// if we have an epipe on a write or econnreset on a read , we cast to errclosed
|
||||||
var oerr *net.OpError
|
var oerr *net.OpError
|
||||||
if errors.As(err, &oerr) && (oerr.Op == "write" || oerr.Op == "read") {
|
if errors.As(err, &oerr) {
|
||||||
serr, sok := oerr.Err.(*os.SyscallError)
|
if (oerr.Op == "write" && errors.Is(err, syscall.EPIPE)) ||
|
||||||
if sok && ((serr.Err == syscall.EPIPE && oerr.Op == "write") ||
|
(oerr.Op == "read" && errors.Is(err, syscall.ECONNRESET)) {
|
||||||
(serr.Err == syscall.ECONNRESET && oerr.Op == "read")) {
|
|
||||||
|
|
||||||
return ErrClosed
|
return ErrClosed
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user