Merge pull request #53 from fuweid/me-errclosed-for-read-reset-connection
return ErrClosed if read: connection reset by peer
This commit is contained in:
commit
7a6a229037
@ -338,9 +338,12 @@ func filterCloseErr(err error) error {
|
|||||||
case strings.Contains(err.Error(), "use of closed network connection"):
|
case strings.Contains(err.Error(), "use of closed network connection"):
|
||||||
return ErrClosed
|
return ErrClosed
|
||||||
default:
|
default:
|
||||||
// if we have an epipe on a write, we cast to errclosed
|
// 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" {
|
if oerr, ok := err.(*net.OpError); ok && (oerr.Op == "write" || oerr.Op == "read") {
|
||||||
if serr, ok := oerr.Err.(*os.SyscallError); ok && serr.Err == syscall.EPIPE {
|
serr, sok := oerr.Err.(*os.SyscallError)
|
||||||
|
if sok && ((serr.Err == syscall.EPIPE && oerr.Op == "write") ||
|
||||||
|
(serr.Err == syscall.ECONNRESET && oerr.Op == "read")) {
|
||||||
|
|
||||||
return ErrClosed
|
return ErrClosed
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user