@@ -22,7 +22,6 @@ import (
2222"cdr.dev/slog"
2323"github.com/coder/coder/v2/coderd/tracing"
2424"github.com/coder/coder/v2/coderd/workspaceapps"
25- "github.com/coder/coder/v2/coderd/wsconncache"
2625"github.com/coder/coder/v2/codersdk"
2726"github.com/coder/coder/v2/site"
2827"github.com/coder/coder/v2/tailnet"
@@ -41,16 +40,14 @@ func init() {
4140
4241var _ workspaceapps.AgentProvider = (* ServerTailnet )(nil )
4342
44- // NewServerTailnet creates a new tailnet intended for use by coderd. It
45- // automatically falls back to wsconncache if a legacy agent is encountered.
43+ // NewServerTailnet creates a new tailnet intended for use by coderd.
4644func NewServerTailnet (
4745ctx context.Context ,
4846logger slog.Logger ,
4947derpServer * derp.Server ,
5048derpMapFn func ()* tailcfg.DERPMap ,
5149derpForceWebSockets bool ,
5250getMultiAgent func (context.Context ) (tailnet.MultiAgentConn ,error ),
53- cache * wsconncache.Cache ,
5451traceProvider trace.TracerProvider ,
5552) (* ServerTailnet ,error ) {
5653logger = logger .Named ("servertailnet" )
@@ -97,7 +94,6 @@ func NewServerTailnet(
9794conn :conn ,
9895coordinatee :conn ,
9996getMultiAgent :getMultiAgent ,
100- cache :cache ,
10197agentConnectionTimes :map [uuid.UUID ]time.Time {},
10298agentTickets :map [uuid.UUID ]map [uuid.UUID ]struct {}{},
10399transport :tailnetTransport .Clone (),
@@ -299,7 +295,6 @@ type ServerTailnet struct {
299295
300296getMultiAgent func (context.Context ) (tailnet.MultiAgentConn ,error )
301297agentConn atomic.Pointer [tailnet.MultiAgentConn ]
302- cache * wsconncache.Cache
303298nodesMu sync.Mutex
304299// agentConnectionTimes is a map of agent tailnetNodes the server wants to
305300// keep a connection to. It contains the last time the agent was connected
@@ -311,7 +306,7 @@ type ServerTailnet struct {
311306transport * http.Transport
312307}
313308
314- func (s * ServerTailnet )ReverseProxy (targetURL ,dashboardURL * url.URL ,agentID uuid.UUID )( _ * httputil.ReverseProxy , release func (), _ error ) {
309+ func (s * ServerTailnet )ReverseProxy (targetURL ,dashboardURL * url.URL ,agentID uuid.UUID )* httputil.ReverseProxy {
315310proxy := httputil .NewSingleHostReverseProxy (targetURL )
316311proxy .ErrorHandler = func (w http.ResponseWriter ,r * http.Request ,err error ) {
317312site .RenderStaticErrorPage (w ,r , site.ErrorPageData {
@@ -325,7 +320,7 @@ func (s *ServerTailnet) ReverseProxy(targetURL, dashboardURL *url.URL, agentID u
325320proxy .Director = s .director (agentID ,proxy .Director )
326321proxy .Transport = s .transport
327322
328- return proxy , func () {}, nil
323+ return proxy
329324}
330325
331326type agentIDKey struct {}
@@ -387,28 +382,17 @@ func (s *ServerTailnet) AgentConn(ctx context.Context, agentID uuid.UUID) (*code
387382ret func ()
388383)
389384
390- if s .getAgentConn ().AgentIsLegacy (agentID ) {
391- s .logger .Debug (s .ctx ,"acquiring legacy agent" ,slog .F ("agent_id" ,agentID ))
392- cconn ,release ,err := s .cache .Acquire (agentID )
393- if err != nil {
394- return nil ,nil ,xerrors .Errorf ("acquire legacy agent conn: %w" ,err )
395- }
396-
397- conn = cconn .WorkspaceAgentConn
398- ret = release
399- }else {
400- s .logger .Debug (s .ctx ,"acquiring agent" ,slog .F ("agent_id" ,agentID ))
401- err := s .ensureAgent (agentID )
402- if err != nil {
403- return nil ,nil ,xerrors .Errorf ("ensure agent: %w" ,err )
404- }
405- ret = s .acquireTicket (agentID )
406-
407- conn = codersdk .NewWorkspaceAgentConn (s .conn , codersdk.WorkspaceAgentConnOptions {
408- AgentID :agentID ,
409- CloseFunc :func ()error {return codersdk .ErrSkipClose },
410- })
385+ s .logger .Debug (s .ctx ,"acquiring agent" ,slog .F ("agent_id" ,agentID ))
386+ err := s .ensureAgent (agentID )
387+ if err != nil {
388+ return nil ,nil ,xerrors .Errorf ("ensure agent: %w" ,err )
411389}
390+ ret = s .acquireTicket (agentID )
391+
392+ conn = codersdk .NewWorkspaceAgentConn (s .conn , codersdk.WorkspaceAgentConnOptions {
393+ AgentID :agentID ,
394+ CloseFunc :func ()error {return codersdk .ErrSkipClose },
395+ })
412396
413397// Since we now have an open conn, be careful to close it if we error
414398// without returning it to the user.
@@ -458,7 +442,6 @@ func (c *netConnCloser) Close() error {
458442
459443func (s * ServerTailnet )Close ()error {
460444s .cancel ()
461- _ = s .cache .Close ()
462445_ = s .conn .Close ()
463446s .transport .CloseIdleConnections ()
464447<- s .derpMapUpdaterClosed