From c6901c4eb1d1f3c6406f2d57d32b7bed95463283 Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Fri, 9 Aug 2024 19:13:24 +0000 Subject: [PATCH] chore: switch to github.com/coder/websocket --- coderd/healthcheck/websocket.go | 2 +- coderd/httpapi/websocket.go | 2 +- coderd/provisionerjobs.go | 2 +- coderd/provisionerjobs_internal_test.go | 2 +- coderd/workspaceagents.go | 2 +- coderd/workspaceagentsrpc.go | 2 +- coderd/workspaceagentsrpc_internal_test.go | 2 +- coderd/workspaceapps/proxy.go | 2 +- codersdk/agentsdk/agentsdk.go | 2 +- codersdk/provisionerdaemons.go | 2 +- codersdk/websocket.go | 2 +- codersdk/websocket_test.go | 2 +- codersdk/workspaceagents.go | 2 +- codersdk/workspacesdk/connector.go | 2 +- codersdk/workspacesdk/connector_internal_test.go | 2 +- codersdk/workspacesdk/workspacesdk.go | 2 +- enterprise/coderd/provisionerdaemons.go | 2 +- enterprise/coderd/workspaceproxycoordinate.go | 2 +- enterprise/tailnet/workspaceproxy.go | 4 ++-- enterprise/wsproxy/wsproxysdk/wsproxysdk.go | 2 +- enterprise/wsproxy/wsproxysdk/wsproxysdk_test.go | 2 +- go.mod | 3 ++- go.sum | 2 ++ scaletest/workspacetraffic/conn.go | 2 +- scaletest/workspacetraffic/countreadwriter.go | 2 +- scaletest/workspacetraffic/run.go | 2 +- scaletest/workspacetraffic/run_test.go | 2 +- tailnet/coordinator.go | 2 +- tailnet/coordinator_test.go | 2 +- tailnet/derp.go | 2 +- tailnet/test/integration/integration.go | 2 +- tailnet/trackedconn.go | 4 ++-- 32 files changed, 36 insertions(+), 33 deletions(-) diff --git a/coderd/healthcheck/websocket.go b/coderd/healthcheck/websocket.go index f195b01f0f569..6b355ff6de4ad 100644 --- a/coderd/healthcheck/websocket.go +++ b/coderd/healthcheck/websocket.go @@ -9,8 +9,8 @@ import ( "strconv" "time" + "github.com/coder/websocket" "golang.org/x/xerrors" - "nhooyr.io/websocket" "github.com/coder/coder/v2/coderd/healthcheck/health" "github.com/coder/coder/v2/codersdk/healthsdk" diff --git a/coderd/httpapi/websocket.go b/coderd/httpapi/websocket.go index 629dcac8131f3..7d7564b05a40e 100644 --- a/coderd/httpapi/websocket.go +++ b/coderd/httpapi/websocket.go @@ -4,7 +4,7 @@ import ( "context" "time" - "nhooyr.io/websocket" + "github.com/coder/websocket" "cdr.dev/slog" ) diff --git a/coderd/provisionerjobs.go b/coderd/provisionerjobs.go index df832b810e696..68b0119305318 100644 --- a/coderd/provisionerjobs.go +++ b/coderd/provisionerjobs.go @@ -10,9 +10,9 @@ import ( "sort" "strconv" + "github.com/coder/websocket" "github.com/google/uuid" "golang.org/x/xerrors" - "nhooyr.io/websocket" "cdr.dev/slog" diff --git a/coderd/provisionerjobs_internal_test.go b/coderd/provisionerjobs_internal_test.go index 95ad2197865eb..ff619b9f94f80 100644 --- a/coderd/provisionerjobs_internal_test.go +++ b/coderd/provisionerjobs_internal_test.go @@ -10,11 +10,11 @@ import ( "testing" "time" + "github.com/coder/websocket" "github.com/google/uuid" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.uber.org/mock/gomock" - "nhooyr.io/websocket" "cdr.dev/slog/sloggers/slogtest" diff --git a/coderd/workspaceagents.go b/coderd/workspaceagents.go index e9e2ab18027d9..72bca6c5ef452 100644 --- a/coderd/workspaceagents.go +++ b/coderd/workspaceagents.go @@ -14,13 +14,13 @@ import ( "strings" "time" + "github.com/coder/websocket" "github.com/google/uuid" "github.com/sqlc-dev/pqtype" "golang.org/x/exp/maps" "golang.org/x/exp/slices" "golang.org/x/sync/errgroup" "golang.org/x/xerrors" - "nhooyr.io/websocket" "tailscale.com/tailcfg" "cdr.dev/slog" diff --git a/coderd/workspaceagentsrpc.go b/coderd/workspaceagentsrpc.go index 1d5a80729680f..2c6476cbd9da1 100644 --- a/coderd/workspaceagentsrpc.go +++ b/coderd/workspaceagentsrpc.go @@ -11,10 +11,10 @@ import ( "sync/atomic" "time" + "github.com/coder/websocket" "github.com/google/uuid" "github.com/hashicorp/yamux" "golang.org/x/xerrors" - "nhooyr.io/websocket" "cdr.dev/slog" "github.com/coder/coder/v2/agent/proto" diff --git a/coderd/workspaceagentsrpc_internal_test.go b/coderd/workspaceagentsrpc_internal_test.go index dbae11a218619..3886516309e73 100644 --- a/coderd/workspaceagentsrpc_internal_test.go +++ b/coderd/workspaceagentsrpc_internal_test.go @@ -10,10 +10,10 @@ import ( "github.com/coder/coder/v2/coderd/util/ptr" + "github.com/coder/websocket" "github.com/google/uuid" "github.com/stretchr/testify/require" "go.uber.org/mock/gomock" - "nhooyr.io/websocket" "cdr.dev/slog" "cdr.dev/slog/sloggers/slogtest" diff --git a/coderd/workspaceapps/proxy.go b/coderd/workspaceapps/proxy.go index 69f1aadca49b2..67aaebf49c58e 100644 --- a/coderd/workspaceapps/proxy.go +++ b/coderd/workspaceapps/proxy.go @@ -12,10 +12,10 @@ import ( "strings" "sync" + "github.com/coder/websocket" "github.com/go-chi/chi/v5" "github.com/google/uuid" "go.opentelemetry.io/otel/trace" - "nhooyr.io/websocket" "cdr.dev/slog" "github.com/coder/coder/v2/agent/agentssh" diff --git a/codersdk/agentsdk/agentsdk.go b/codersdk/agentsdk/agentsdk.go index 243b672a8007c..0dd3c9bfdeebe 100644 --- a/codersdk/agentsdk/agentsdk.go +++ b/codersdk/agentsdk/agentsdk.go @@ -12,10 +12,10 @@ import ( "time" "cloud.google.com/go/compute/metadata" + "github.com/coder/websocket" "github.com/google/uuid" "github.com/hashicorp/yamux" "golang.org/x/xerrors" - "nhooyr.io/websocket" "storj.io/drpc" "tailscale.com/tailcfg" diff --git a/codersdk/provisionerdaemons.go b/codersdk/provisionerdaemons.go index df481dc04a18d..8aa4e07f2829f 100644 --- a/codersdk/provisionerdaemons.go +++ b/codersdk/provisionerdaemons.go @@ -9,10 +9,10 @@ import ( "net/http/cookiejar" "time" + "github.com/coder/websocket" "github.com/google/uuid" "github.com/hashicorp/yamux" "golang.org/x/xerrors" - "nhooyr.io/websocket" "github.com/coder/coder/v2/buildinfo" "github.com/coder/coder/v2/codersdk/drpc" diff --git a/codersdk/websocket.go b/codersdk/websocket.go index 5b55ca8c3fd2d..b198874414ad6 100644 --- a/codersdk/websocket.go +++ b/codersdk/websocket.go @@ -4,7 +4,7 @@ import ( "context" "net" - "nhooyr.io/websocket" + "github.com/coder/websocket" ) // wsNetConn wraps net.Conn created by websocket.NetConn(). Cancel func diff --git a/codersdk/websocket_test.go b/codersdk/websocket_test.go index 861f9e9705d40..e51b453f66975 100644 --- a/codersdk/websocket_test.go +++ b/codersdk/websocket_test.go @@ -6,9 +6,9 @@ import ( "net/http/httptest" "testing" + "github.com/coder/websocket" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "nhooyr.io/websocket" "github.com/coder/coder/v2/codersdk" "github.com/coder/coder/v2/testutil" diff --git a/codersdk/workspaceagents.go b/codersdk/workspaceagents.go index 6eab57bb3c4ad..3046284858b75 100644 --- a/codersdk/workspaceagents.go +++ b/codersdk/workspaceagents.go @@ -10,9 +10,9 @@ import ( "strings" "time" + "github.com/coder/websocket" "github.com/google/uuid" "golang.org/x/xerrors" - "nhooyr.io/websocket" "github.com/coder/coder/v2/coderd/tracing" ) diff --git a/codersdk/workspacesdk/connector.go b/codersdk/workspacesdk/connector.go index 5e5f528af6888..5b25b36452e90 100644 --- a/codersdk/workspacesdk/connector.go +++ b/codersdk/workspacesdk/connector.go @@ -12,9 +12,9 @@ import ( "sync/atomic" "time" + "github.com/coder/websocket" "github.com/google/uuid" "golang.org/x/xerrors" - "nhooyr.io/websocket" "storj.io/drpc" "storj.io/drpc/drpcerr" "tailscale.com/tailcfg" diff --git a/codersdk/workspacesdk/connector_internal_test.go b/codersdk/workspacesdk/connector_internal_test.go index 0106c271b68a4..95c7106d1f450 100644 --- a/codersdk/workspacesdk/connector_internal_test.go +++ b/codersdk/workspacesdk/connector_internal_test.go @@ -9,12 +9,12 @@ import ( "testing" "time" + "github.com/coder/websocket" "github.com/google/uuid" "github.com/hashicorp/yamux" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "golang.org/x/xerrors" - "nhooyr.io/websocket" "storj.io/drpc" "storj.io/drpc/drpcerr" "tailscale.com/tailcfg" diff --git a/codersdk/workspacesdk/workspacesdk.go b/codersdk/workspacesdk/workspacesdk.go index a38ed1c05c91d..75bc0deea92ef 100644 --- a/codersdk/workspacesdk/workspacesdk.go +++ b/codersdk/workspacesdk/workspacesdk.go @@ -12,9 +12,9 @@ import ( "strconv" "strings" + "github.com/coder/websocket" "github.com/google/uuid" "golang.org/x/xerrors" - "nhooyr.io/websocket" "tailscale.com/tailcfg" "tailscale.com/wgengine/capture" diff --git a/enterprise/coderd/provisionerdaemons.go b/enterprise/coderd/provisionerdaemons.go index ff5eb70944529..ebf45e4c2f91d 100644 --- a/enterprise/coderd/provisionerdaemons.go +++ b/enterprise/coderd/provisionerdaemons.go @@ -9,13 +9,13 @@ import ( "strings" "time" + "github.com/coder/websocket" "github.com/google/uuid" "github.com/hashicorp/yamux" "github.com/moby/moby/pkg/namesgenerator" "go.opentelemetry.io/otel/trace" "golang.org/x/exp/maps" "golang.org/x/xerrors" - "nhooyr.io/websocket" "storj.io/drpc/drpcmux" "storj.io/drpc/drpcserver" diff --git a/enterprise/coderd/workspaceproxycoordinate.go b/enterprise/coderd/workspaceproxycoordinate.go index 58522e59acead..f66db7b5d5a68 100644 --- a/enterprise/coderd/workspaceproxycoordinate.go +++ b/enterprise/coderd/workspaceproxycoordinate.go @@ -3,8 +3,8 @@ package coderd import ( "net/http" + "github.com/coder/websocket" "github.com/google/uuid" - "nhooyr.io/websocket" "github.com/coder/coder/v2/apiversion" "github.com/coder/coder/v2/coderd/httpapi" diff --git a/enterprise/tailnet/workspaceproxy.go b/enterprise/tailnet/workspaceproxy.go index 674536755434f..897ba35e0a205 100644 --- a/enterprise/tailnet/workspaceproxy.go +++ b/enterprise/tailnet/workspaceproxy.go @@ -146,9 +146,9 @@ func forwardNodesToWorkspaceProxy(ctx context.Context, conn net.Conn, ma agpl.Mu return err } - // nhooyr.io/websocket has a bugged implementation of deadlines on a websocket net.Conn. What they are + // github.com/coder/websocket has a bugged implementation of deadlines on a websocket net.Conn. What they are // *supposed* to do is set a deadline for any subsequent writes to complete, otherwise the call to Write() - // fails. What nhooyr.io/websocket does is set a timer, after which it expires the websocket write context. + // fails. What github.com/coder/websocket does is set a timer, after which it expires the websocket write context. // If this timer fires, then the next write will fail *even if we set a new write deadline*. So, after // our successful write, it is important that we reset the deadline before it fires. err = conn.SetWriteDeadline(time.Time{}) diff --git a/enterprise/wsproxy/wsproxysdk/wsproxysdk.go b/enterprise/wsproxy/wsproxysdk/wsproxysdk.go index b3b833fb37c3a..b447b03b8e7bb 100644 --- a/enterprise/wsproxy/wsproxysdk/wsproxysdk.go +++ b/enterprise/wsproxy/wsproxysdk/wsproxysdk.go @@ -8,9 +8,9 @@ import ( "net/url" "time" + "github.com/coder/websocket" "github.com/google/uuid" "golang.org/x/xerrors" - "nhooyr.io/websocket" "tailscale.com/tailcfg" "cdr.dev/slog" diff --git a/enterprise/wsproxy/wsproxysdk/wsproxysdk_test.go b/enterprise/wsproxy/wsproxysdk/wsproxysdk_test.go index 1ed49881092fb..595f782e7b8f0 100644 --- a/enterprise/wsproxy/wsproxysdk/wsproxysdk_test.go +++ b/enterprise/wsproxy/wsproxysdk/wsproxysdk_test.go @@ -13,13 +13,13 @@ import ( "testing" "time" + "github.com/coder/websocket" "github.com/go-chi/chi/v5" "github.com/google/uuid" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.uber.org/mock/gomock" "google.golang.org/protobuf/types/known/timestamppb" - "nhooyr.io/websocket" "tailscale.com/tailcfg" "tailscale.com/types/key" diff --git a/go.mod b/go.mod index 425ae761ba372..bafc56882cd10 100644 --- a/go.mod +++ b/go.mod @@ -87,6 +87,7 @@ require ( github.com/coder/quartz v0.1.0 github.com/coder/retry v1.5.1 github.com/coder/terraform-provider-coder v0.23.0 + github.com/coder/websocket v1.8.12 github.com/coder/wgtunnel v0.1.13-0.20240522110300-ade90dfb2da0 github.com/coreos/go-oidc/v3 v3.11.0 github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf @@ -188,7 +189,6 @@ require ( gopkg.in/natefinch/lumberjack.v2 v2.2.1 gopkg.in/yaml.v3 v3.0.1 gvisor.dev/gvisor v0.0.0-20240509041132-65b30f7869dc - nhooyr.io/websocket v1.8.7 storj.io/drpc v0.0.33 tailscale.com v1.46.1 ) @@ -219,6 +219,7 @@ require ( github.com/pion/transport/v2 v2.0.0 // indirect github.com/tdewolff/test v1.0.11-0.20240106005702-7de5f7df4739 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 // indirect + nhooyr.io/websocket v1.8.7 // indirect ) require ( diff --git a/go.sum b/go.sum index d2ee23621eca9..7b44c39d3ee70 100644 --- a/go.sum +++ b/go.sum @@ -223,6 +223,8 @@ github.com/coder/tailscale v1.1.1-0.20240702054557-aa558fbe5374 h1:a5Eg7D5e2oAc0 github.com/coder/tailscale v1.1.1-0.20240702054557-aa558fbe5374/go.mod h1:rp6BIJxCp127/hvvDWNkHC9MxAlKvQfoOtBr8s5sCqo= github.com/coder/terraform-provider-coder v0.23.0 h1:DuNLWxhnGlXyG0g+OCAZRI6xd8+bJjIEnE4F3hYgA4E= github.com/coder/terraform-provider-coder v0.23.0/go.mod h1:wMun9UZ9HT2CzF6qPPBup1odzBpVUc0/xSFoXgdI3tk= +github.com/coder/websocket v1.8.12 h1:5bUXkEPPIbewrnkU8LTCLVaxi4N4J8ahufH2vlo4NAo= +github.com/coder/websocket v1.8.12/go.mod h1:LNVeNrXQZfe5qhS9ALED3uA+l5pPqvwXg3CKoDBB2gs= github.com/coder/wgtunnel v0.1.13-0.20240522110300-ade90dfb2da0 h1:C2/eCr+r0a5Auuw3YOiSyLNHkdMtyCZHPFBx7syN4rk= github.com/coder/wgtunnel v0.1.13-0.20240522110300-ade90dfb2da0/go.mod h1:qANbdpqyAGlo2bg+4gQKPj24H1ZWa3bQU2Q5/bV5B3Y= github.com/coder/wireguard-go v0.0.0-20240522052547-769cdd7f7818 h1:bNhUTaKl3q0bFn78bBRq7iIwo72kNTvUD9Ll5TTzDDk= diff --git a/scaletest/workspacetraffic/conn.go b/scaletest/workspacetraffic/conn.go index 455feaa8f6d43..cdc2ce395ce95 100644 --- a/scaletest/workspacetraffic/conn.go +++ b/scaletest/workspacetraffic/conn.go @@ -10,7 +10,7 @@ import ( "sync" "time" - "nhooyr.io/websocket" + "github.com/coder/websocket" "github.com/coder/coder/v2/codersdk" "github.com/coder/coder/v2/codersdk/workspacesdk" diff --git a/scaletest/workspacetraffic/countreadwriter.go b/scaletest/workspacetraffic/countreadwriter.go index e2179713293bd..6b36b5ce11db1 100644 --- a/scaletest/workspacetraffic/countreadwriter.go +++ b/scaletest/workspacetraffic/countreadwriter.go @@ -8,7 +8,7 @@ import ( "golang.org/x/xerrors" - "nhooyr.io/websocket" + "github.com/coder/websocket" ) // countReadWriteCloser wraps an io.ReadWriteCloser and counts the number of bytes read and written. diff --git a/scaletest/workspacetraffic/run.go b/scaletest/workspacetraffic/run.go index c683536461bbc..69a56217d7b31 100644 --- a/scaletest/workspacetraffic/run.go +++ b/scaletest/workspacetraffic/run.go @@ -9,9 +9,9 @@ import ( "sync" "time" + "github.com/coder/websocket" "github.com/google/uuid" "golang.org/x/xerrors" - "nhooyr.io/websocket" "cdr.dev/slog" "cdr.dev/slog/sloggers/sloghuman" diff --git a/scaletest/workspacetraffic/run_test.go b/scaletest/workspacetraffic/run_test.go index bb9d88b969d58..6c3d8e7415309 100644 --- a/scaletest/workspacetraffic/run_test.go +++ b/scaletest/workspacetraffic/run_test.go @@ -12,8 +12,8 @@ import ( "testing" "time" + "github.com/coder/websocket" "golang.org/x/exp/slices" - "nhooyr.io/websocket" "github.com/coder/coder/v2/agent/agenttest" "github.com/coder/coder/v2/coderd/coderdtest" diff --git a/tailnet/coordinator.go b/tailnet/coordinator.go index 423dc0ecbfa8d..7485e52f38728 100644 --- a/tailnet/coordinator.go +++ b/tailnet/coordinator.go @@ -12,9 +12,9 @@ import ( "sync" "time" + "github.com/coder/websocket" "github.com/google/uuid" "golang.org/x/xerrors" - "nhooyr.io/websocket" "tailscale.com/tailcfg" "tailscale.com/types/key" diff --git a/tailnet/coordinator_test.go b/tailnet/coordinator_test.go index cdf288c98ddb9..160842c1d1326 100644 --- a/tailnet/coordinator_test.go +++ b/tailnet/coordinator_test.go @@ -12,11 +12,11 @@ import ( "testing" "time" + "github.com/coder/websocket" "github.com/google/uuid" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.uber.org/mock/gomock" - "nhooyr.io/websocket" "tailscale.com/tailcfg" "tailscale.com/types/key" diff --git a/tailnet/derp.go b/tailnet/derp.go index 6c8e363e91e29..b7668a48fe7c6 100644 --- a/tailnet/derp.go +++ b/tailnet/derp.go @@ -8,7 +8,7 @@ import ( "strings" "sync" - "nhooyr.io/websocket" + "github.com/coder/websocket" "tailscale.com/derp" "tailscale.com/net/wsconn" ) diff --git a/tailnet/test/integration/integration.go b/tailnet/test/integration/integration.go index 2f19ec43dec02..b820bce9ef659 100644 --- a/tailnet/test/integration/integration.go +++ b/tailnet/test/integration/integration.go @@ -22,11 +22,11 @@ import ( "testing" "time" + "github.com/coder/websocket" "github.com/go-chi/chi/v5" "github.com/google/uuid" "github.com/stretchr/testify/require" "golang.org/x/xerrors" - "nhooyr.io/websocket" "tailscale.com/derp" "tailscale.com/derp/derphttp" "tailscale.com/tailcfg" diff --git a/tailnet/trackedconn.go b/tailnet/trackedconn.go index a801cdfae0964..66a8b07c42b02 100644 --- a/tailnet/trackedconn.go +++ b/tailnet/trackedconn.go @@ -164,9 +164,9 @@ func (t *TrackedConn) SendUpdates() { } t.logger.Debug(t.ctx, "wrote nodes", slog.F("nodes", string(data))) - // nhooyr.io/websocket has a bugged implementation of deadlines on a websocket net.Conn. What they are + // github.com/coder/websocket has a bugged implementation of deadlines on a websocket net.Conn. What they are // *supposed* to do is set a deadline for any subsequent writes to complete, otherwise the call to Write() - // fails. What nhooyr.io/websocket does is set a timer, after which it expires the websocket write context. + // fails. What github.com/coder/websocket does is set a timer, after which it expires the websocket write context. // If this timer fires, then the next write will fail *even if we set a new write deadline*. So, after // our successful write, it is important that we reset the deadline before it fires. err = t.conn.SetWriteDeadline(time.Time{})