8000 Fix requested changes · coder/coder@b830fad · GitHub
[go: up one dir, main page]

Skip to content

Commit b830fad

Browse files
committed
Fix requested changes
1 parent 44aa875 commit b830fad

File tree

6 files changed

+21
-11
lines changed

6 files changed

+21
-11
lines changed

coderd/coderd.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ func New(options *Options) *API {
285285
apiRateLimiter := httpmw.RateLimit(options.APIRateLimit, time.Minute)
286286

287287
derpHandler := derphttp.Handler(api.DERPServer)
288-
derpHandler, api.derpCloseFunc = tailnet.AddWebsocketSupport(api.DERPServer, derpHandler)
288+
derpHandler, api.derpCloseFunc = tailnet.WithWebsocketSupport(api.DERPServer, derpHandler)
289289

290290
r.Use(
291291
httpmw.Recover(api.Logger),

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ replace github.com/tcnksm/go-httpstat => github.com/kylecarbs/go-httpstat v0.0.0
4040

4141
// There are a few minor changes we make to Tailscale that we're slowly upstreaming. Compare here:
4242
// https://github.com/tailscale/tailscale/compare/main...coder:tailscale:main
43-
replace tailscale.com => github.com/coder/tailscale v1.1.1-0.20230228220447-d27e5d3056e9
43+
replace tailscale.com => github.com/coder/tailscale v1.1.1-0.20230301203426-fb16ae7c5bba
4444

4545
// Switch to our fork that imports fixes from http://github.com/tailscale/ssh.
4646
// See: https://github.com/coder/coder/issues/3371

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,8 @@ github.com/coder/tailscale v1.1.1-0.20230228215233-ba13d5ceee2a h1:eXE/5hMkcHfa3
405405
github.com/coder/tailscale v1.1.1-0.20230228215233-ba13d5ceee2a/go.mod h1:jpg+77g19FpXL43U1VoIqoSg1K/Vh5CVxycGldQ8KhA=
406406
github.com/coder/tailscale v1.1.1-0.20230228220447-d27e5d3056e9 h1:bFcFXLUUi+cwgOqrjbXN+XmI7QvB1up/UZoNF1+9nuM=
407407
github.com/coder/tailscale v1.1.1-0.20230228220447-d27e5d3056e9/go.mod h1:jpg+77g19FpXL43U1VoIqoSg1K/Vh5CVxycGldQ8KhA=
408+
github.com/coder/tailscale v1.1.1-0.20230301203426-fb16ae7c5bba h1:JOD5pqNtiz9lkSX74PY2BJOyNqsBmvGUjFGIuECtG+o=
409+
github.com/coder/tailscale v1.1.1-0.20230301203426-fb16ae7c5bba/go.mod h1:jpg+77g19FpXL43U1VoIqoSg1K/Vh5CVxycGldQ8KhA=
408410
github.com/coder/terraform-provider-coder v0.6.14 h1:NsJ1mo0MN1x/VyNLYmsgPUYn2JgzdVNZBqnj9OSIDgY=
409411
github.com/coder/terraform-provider-coder v0.6.14/go.mod h1:UIfU3bYNeSzJJvHyJ30tEKjD6Z9utloI+HUM/7n94CY=
410412
github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE=

tailnet/conn_test.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
"cdr.dev/slog/sloggers/slogtest"
1414
"github.com/coder/coder/tailnet"
1515
"github.com/coder/coder/tailnet/tailnettest"
16+
"github.com/coder/coder/testutil"
1617
)
1718

1819
func TestMain(m *testing.M) {
@@ -63,7 +64,7 @@ func TestTailnet(t *testing.T) {
6364
assert.N 10000 oError(t, err)
6465
})
6566
require.True(t, w2.AwaitReachable(context.Background(), w1IP))
66-
conn := make(chan struct{})
67+
conn := make(chan struct{}, 1)
6768
go func() {
6869
listener, err := w1.Listen("tcp", ":35565")
6970
assert.NoError(t, err)
@@ -98,6 +99,9 @@ func TestTailnet(t *testing.T) {
9899

99100
t.Run("ForcesWebSockets", func(t *testing.T) {
100101
t.Parallel()
102+
ctx, cancelFunc := testutil.Context(t)
103+
defer cancelFunc()
104+
101105
w1IP := tailnet.IP()
102106
derpMap := tailnettest.RunDERPOnlyWebSockets(t)
103107
w1, err := tailnet.NewConn(&tailnet.Options{
@@ -127,8 +131,8 @@ func TestTailnet(t *testing.T) {
127131
err := w1.UpdateNodes([]*tailnet.Node{node}, false)
128132
assert.NoError(t, err)
129133
})
130-
require.True(t, w2.AwaitReachable(context.Background(), w1IP))
131-
conn := make(chan struct{})
134+
require.True(t, w2.AwaitReachable(ctx, w1IP))
135+
conn := make(chan struct{}, 1)
132136
go func() {
133137
listener, err := w1.Listen("tcp", ":35565")
134138
assert.NoError(t, err)
@@ -141,7 +145,7 @@ func TestTailnet(t *testing.T) {
141145
conn <- struct{}{}
142146
}()
143147

144-
nc, err := w2.DialContextTCP(context.Background(), netip.AddrPortFrom(w1IP, 35565))
148+
nc, err := w2.DialContextTCP(ctx, netip.AddrPortFrom(w1IP, 35565))
145149
require.NoError(t, err)
146150
_ = nc.Close()
147151
<-conn

tailnet/derp.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ import (
1313
"tailscale.com/net/wsconn"
1414
)
1515

16-
// DERPWebsocketSupport returns an http.Handler that upgrades
16+
// WithWebsocketSupport returns an http.Handler that upgrades
1717
// connections to the "derp" subprotocol to WebSockets and
1818
// passes them to the DERP server.
1919
// Taken from: https://github.com/tailscale/tailscale/blob/e3211ff88ba85435f70984cf67d9b353f3d650d8/cmd/derper/websocket.go#L21
20-
func AddWebsocketSupport(s *derp.Server, base http.Handler) (http.Handler, func()) {
20+
func WithWebsocketSupport(s *derp.Server, base http.Handler) (http.Handler, func()) {
2121
var mu sync.Mutex
2222
var waitGroup sync.WaitGroup
2323
ctx, cancelFunc := context.WithCancel(context.Background())
@@ -34,6 +34,10 @@ func AddWebsocketSupport(s *derp.Server, base http.Handler) (http.Handler, func(
3434
}
3535

3636
mu.Lock()
37+
if ctx.Err() != nil {
38+
mu.Unlock()
39+
return
40+
}
3741
waitGroup.Add(1)
3842
mu.Unlock()
3943
defer waitGroup.Done()
@@ -58,7 +62,7 @@ func AddWebsocketSupport(s *derp.Server, base http.Handler) (http.Handler, func(
5862
}
5963
wc := wsconn.NetConn(ctx, c, websocket.MessageBinary)
6064
brw := bufio.NewReadWriter(bufio.NewReader(wc), bufio.NewWriter(wc))
61-
s.Accept(r.Context(), wc, brw, r.RemoteAddr)
65+
s.Accept(ctx, wc, brw, r.RemoteAddr)
6266
}), func() {
6367
cancelFunc()
6468
mu.Lock()

tailnet/tailnettest/tailnettest.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ func RunDERPOnlyWebSockets(t *testing.T) *tailcfg.DERPMap {
7272
d := derp.NewServer(key.NewNode(), logf)
7373
handler := derphttp.Handler(d)
7474
var closeFunc func()
75-
handler, closeFunc = tailnet.AddWebsocketSupport(d, handler)
75+
handler, closeFunc = tailnet.WithWebsocketSupport(d, handler)
7676
server := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
7777
if r.URL.Path != "/derp" {
7878
handler.ServeHTTP(w, r)
@@ -91,8 +91,8 @@ func RunDERPOnlyWebSockets(t *testing.T) *tailcfg.DERPMap {
9191
t.Cleanup(func() {
9292
server.CloseClientConnections()
9393
server.Close()
94-
d.Close()
9594
closeFunc()
95+
d.Close()
9696
})
9797

9898
tcpAddr, ok := server.Listener.Addr().(*net.TCPAddr)

0 commit comments

Comments
 (0)
0