Chore: error is ignorable

This commit is contained in:
xjasonlyu
2023-03-26 23:07:13 +08:00
parent 680feede3b
commit c61d7b5a20

View File

@@ -79,12 +79,19 @@ func copyBuffer(dst io.Writer, src io.Reader) error {
defer pool.Put(buf) defer pool.Put(buf)
_, err := io.CopyBuffer(dst, src, buf) _, err := io.CopyBuffer(dst, src, buf)
if ne, ok := err.(net.Error); ok && ne.Timeout() { if err != nil && !isIgnorable(err) {
return nil /* ignore I/O timeout */
} else if errors.Is(err, syscall.EPIPE) {
return nil /* ignore broken pipe */
} else if errors.Is(err, syscall.ECONNRESET) {
return nil /* ignore connection reset by peer */
}
return err return err
} }
return nil
}
func isIgnorable(err error) bool {
if ne, ok := err.(net.Error); ok && ne.Timeout() {
return true /* ignore I/O timeout */
} else if errors.Is(err, syscall.EPIPE) {
return true /* ignore broken pipe */
} else if errors.Is(err, syscall.ECONNRESET) {
return true /* ignore connection reset by peer */
}
return false
}