Skip to content

Commit 3a526d8

Browse files
committed
Fix bug in closeHandshake
1 parent 988b8f2 commit 3a526d8

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

close_notjs.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ func (c *Conn) closeHandshake(code StatusCode, reason string) (err error) {
3535
defer errd.Wrap(&err, "failed to close WebSocket")
3636

3737
err = c.writeClose(code, reason)
38-
if CloseStatus(err) == -1 {
38+
if err != nil && CloseStatus(err) == -1 {
3939
return err
4040
}
4141

@@ -63,16 +63,19 @@ func (c *Conn) writeClose(code StatusCode, reason string) error {
6363
c.setCloseErr(xerrors.Errorf("sent close frame: %w", ce))
6464

6565
var p []byte
66+
var err error
6667
if ce.Code != StatusNoStatusRcvd {
67-
var err error
6868
p, err = ce.bytes()
6969
if err != nil {
7070
log.Printf("websocket: %v", err)
71-
return err
7271
}
7372
}
7473

75-
return c.writeControl(context.Background(), opClose, p)
74+
werr := c.writeControl(context.Background(), opClose, p)
75+
if err != nil {
76+
return err
77+
}
78+
return werr
7679
}
7780

7881
func (c *Conn) waitCloseHandshake() error {

0 commit comments

Comments
 (0)