diff options
author | kali kaneko (leap communications) <kali@leap.se> | 2020-08-26 00:35:01 +0200 |
---|---|---|
committer | kali kaneko (leap communications) <kali@leap.se> | 2021-05-04 14:58:38 +0200 |
commit | 2124a55d4a3d0ca00f8eab8f86c292ba1e7ccccf (patch) | |
tree | f6ded94b316c605a67b5c1f7342cb751affcfc75 /pkg | |
parent | ed3f393b1a81f040406a2b622a82c8f86a27c460 (diff) |
[feat] store gateway we connect to
firs step on an usable gateway selector
Diffstat (limited to 'pkg')
-rw-r--r-- | pkg/vpn/main.go | 3 | ||||
-rw-r--r-- | pkg/vpn/status.go | 7 |
2 files changed, 8 insertions, 2 deletions
diff --git a/pkg/vpn/main.go b/pkg/vpn/main.go index de8e61f..9ddd9fd 100644 --- a/pkg/vpn/main.go +++ b/pkg/vpn/main.go @@ -29,6 +29,7 @@ import ( // Bitmask holds the bitmask client data type Bitmask struct { tempdir string + onGateway string statusCh chan string managementClient *openvpn.MgmtClient bonafide *bonafide.Bonafide @@ -49,7 +50,7 @@ func Init() (*Bitmask, error) { if err != nil { return nil, err } - b := Bitmask{tempdir, statusCh, nil, bonafide, launch, "", nil} + b := Bitmask{tempdir, "", statusCh, nil, bonafide, launch, "", nil} /* TODO -- we still want to do this, since it resets the fw/vpn if running diff --git a/pkg/vpn/status.go b/pkg/vpn/status.go index a4d7ada..cc2fb62 100644 --- a/pkg/vpn/status.go +++ b/pkg/vpn/status.go @@ -18,6 +18,7 @@ package vpn import ( "fmt" "log" + "strings" "github.com/apparentlymart/go-openvpn-mgmt/openvpn" ) @@ -66,10 +67,14 @@ func (b *Bitmask) eventHandler(eventCh <-chan openvpn.Event) { if !ok { continue } - status, ok := statusNames[stateEvent.NewState()] + statusName := stateEvent.NewState() + status, ok := statusNames[statusName] if ok { b.statusCh <- status } + if statusName == "CONNECTED" { + b.onGateway = strings.Split(stateEvent.String(), ": ")[1] + } } b.statusCh <- Off } |