good morning!!!!

Skip to content
Snippets Groups Projects
Unverified Commit fb3b083e authored by Anmol Sethi's avatar Anmol Sethi
Browse files

close.go: Drop support for Go 1.13

parent cdeb9806
Branches
Tags
No related merge requests found
......@@ -8,6 +8,7 @@ import (
"encoding/binary"
"errors"
"fmt"
"net"
"time"
"nhooyr.io/websocket/internal/errd"
......@@ -107,7 +108,7 @@ func (c *Conn) CloseNow() (err error) {
defer errd.Wrap(&err, "failed to close WebSocket")
if c.isClosed() {
return errClosed
return net.ErrClosed
}
c.close(nil)
......@@ -124,7 +125,7 @@ func (c *Conn) closeHandshake(code StatusCode, reason string) (err error) {
return writeErr
}
if CloseStatus(closeHandshakeErr) == -1 && !errors.Is(errClosed, closeHandshakeErr) {
if CloseStatus(closeHandshakeErr) == -1 && !errors.Is(net.ErrClosed, closeHandshakeErr) {
return closeHandshakeErr
}
......@@ -137,7 +138,7 @@ func (c *Conn) writeClose(code StatusCode, reason string) error {
c.wroteClose = true
c.closeMu.Unlock()
if wroteClose {
return errClosed
return net.ErrClosed
}
ce := CloseError{
......
//go:build !go1.16 && !js
package websocket
import (
"errors"
)
var errClosed = errors.New("use of closed network connection")
//go:build go1.16 && !js
package websocket
import (
"net"
)
var errClosed = net.ErrClosed
......@@ -9,6 +9,7 @@ import (
"errors"
"fmt"
"io"
"net"
"runtime"
"strconv"
"sync"
......@@ -228,7 +229,7 @@ func (c *Conn) ping(ctx context.Context, p string) error {
select {
case <-c.closed:
return errClosed
return net.ErrClosed
case <-ctx.Done():
err := fmt.Errorf("failed to wait for pong: %w", ctx.Err())
c.close(err)
......@@ -266,7 +267,7 @@ func (m *mu) tryLock() bool {
func (m *mu) lock(ctx context.Context) error {
select {
case <-m.c.closed:
return errClosed
return net.ErrClosed
case <-ctx.Done():
err := fmt.Errorf("failed to acquire lock: %w", ctx.Err())
m.c.close(err)
......@@ -279,7 +280,7 @@ func (m *mu) lock(ctx context.Context) error {
case <-m.c.closed:
// Make sure to release.
m.unlock()
return errClosed
return net.ErrClosed
default:
}
return nil
......
......@@ -3,7 +3,11 @@
package websocket
import "nhooyr.io/websocket/internal/util"
import (
"net"
"nhooyr.io/websocket/internal/util"
)
func (c *Conn) RecordBytesWritten() *int {
var bytesWritten int
......@@ -24,7 +28,7 @@ func (c *Conn) RecordBytesRead() *int {
return &bytesRead
}
var ErrClosed = errClosed
var ErrClosed = net.ErrClosed
var ExportedDial = dial
var SecWebSocketAccept = secWebSocketAccept
......
......@@ -9,6 +9,7 @@ import (
"errors"
"fmt"
"io"
"net"
"strings"
"time"
......@@ -206,7 +207,7 @@ func (c *Conn) readLoop(ctx context.Context) (header, error) {
func (c *Conn) readFrameHeader(ctx context.Context) (header, error) {
select {
case <-c.closed:
return header{}, errClosed
return header{}, net.ErrClosed
case c.readTimeout <- ctx:
}
......@@ -214,7 +215,7 @@ func (c *Conn) readFrameHeader(ctx context.Context) (header, error) {
if err != nil {
select {
case <-c.closed:
return header{}, errClosed
return header{}, net.ErrClosed
case <-ctx.Done():
return header{}, ctx.Err()
default:
......@@ -225,7 +226,7 @@ func (c *Conn) readFrameHeader(ctx context.Context) (header, error) {
select {
case <-c.closed:
return header{}, errClosed
return header{}, net.ErrClosed
case c.readTimeout <- context.Background():
}
......@@ -235,7 +236,7 @@ func (c *Conn) readFrameHeader(ctx context.Context) (header, error) {
func (c *Conn) readFramePayload(ctx context.Context, p []byte) (int, error) {
select {
case <-c.closed:
return 0, errClosed
return 0, net.ErrClosed
case c.readTimeout <- ctx:
}
......@@ -243,7 +244,7 @@ func (c *Conn) readFramePayload(ctx context.Context, p []byte) (int, error) {
if err != nil {
select {
case <-c.closed:
return n, errClosed
return n, net.ErrClosed
case <-ctx.Done():
return n, ctx.Err()
default:
......@@ -255,7 +256,7 @@ func (c *Conn) readFramePayload(ctx context.Context, p []byte) (int, error) {
select {
case <-c.closed:
return n, errClosed
return n, net.ErrClosed
case c.readTimeout <- context.Background():
}
......
......@@ -11,6 +11,7 @@ import (
"errors"
"fmt"
"io"
"net"
"time"
"compress/flate"
......@@ -262,14 +263,14 @@ func (c *Conn) writeFrame(ctx context.Context, fin bool, flate bool, opcode opco
case <-ctx.Done():
return 0, ctx.Err()
case <-c.closed:
return 0, errClosed
return 0, net.ErrClosed
}
}
defer c.writeFrameMu.unlock()
select {
case <-c.closed:
return 0, errClosed
return 0, net.ErrClosed
case c.writeTimeout <- ctx:
}
......@@ -277,7 +278,7 @@ func (c *Conn) writeFrame(ctx context.Context, fin bool, flate bool, opcode opco
if err != nil {
select {
case <-c.closed:
err = errClosed
err = net.ErrClosed
case <-ctx.Done():
err = ctx.Err()
default:
......@@ -327,7 +328,7 @@ func (c *Conn) writeFrame(ctx context.Context, fin bool, flate bool, opcode opco
if opcode == opClose {
return n, nil
}
return n, errClosed
return n, net.ErrClosed
case c.writeTimeout <- context.Background():
}
......
......@@ -6,6 +6,7 @@ import (
"errors"
"fmt"
"io"
"net"
"net/http"
"reflect"
"runtime"
......@@ -151,7 +152,7 @@ func (c *Conn) read(ctx context.Context) (MessageType, []byte, error) {
return 0, nil, ctx.Err()
case <-c.readSignal:
case <-c.closed:
return 0, nil, errClosed
return 0, nil, net.ErrClosed
}
c.readBufMu.Lock()
......@@ -205,7 +206,7 @@ func (c *Conn) Write(ctx context.Context, typ MessageType, p []byte) error {
func (c *Conn) write(ctx context.Context, typ MessageType, p []byte) error {
if c.isClosed() {
return errClosed
return net.ErrClosed
}
switch typ {
case MessageBinary:
......@@ -243,7 +244,7 @@ func (c *Conn) exportedClose(code StatusCode, reason string) error {
defer c.closingMu.Unlock()
if c.isClosed() {
return errClosed
return net.ErrClosed
}
ce := fmt.Errorf("sent close: %w", CloseError{
......@@ -321,7 +322,7 @@ func dial(ctx context.Context, url string, opts *DialOptions) (*Conn, *http.Resp
StatusCode: http.StatusSwitchingProtocols,
}, nil
case <-c.closed:
return nil, nil, errClosed
return nil, nil, net.ErrClosed
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment