summaryrefslogtreecommitdiff
path: root/pkg/vpn
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/vpn')
-rw-r--r--pkg/vpn/main.go3
-rw-r--r--pkg/vpn/status.go7
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
}