From 7ec82ee8944579c533425bb6826bcb12b5860ecd Mon Sep 17 00:00:00 2001 From: thinkerou Date: Thu, 22 Nov 2018 09:17:44 +0800 Subject: [PATCH] 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 --- recovery.go | 4 ++-- recovery_test.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/recovery.go b/recovery.go index e788cc479c..f06ad56b28 100644 --- a/recovery.go +++ b/recovery.go @@ -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 } } diff --git a/recovery_test.go b/recovery_test.go index cafaee9122..c9fb29ce55 100644 --- a/recovery_test.go +++ b/recovery_test.go @@ -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 {