Workaround lack of net.ErrClosed in WebSocket library
git-svn-id: file:///srv/svn/repo/suika/trunk@594 f0ae65fe-ee39-954e-97ec-027ff2717ef4
This commit is contained in:
parent
bc8adc94c0
commit
d046f6b294
12
conn.go
12
conn.go
@ -74,8 +74,18 @@ func (wic *websocketIRCConn) WriteMessage(msg *irc.Message) error {
|
||||
return wic.conn.Write(ctx, websocket.MessageText, b)
|
||||
}
|
||||
|
||||
func isErrWebSocketClosed(err error) bool {
|
||||
return err != nil && strings.HasSuffix(err.Error(), "failed to close WebSocket: already wrote close")
|
||||
}
|
||||
|
||||
func (wic *websocketIRCConn) Close() error {
|
||||
return wic.conn.Close(websocket.StatusNormalClosure, "")
|
||||
err := wic.conn.Close(websocket.StatusNormalClosure, "")
|
||||
// TODO: remove once this PR is merged:
|
||||
// https://github.com/nhooyr/websocket/pull/303
|
||||
if isErrWebSocketClosed(err) {
|
||||
return nil
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (wic *websocketIRCConn) SetReadDeadline(t time.Time) error {
|
||||
|
Loading…
x
Reference in New Issue
Block a user