Rebind the VNC listeners with the other overlay services

This commit is contained in:
Viktor Liu
2026-09-04 12:55:35 +02:00
parent 6bb17274ff
commit 8d77231bce
3 changed files with 19 additions and 0 deletions

View File

@@ -2577,6 +2577,7 @@ func (e *Engine) rebindOverlayListeners() {
func (e *Engine) overlayRebinds() []overlayRebind {
return []overlayRebind{
e.restartSSHListeners,
e.restartVNCListeners,
e.restartDNSForwarder,
}
}

View File

@@ -100,6 +100,22 @@ func (e *Engine) updateVNC() error {
return e.startVNCServer()
}
// restartVNCListeners rebuilds the VNC server so it listens on new sockets.
// No-op when it is not running. See Engine.rebindOverlayListeners for why this
// is needed.
func (e *Engine) restartVNCListeners() error {
if e.vncSrv == nil {
return nil
}
if err := e.stopVNCServer(); err != nil {
return fmt.Errorf("rebind VNC listeners: %w", err)
}
if err := e.startVNCServer(); err != nil {
return fmt.Errorf("rebind VNC listeners: %w", err)
}
return nil
}
func (e *Engine) startVNCServer() error {
if e.wgInterface == nil {
return errors.New("wg interface not initialized")

View File

@@ -21,3 +21,5 @@ func (e *Engine) updateVNCServerAuth(auth *mgmProto.VNCAuth) {
}
func (e *Engine) stopVNCServer() error { return nil }
func (e *Engine) restartVNCListeners() error { return nil }