From 119d436537a58f251c51015944653014d48990b2 Mon Sep 17 00:00:00 2001 From: Kenjiro Nakayama Date: Wed, 8 Nov 2023 21:00:20 +0900 Subject: [PATCH] Do not handle network error in SetCloseHandler() The 666c197 added an error handling in `SetCloseHandler()` and peer stops getting `CloseError` when network issue like `write: broken pipe` happens because the close handle returns the error. Hence this patch changes to skip network error handling. --- conn.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/conn.go b/conn.go index 221e6cf7..22048d8b 100644 --- a/conn.go +++ b/conn.go @@ -1164,6 +1164,9 @@ func (c *Conn) SetCloseHandler(h func(code int, text string) error) { h = func(code int, text string) error { message := FormatCloseMessage(code, "") if err := c.WriteControl(CloseMessage, message, time.Now().Add(writeWait)); err != nil { + if _, ok := err.(net.Error); ok { + return nil + } return err } return nil