diff options
Diffstat (limited to 'ui/tunnelsview.go')
-rw-r--r-- | ui/tunnelsview.go | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/ui/tunnelsview.go b/ui/tunnelsview.go index 15dc22ca..26099c2c 100644 --- a/ui/tunnelsview.go +++ b/ui/tunnelsview.go @@ -207,3 +207,22 @@ func (tv *TunnelsView) selectTunnel(tunnelName string) { } } } + +func (tv *TunnelsView) SelectFirstActiveTunnel() { + tunnels := make([]service.Tunnel, len(tv.model.tunnels)) + copy(tunnels, tv.model.tunnels) + go func() { + for _, tunnel := range tunnels { + state, err := tunnel.State() + if err != nil { + continue + } + if state == service.TunnelStarting || state == service.TunnelStarted { + tv.Synchronize(func() { + tv.selectTunnel(tunnel.Name) + }) + return + } + } + }() +} |