From 3e8cf39903775ecb6b8ebe03d43591453fe3c7d8 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Fri, 26 Apr 2019 20:05:24 +0200 Subject: ui: simplify everything Signed-off-by: Jason A. Donenfeld --- service/ipc_server.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'service/ipc_server.go') diff --git a/service/ipc_server.go b/service/ipc_server.go index 17ea67c2..6d576846 100644 --- a/service/ipc_server.go +++ b/service/ipc_server.go @@ -71,6 +71,18 @@ func (s *ManagerService) RuntimeConfig(tunnelName string, config *conf.Config) e } func (s *ManagerService) Start(tunnelName string, unused *uintptr) error { + // For now, enforce only one tunnel at a time. Later we'll remove this silly restriction. + trackedTunnelsLock.Lock() + tt := make([]string, 0, len(trackedTunnels)) + for t := range trackedTunnels { + tt = append(tt, t) + } + trackedTunnelsLock.Unlock() + for _, t := range tt { + s.Stop(t, unused) + } + + // After that process is started -- it's somewhat asynchronous -- we install the new one. c, err := conf.LoadFromName(tunnelName) if err != nil { return err @@ -156,6 +168,11 @@ func (s *ManagerService) State(tunnelName string, state *TunnelState) error { return nil } +func (s *ManagerService) GlobalState(unused uintptr, state *TunnelState) error { + *state = trackedTunnelsGlobalState() + return nil +} + func (s *ManagerService) Create(tunnelConfig conf.Config, tunnel *Tunnel) error { err := tunnelConfig.Save() if err != nil { -- cgit v1.2.3-59-g8ed1b