recovery: fix issue about syscall import on google app engine (#1640)

* recovery: fix issue about syscall import on google app engine

* add ToLower()

* the whole error message
This commit is contained in:
thinkerou 2018-11-22 09:17:44 +08:00 committed by Bo-Yi Wu
parent 3d44ff82a1
commit 7ec82ee894
2 changed files with 4 additions and 4 deletions

View File

@ -15,7 +15,7 @@ import (
"net/http/httputil"
"os"
"runtime"
"syscall"
"strings"
"time"
)
@ -45,7 +45,7 @@ func RecoveryWithWriter(out io.Writer) HandlerFunc {
var brokenPipe bool
if ne, ok := err.(*net.OpError); ok {
if se, ok := ne.Err.(*os.SyscallError); ok {
if se.Err == syscall.EPIPE || se.Err == syscall.ECONNRESET {
if strings.Contains(strings.ToLower(se.Error()), "broken pipe") || strings.Contains(strings.ToLower(se.Error()), "connection reset by peer") {
brokenPipe = true
}
}

View File

@ -84,8 +84,8 @@ func TestPanicWithBrokenPipe(t *testing.T) {
const expectCode = 204
expectMsgs := map[syscall.Errno]string{
syscall.EPIPE: "broken pipe",
syscall.ECONNRESET: "connection reset",
syscall.EPIPE: "Broken pipe",
syscall.ECONNRESET: "connection reset by peer",
}
for errno, expectMsg := range expectMsgs {