From 6b6caa435f56de6bda736ea21856c813f7682e63 Mon Sep 17 00:00:00 2001 From: "Quentin McGaw (desktop)" Date: Mon, 6 Sep 2021 13:28:05 +0000 Subject: [PATCH] Fix: clear IP data when VPN is stopped --- internal/publicip/alias.go | 2 +- internal/publicip/loop.go | 2 +- internal/publicip/publicip.go | 4 ++++ internal/publicip/state/publicip.go | 6 +----- internal/vpn/run.go | 2 ++ 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/internal/publicip/alias.go b/internal/publicip/alias.go index a68cb12e..5e0c5fdd 100644 --- a/internal/publicip/alias.go +++ b/internal/publicip/alias.go @@ -2,5 +2,5 @@ package publicip import "github.com/qdm12/gluetun/internal/publicip/state" -type Getter = state.DataGetter +type GetSetter = state.DataGetSetter type SettingsGetSetter = state.SettingsGetSetter diff --git a/internal/publicip/loop.go b/internal/publicip/loop.go index 2cca9c46..a7d91ade 100644 --- a/internal/publicip/loop.go +++ b/internal/publicip/loop.go @@ -20,7 +20,7 @@ type Looper interface { loopstate.Getter loopstate.Applier SettingsGetSetter - Getter + GetSetter } type Loop struct { diff --git a/internal/publicip/publicip.go b/internal/publicip/publicip.go index da9c1359..19efb405 100644 --- a/internal/publicip/publicip.go +++ b/internal/publicip/publicip.go @@ -7,3 +7,7 @@ import ( func (l *Loop) GetData() (data models.IPInfoData) { return l.state.GetData() } + +func (l *Loop) SetData(data models.IPInfoData) { + l.state.SetData(data) +} diff --git a/internal/publicip/state/publicip.go b/internal/publicip/state/publicip.go index ff27a9df..119c616a 100644 --- a/internal/publicip/state/publicip.go +++ b/internal/publicip/state/publicip.go @@ -5,12 +5,8 @@ import ( ) type DataGetSetter interface { - DataGetter - SetData(data models.IPInfoData) -} - -type DataGetter interface { GetData() (data models.IPInfoData) + SetData(data models.IPInfoData) } func (s *State) GetData() (data models.IPInfoData) { diff --git a/internal/vpn/run.go b/internal/vpn/run.go index b374ac34..73b3618a 100644 --- a/internal/vpn/run.go +++ b/internal/vpn/run.go @@ -6,6 +6,7 @@ import ( "github.com/qdm12/gluetun/internal/constants" "github.com/qdm12/gluetun/internal/provider" + "github.com/qdm12/gluetun/internal/publicip/models" ) type Runner interface { @@ -83,6 +84,7 @@ func (l *Loop) Run(ctx context.Context, done chan<- struct{}) { case <-l.stop: l.userTrigger = true l.logger.Info("stopping") + l.publicip.SetData(models.IPInfoData{}) // clear public IP address data l.stopPortForwarding(ctx, settings.Provider.PortForwarding.Enabled, 0) openvpnCancel() <-waitError