From 2ac0f350603a2eb408bf3a15de084433a9201d27 Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Sat, 23 Sep 2023 12:36:13 +0000 Subject: [PATCH] fix(protonvpn): crash service if port assigned changes --- internal/provider/protonvpn/portforward.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/internal/provider/protonvpn/portforward.go b/internal/provider/protonvpn/portforward.go index 0d13f2c8..9afcad04 100644 --- a/internal/provider/protonvpn/portforward.go +++ b/internal/provider/protonvpn/portforward.go @@ -2,6 +2,7 @@ package protonvpn import ( "context" + "errors" "fmt" "strings" "time" @@ -66,6 +67,8 @@ func checkExternalPorts(logger utils.Logger, udpPort, tcpPort uint16) { } } +var ErrExternalPortChanged = errors.New("external port changed") + func (p *Provider) KeepPortForward(ctx context.Context, objects utils.PortForwardObjects) (err error) { client := natpmp.New() @@ -98,9 +101,8 @@ func (p *Provider) KeepPortForward(ctx context.Context, } if p.portForwarded != assignedExternalPort { - objects.Logger.Warn(fmt.Sprintf("external port assigned %d changed to %d", - p.portForwarded, assignedExternalPort)) - p.portForwarded = assignedExternalPort + return fmt.Errorf("%w: %d changed to %d", + ErrExternalPortChanged, p.portForwarded, assignedExternalPort) } }