From 3a526d8c78ea452584284b9b6da08e1679da2867 Mon Sep 17 00:00:00 2001 From: Anmol Sethi <hi@nhooyr.io> Date: Sun, 9 Feb 2020 02:31:59 -0500 Subject: [PATCH] Fix bug in closeHandshake --- close_notjs.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/close_notjs.go b/close_notjs.go index 08a1ea0..160a123 100644 --- a/close_notjs.go +++ b/close_notjs.go @@ -35,7 +35,7 @@ func (c *Conn) closeHandshake(code StatusCode, reason string) (err error) { defer errd.Wrap(&err, "failed to close WebSocket") err = c.writeClose(code, reason) - if CloseStatus(err) == -1 { + if err != nil && CloseStatus(err) == -1 { return err } @@ -63,16 +63,19 @@ func (c *Conn) writeClose(code StatusCode, reason string) error { c.setCloseErr(xerrors.Errorf("sent close frame: %w", ce)) var p []byte + var err error if ce.Code != StatusNoStatusRcvd { - var err error p, err = ce.bytes() if err != nil { log.Printf("websocket: %v", err) - return err } } - return c.writeControl(context.Background(), opClose, p) + werr := c.writeControl(context.Background(), opClose, p) + if err != nil { + return err + } + return werr } func (c *Conn) waitCloseHandshake() error { -- GitLab