diff --git a/internal/configuration/settings/portforward.go b/internal/configuration/settings/portforward.go index 1ba6ed13..55a732fb 100644 --- a/internal/configuration/settings/portforward.go +++ b/internal/configuration/settings/portforward.go @@ -54,6 +54,7 @@ func (p PortForwarding) Validate(vpnProvider string) (err error) { providers.PrivateInternetAccess, providers.Privatevpn, providers.Protonvpn, + providers.Mullvad, } if err = validate.IsOneOf(providerSelected, validProviders...); err != nil { return fmt.Errorf("%w: %w", ErrPortForwardingEnabled, err) diff --git a/internal/provider/mullvad/portforward.go b/internal/provider/mullvad/portforward.go new file mode 100644 index 00000000..bb5f0686 --- /dev/null +++ b/internal/provider/mullvad/portforward.go @@ -0,0 +1,23 @@ +package mullvad + +import ( + "context" + + "github.com/qdm12/gluetun/internal/provider/utils" +) + +// PortForward obtains a VPN server side port forwarded from ProtonVPN gateway. +func (p *Provider) PortForward(_ context.Context, objects utils.PortForwardObjects) ( + port uint16, err error) { + objects.Logger.Debug("mullvad: port forward") + port = 10000 + return port, nil +} + +func (p *Provider) KeepPortForward(ctx context.Context, + objects utils.PortForwardObjects) (err error) { + objects.Logger.Debug("mullvad: keeping port forward") + <-ctx.Done() + objects.Logger.Debug("mullvad: keeping port forward exiting") + return nil +}