fix(protonvpn): crash service if port assigned changes

This commit is contained in:
Quentin McGaw
2023-09-23 12:36:13 +00:00
parent 1a865f56d5
commit 2ac0f35060

View File

@@ -2,6 +2,7 @@ package protonvpn
import ( import (
"context" "context"
"errors"
"fmt" "fmt"
"strings" "strings"
"time" "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, func (p *Provider) KeepPortForward(ctx context.Context,
objects utils.PortForwardObjects) (err error) { objects utils.PortForwardObjects) (err error) {
client := natpmp.New() client := natpmp.New()
@@ -98,9 +101,8 @@ func (p *Provider) KeepPortForward(ctx context.Context,
} }
if p.portForwarded != assignedExternalPort { if p.portForwarded != assignedExternalPort {
objects.Logger.Warn(fmt.Sprintf("external port assigned %d changed to %d", return fmt.Errorf("%w: %d changed to %d",
p.portForwarded, assignedExternalPort)) ErrExternalPortChanged, p.portForwarded, assignedExternalPort)
p.portForwarded = assignedExternalPort
} }
} }