mirror of
https://github.com/netbirdio/netbird.git
synced 2026-10-28 15:29:09 +01:00
Share one VNC session agent manager across all accept loops
This commit is contained in:
@@ -246,8 +246,11 @@ func (s *Server) serviceAcceptLoop(ln net.Listener) {
|
||||
return
|
||||
}
|
||||
|
||||
sm := newSessionManager()
|
||||
go sm.run()
|
||||
sm := s.serviceAgent()
|
||||
if sm == nil {
|
||||
s.log.Error("service mode: no agent manager available")
|
||||
return
|
||||
}
|
||||
|
||||
log.Info("service mode, proxying connections to agent over Unix socket")
|
||||
|
||||
@@ -256,7 +259,6 @@ func (s *Server) serviceAcceptLoop(ln net.Listener) {
|
||||
if err != nil {
|
||||
select {
|
||||
case <-s.ctx.Done():
|
||||
sm.Stop()
|
||||
return
|
||||
default:
|
||||
}
|
||||
@@ -279,3 +281,11 @@ func (s *Server) serviceAcceptLoop(ln net.Listener) {
|
||||
}(conn)
|
||||
}
|
||||
}
|
||||
|
||||
// newServiceAgentManager starts the session manager that owns the console
|
||||
// agent. Called once per server via Server.serviceAgent.
|
||||
func (s *Server) newServiceAgentManager() (sessionAgent, func()) {
|
||||
sm := newSessionManager()
|
||||
go sm.run()
|
||||
return sm, sm.Stop
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user