| 472 | } |
| 473 | |
| 474 | func (s *Server) Close() error { |
| 475 | s.Logger.Info(s.ctx, "closing workspace proxy server") |
| 476 | defer s.Logger.Debug(s.ctx, "finished closing workspace proxy server") |
| 477 | s.cancel() |
| 478 | |
| 479 | var err error |
| 480 | s.registerLoop.Close() |
| 481 | s.derpCloseFunc() |
| 482 | appServerErr := s.AppServer.Close() |
| 483 | if appServerErr != nil { |
| 484 | err = multierror.Append(err, appServerErr) |
| 485 | } |
| 486 | agentProviderErr := s.AppServer.AgentProvider.Close() |
| 487 | if agentProviderErr != nil { |
| 488 | err = multierror.Append(err, agentProviderErr) |
| 489 | } |
| 490 | s.SDKClient.SDKClient.HTTPClient.CloseIdleConnections() |
| 491 | _ = s.appTokenSigningKeycache.Close() |
| 492 | _ = s.apiKeyEncryptionKeycache.Close() |
| 493 | return err |
| 494 | } |
| 495 | |
| 496 | func (s *Server) mutateRegister(req *wsproxysdk.RegisterWorkspaceProxyRequest) { |
| 497 | s.replicaErrMut.Lock() |