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_client.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'service/ipc_client.go') diff --git a/service/ipc_client.go b/service/ipc_client.go index e6295b91..55fc043d 100644 --- a/service/ipc_client.go +++ b/service/ipc_client.go @@ -113,6 +113,20 @@ func (t *Tunnel) Stop() error { return rpcClient.Call("ManagerService.Stop", t.Name, nil) } +func (t *Tunnel) Toggle() (oldState TunnelState, err error) { + oldState, err = t.State() + if err != nil { + oldState = TunnelUnknown + return + } + if oldState == TunnelStarted { + err = t.Stop() + } else if oldState == TunnelStopped { + err = t.Start() + } + return +} + func (t *Tunnel) WaitForStop() error { return rpcClient.Call("ManagerService.WaitForStop", t.Name, nil) } @@ -136,6 +150,11 @@ func IPCClientTunnels() ([]Tunnel, error) { return tunnels, rpcClient.Call("ManagerService.Tunnels", uintptr(0), &tunnels) } +func IPCClientGlobalState() (TunnelState, error) { + var state TunnelState + return state, rpcClient.Call("ManagerService.GlobalState", uintptr(0), &state) +} + func IPCClientQuit(stopTunnelsOnQuit bool) (bool, error) { var alreadyQuit bool return alreadyQuit, rpcClient.Call("ManagerService.Quit", stopTunnelsOnQuit, &alreadyQuit) -- cgit v1.2.3-59-g8ed1b