Suppress expected error

This commit is contained in:
世界
2022-08-25 10:56:57 +08:00
parent 9af746ba2f
commit b5d4b267e2
3 changed files with 18 additions and 2 deletions

View File

@@ -603,5 +603,8 @@ func wrapHttpError(err error) error {
if strings.Contains(err.Error(), "body closed by handler") { if strings.Contains(err.Error(), "body closed by handler") {
return net.ErrClosed return net.ErrClosed
} }
if strings.Contains(err.Error(), "canceled with error code 268") {
return io.EOF
}
return err return err
} }

View File

@@ -102,5 +102,8 @@ func wrapError(err error) error {
if strings.Contains(err.Error(), "EOF") { if strings.Contains(err.Error(), "EOF") {
return io.EOF return io.EOF
} }
if strings.Contains(err.Error(), "the client connection is closing") {
return net.ErrClosed
}
return err return err
} }

View File

@@ -8,6 +8,7 @@ import (
"time" "time"
"github.com/sagernet/sing/common" "github.com/sagernet/sing/common"
E "github.com/sagernet/sing/common/exceptions"
) )
type HTTPConn struct { type HTTPConn struct {
@@ -16,11 +17,13 @@ type HTTPConn struct {
} }
func (c *HTTPConn) Read(b []byte) (n int, err error) { func (c *HTTPConn) Read(b []byte) (n int, err error) {
return c.reader.Read(b) n, err = c.reader.Read(b)
return n, wrapError(err)
} }
func (c *HTTPConn) Write(b []byte) (n int, err error) { func (c *HTTPConn) Write(b []byte) (n int, err error) {
return c.writer.Write(b) n, err = c.writer.Write(b)
return n, wrapError(err)
} }
func (c *HTTPConn) Close() error { func (c *HTTPConn) Close() error {
@@ -59,3 +62,10 @@ func (c *ServerHTTPConn) Write(b []byte) (n int, err error) {
} }
return return
} }
func wrapError(err error) error {
if E.IsMulti(err, io.ErrUnexpectedEOF) {
return io.EOF
}
return err
}