diff --git a/internal/provider/cyberghost/portforward.go b/internal/provider/cyberghost/portforward.go deleted file mode 100644 index ab351a20..00000000 --- a/internal/provider/cyberghost/portforward.go +++ /dev/null @@ -1,16 +0,0 @@ -package cyberghost - -import ( - "context" - "net" - "net/http" - - "github.com/qdm12/gluetun/internal/firewall" - "github.com/qdm12/golibs/logging" -) - -func (c *Cyberghost) PortForward(ctx context.Context, client *http.Client, - pfLogger logging.Logger, gateway net.IP, portAllower firewall.PortAllower, - syncState func(port uint16) (pfFilepath string)) { - panic("port forwarding is not supported for Cyberghost") -} diff --git a/internal/provider/cyberghost/provider.go b/internal/provider/cyberghost/provider.go index 0d7325f1..80ab0514 100644 --- a/internal/provider/cyberghost/provider.go +++ b/internal/provider/cyberghost/provider.go @@ -3,17 +3,21 @@ package cyberghost import ( "math/rand" + "github.com/qdm12/gluetun/internal/constants" "github.com/qdm12/gluetun/internal/models" + "github.com/qdm12/gluetun/internal/provider/utils" ) type Cyberghost struct { servers []models.CyberghostServer randSource rand.Source + utils.NoPortForwarder } func New(servers []models.CyberghostServer, randSource rand.Source) *Cyberghost { return &Cyberghost{ - servers: servers, - randSource: randSource, + servers: servers, + randSource: randSource, + NoPortForwarder: utils.NewNoPortForwarding(constants.Cyberghost), } } diff --git a/internal/provider/fastestvpn/portforward.go b/internal/provider/fastestvpn/portforward.go deleted file mode 100644 index 41d7cea7..00000000 --- a/internal/provider/fastestvpn/portforward.go +++ /dev/null @@ -1,16 +0,0 @@ -package fastestvpn - -import ( - "context" - "net" - "net/http" - - "github.com/qdm12/gluetun/internal/firewall" - "github.com/qdm12/golibs/logging" -) - -func (f *Fastestvpn) PortForward(ctx context.Context, client *http.Client, - pfLogger logging.Logger, gateway net.IP, portAllower firewall.PortAllower, - syncState func(port uint16) (pfFilepath string)) { - panic("port forwarding is not supported for FastestVPN") -} diff --git a/internal/provider/fastestvpn/provider.go b/internal/provider/fastestvpn/provider.go index 7cce6716..f63bb8e8 100644 --- a/internal/provider/fastestvpn/provider.go +++ b/internal/provider/fastestvpn/provider.go @@ -3,17 +3,21 @@ package fastestvpn import ( "math/rand" + "github.com/qdm12/gluetun/internal/constants" "github.com/qdm12/gluetun/internal/models" + "github.com/qdm12/gluetun/internal/provider/utils" ) type Fastestvpn struct { servers []models.FastestvpnServer randSource rand.Source + utils.NoPortForwarder } func New(servers []models.FastestvpnServer, randSource rand.Source) *Fastestvpn { return &Fastestvpn{ - servers: servers, - randSource: randSource, + servers: servers, + randSource: randSource, + NoPortForwarder: utils.NewNoPortForwarding(constants.Fastestvpn), } } diff --git a/internal/provider/hidemyass/portforward.go b/internal/provider/hidemyass/portforward.go deleted file mode 100644 index f06f1c32..00000000 --- a/internal/provider/hidemyass/portforward.go +++ /dev/null @@ -1,16 +0,0 @@ -package hidemyass - -import ( - "context" - "net" - "net/http" - - "github.com/qdm12/gluetun/internal/firewall" - "github.com/qdm12/golibs/logging" -) - -func (f *HideMyAss) PortForward(ctx context.Context, client *http.Client, - pfLogger logging.Logger, gateway net.IP, portAllower firewall.PortAllower, - syncState func(port uint16) (pfFilepath string)) { - panic("port forwarding is not supported for HideMyAss") -} diff --git a/internal/provider/hidemyass/provider.go b/internal/provider/hidemyass/provider.go index 73e33ccc..c5abe28a 100644 --- a/internal/provider/hidemyass/provider.go +++ b/internal/provider/hidemyass/provider.go @@ -3,17 +3,21 @@ package hidemyass import ( "math/rand" + "github.com/qdm12/gluetun/internal/constants" "github.com/qdm12/gluetun/internal/models" + "github.com/qdm12/gluetun/internal/provider/utils" ) type HideMyAss struct { servers []models.HideMyAssServer randSource rand.Source + utils.NoPortForwarder } func New(servers []models.HideMyAssServer, randSource rand.Source) *HideMyAss { return &HideMyAss{ - servers: servers, - randSource: randSource, + servers: servers, + randSource: randSource, + NoPortForwarder: utils.NewNoPortForwarding(constants.HideMyAss), } } diff --git a/internal/provider/ipvanish/portforward.go b/internal/provider/ipvanish/portforward.go deleted file mode 100644 index 0e0a3fc2..00000000 --- a/internal/provider/ipvanish/portforward.go +++ /dev/null @@ -1,16 +0,0 @@ -package ipvanish - -import ( - "context" - "net" - "net/http" - - "github.com/qdm12/gluetun/internal/firewall" - "github.com/qdm12/golibs/logging" -) - -func (i *Ipvanish) PortForward(ctx context.Context, client *http.Client, - pfLogger logging.Logger, gateway net.IP, portAllower firewall.PortAllower, - syncState func(port uint16) (pfFilepath string)) { - panic("port forwarding is not supported for Ipvanish") -} diff --git a/internal/provider/ipvanish/provider.go b/internal/provider/ipvanish/provider.go index 35c18337..dadef82c 100644 --- a/internal/provider/ipvanish/provider.go +++ b/internal/provider/ipvanish/provider.go @@ -3,17 +3,21 @@ package ipvanish import ( "math/rand" + "github.com/qdm12/gluetun/internal/constants" "github.com/qdm12/gluetun/internal/models" + "github.com/qdm12/gluetun/internal/provider/utils" ) type Ipvanish struct { servers []models.IpvanishServer randSource rand.Source + utils.NoPortForwarder } func New(servers []models.IpvanishServer, randSource rand.Source) *Ipvanish { return &Ipvanish{ - servers: servers, - randSource: randSource, + servers: servers, + randSource: randSource, + NoPortForwarder: utils.NewNoPortForwarding(constants.Ipvanish), } } diff --git a/internal/provider/ivpn/portforward.go b/internal/provider/ivpn/portforward.go deleted file mode 100644 index 51607ad6..00000000 --- a/internal/provider/ivpn/portforward.go +++ /dev/null @@ -1,16 +0,0 @@ -package ivpn - -import ( - "context" - "net" - "net/http" - - "github.com/qdm12/gluetun/internal/firewall" - "github.com/qdm12/golibs/logging" -) - -func (i *Ivpn) PortForward(ctx context.Context, client *http.Client, - pfLogger logging.Logger, gateway net.IP, portAllower firewall.PortAllower, - syncState func(port uint16) (pfFilepath string)) { - panic("port forwarding is not supported for Ivpn") -} diff --git a/internal/provider/ivpn/provider.go b/internal/provider/ivpn/provider.go index 3e3cf8e9..d8dd3c28 100644 --- a/internal/provider/ivpn/provider.go +++ b/internal/provider/ivpn/provider.go @@ -3,17 +3,21 @@ package ivpn import ( "math/rand" + "github.com/qdm12/gluetun/internal/constants" "github.com/qdm12/gluetun/internal/models" + "github.com/qdm12/gluetun/internal/provider/utils" ) type Ivpn struct { servers []models.IvpnServer randSource rand.Source + utils.NoPortForwarder } func New(servers []models.IvpnServer, randSource rand.Source) *Ivpn { return &Ivpn{ - servers: servers, - randSource: randSource, + servers: servers, + randSource: randSource, + NoPortForwarder: utils.NewNoPortForwarding(constants.Ivpn), } } diff --git a/internal/provider/mullvad/portforward.go b/internal/provider/mullvad/portforward.go deleted file mode 100644 index cc77563c..00000000 --- a/internal/provider/mullvad/portforward.go +++ /dev/null @@ -1,16 +0,0 @@ -package mullvad - -import ( - "context" - "net" - "net/http" - - "github.com/qdm12/gluetun/internal/firewall" - "github.com/qdm12/golibs/logging" -) - -func (m *Mullvad) PortForward(ctx context.Context, client *http.Client, - pfLogger logging.Logger, gateway net.IP, portAllower firewall.PortAllower, - syncState func(port uint16) (pfFilepath string)) { - panic("port forwarding logic is not needed for Mullvad") -} diff --git a/internal/provider/mullvad/provider.go b/internal/provider/mullvad/provider.go index 12d1675d..8941d5cf 100644 --- a/internal/provider/mullvad/provider.go +++ b/internal/provider/mullvad/provider.go @@ -3,17 +3,21 @@ package mullvad import ( "math/rand" + "github.com/qdm12/gluetun/internal/constants" "github.com/qdm12/gluetun/internal/models" + "github.com/qdm12/gluetun/internal/provider/utils" ) type Mullvad struct { servers []models.MullvadServer randSource rand.Source + utils.NoPortForwarder } func New(servers []models.MullvadServer, randSource rand.Source) *Mullvad { return &Mullvad{ - servers: servers, - randSource: randSource, + servers: servers, + randSource: randSource, + NoPortForwarder: utils.NewNoPortForwarding(constants.Mullvad), } } diff --git a/internal/provider/nordvpn/portforward.go b/internal/provider/nordvpn/portforward.go deleted file mode 100644 index 9127daa3..00000000 --- a/internal/provider/nordvpn/portforward.go +++ /dev/null @@ -1,16 +0,0 @@ -package nordvpn - -import ( - "context" - "net" - "net/http" - - "github.com/qdm12/gluetun/internal/firewall" - "github.com/qdm12/golibs/logging" -) - -func (n *Nordvpn) PortForward(ctx context.Context, client *http.Client, - pfLogger logging.Logger, gateway net.IP, portAllower firewall.PortAllower, - syncState func(port uint16) (pfFilepath string)) { - panic("port forwarding is not supported for NordVPN") -} diff --git a/internal/provider/nordvpn/provider.go b/internal/provider/nordvpn/provider.go index 7e39f7f3..25f7564b 100644 --- a/internal/provider/nordvpn/provider.go +++ b/internal/provider/nordvpn/provider.go @@ -3,17 +3,21 @@ package nordvpn import ( "math/rand" + "github.com/qdm12/gluetun/internal/constants" "github.com/qdm12/gluetun/internal/models" + "github.com/qdm12/gluetun/internal/provider/utils" ) type Nordvpn struct { servers []models.NordvpnServer randSource rand.Source + utils.NoPortForwarder } func New(servers []models.NordvpnServer, randSource rand.Source) *Nordvpn { return &Nordvpn{ - servers: servers, - randSource: randSource, + servers: servers, + randSource: randSource, + NoPortForwarder: utils.NewNoPortForwarding(constants.Nordvpn), } } diff --git a/internal/provider/privado/portforward.go b/internal/provider/privado/portforward.go deleted file mode 100644 index 9af0e306..00000000 --- a/internal/provider/privado/portforward.go +++ /dev/null @@ -1,16 +0,0 @@ -package privado - -import ( - "context" - "net" - "net/http" - - "github.com/qdm12/gluetun/internal/firewall" - "github.com/qdm12/golibs/logging" -) - -func (p *Privado) PortForward(ctx context.Context, client *http.Client, - pfLogger logging.Logger, gateway net.IP, portAllower firewall.PortAllower, - syncState func(port uint16) (pfFilepath string)) { - panic("port forwarding is not supported for Privado") -} diff --git a/internal/provider/privado/provider.go b/internal/provider/privado/provider.go index 5616926d..9c5fda78 100644 --- a/internal/provider/privado/provider.go +++ b/internal/provider/privado/provider.go @@ -3,17 +3,21 @@ package privado import ( "math/rand" + "github.com/qdm12/gluetun/internal/constants" "github.com/qdm12/gluetun/internal/models" + "github.com/qdm12/gluetun/internal/provider/utils" ) type Privado struct { servers []models.PrivadoServer randSource rand.Source + utils.NoPortForwarder } func New(servers []models.PrivadoServer, randSource rand.Source) *Privado { return &Privado{ - servers: servers, - randSource: randSource, + servers: servers, + randSource: randSource, + NoPortForwarder: utils.NewNoPortForwarding(constants.Privado), } } diff --git a/internal/provider/privatevpn/portforward.go b/internal/provider/privatevpn/portforward.go deleted file mode 100644 index 7f332576..00000000 --- a/internal/provider/privatevpn/portforward.go +++ /dev/null @@ -1,16 +0,0 @@ -package privatevpn - -import ( - "context" - "net" - "net/http" - - "github.com/qdm12/gluetun/internal/firewall" - "github.com/qdm12/golibs/logging" -) - -func (p *Privatevpn) PortForward(ctx context.Context, client *http.Client, - pfLogger logging.Logger, gateway net.IP, portAllower firewall.PortAllower, - syncState func(port uint16) (pfFilepath string)) { - panic("port forwarding is not supported for PrivateVPN") -} diff --git a/internal/provider/privatevpn/provider.go b/internal/provider/privatevpn/provider.go index 5782d5c8..11f5a1e2 100644 --- a/internal/provider/privatevpn/provider.go +++ b/internal/provider/privatevpn/provider.go @@ -3,17 +3,21 @@ package privatevpn import ( "math/rand" + "github.com/qdm12/gluetun/internal/constants" "github.com/qdm12/gluetun/internal/models" + "github.com/qdm12/gluetun/internal/provider/utils" ) type Privatevpn struct { servers []models.PrivatevpnServer randSource rand.Source + utils.NoPortForwarder } func New(servers []models.PrivatevpnServer, randSource rand.Source) *Privatevpn { return &Privatevpn{ - servers: servers, - randSource: randSource, + servers: servers, + randSource: randSource, + NoPortForwarder: utils.NewNoPortForwarding(constants.Privatevpn), } } diff --git a/internal/provider/protonvpn/portforward.go b/internal/provider/protonvpn/portforward.go deleted file mode 100644 index a9a6bc29..00000000 --- a/internal/provider/protonvpn/portforward.go +++ /dev/null @@ -1,16 +0,0 @@ -package protonvpn - -import ( - "context" - "net" - "net/http" - - "github.com/qdm12/gluetun/internal/firewall" - "github.com/qdm12/golibs/logging" -) - -func (p *Protonvpn) PortForward(ctx context.Context, client *http.Client, - pfLogger logging.Logger, gateway net.IP, portAllower firewall.PortAllower, - syncState func(port uint16) (pfFilepath string)) { - panic("port forwarding is not supported for ProtonVPN") -} diff --git a/internal/provider/protonvpn/provider.go b/internal/provider/protonvpn/provider.go index d0521361..b9f5bd6a 100644 --- a/internal/provider/protonvpn/provider.go +++ b/internal/provider/protonvpn/provider.go @@ -3,17 +3,21 @@ package protonvpn import ( "math/rand" + "github.com/qdm12/gluetun/internal/constants" "github.com/qdm12/gluetun/internal/models" + "github.com/qdm12/gluetun/internal/provider/utils" ) type Protonvpn struct { servers []models.ProtonvpnServer randSource rand.Source + utils.NoPortForwarder } func New(servers []models.ProtonvpnServer, randSource rand.Source) *Protonvpn { return &Protonvpn{ - servers: servers, - randSource: randSource, + servers: servers, + randSource: randSource, + NoPortForwarder: utils.NewNoPortForwarding(constants.Protonvpn), } } diff --git a/internal/provider/purevpn/portforward.go b/internal/provider/purevpn/portforward.go deleted file mode 100644 index 65ec26f6..00000000 --- a/internal/provider/purevpn/portforward.go +++ /dev/null @@ -1,16 +0,0 @@ -package purevpn - -import ( - "context" - "net" - "net/http" - - "github.com/qdm12/gluetun/internal/firewall" - "github.com/qdm12/golibs/logging" -) - -func (p *Purevpn) PortForward(ctx context.Context, client *http.Client, - pfLogger logging.Logger, gateway net.IP, portAllower firewall.PortAllower, - syncState func(port uint16) (pfFilepath string)) { - panic("port forwarding is not supported for PureVPN") -} diff --git a/internal/provider/purevpn/provider.go b/internal/provider/purevpn/provider.go index 07f0d99d..5ffcdf44 100644 --- a/internal/provider/purevpn/provider.go +++ b/internal/provider/purevpn/provider.go @@ -3,17 +3,21 @@ package purevpn import ( "math/rand" + "github.com/qdm12/gluetun/internal/constants" "github.com/qdm12/gluetun/internal/models" + "github.com/qdm12/gluetun/internal/provider/utils" ) type Purevpn struct { servers []models.PurevpnServer randSource rand.Source + utils.NoPortForwarder } func New(servers []models.PurevpnServer, randSource rand.Source) *Purevpn { return &Purevpn{ - servers: servers, - randSource: randSource, + servers: servers, + randSource: randSource, + NoPortForwarder: utils.NewNoPortForwarding(constants.Purevpn), } } diff --git a/internal/provider/surfshark/portforward.go b/internal/provider/surfshark/portforward.go deleted file mode 100644 index fba0350f..00000000 --- a/internal/provider/surfshark/portforward.go +++ /dev/null @@ -1,16 +0,0 @@ -package surfshark - -import ( - "context" - "net" - "net/http" - - "github.com/qdm12/gluetun/internal/firewall" - "github.com/qdm12/golibs/logging" -) - -func (s *Surfshark) PortForward(ctx context.Context, client *http.Client, - pfLogger logging.Logger, gateway net.IP, portAllower firewall.PortAllower, - syncState func(port uint16) (pfFilepath string)) { - panic("port forwarding is not supported for Surfshark") -} diff --git a/internal/provider/surfshark/provider.go b/internal/provider/surfshark/provider.go index 53fc6ce1..ca15ec88 100644 --- a/internal/provider/surfshark/provider.go +++ b/internal/provider/surfshark/provider.go @@ -3,17 +3,21 @@ package surfshark import ( "math/rand" + "github.com/qdm12/gluetun/internal/constants" "github.com/qdm12/gluetun/internal/models" + "github.com/qdm12/gluetun/internal/provider/utils" ) type Surfshark struct { servers []models.SurfsharkServer randSource rand.Source + utils.NoPortForwarder } func New(servers []models.SurfsharkServer, randSource rand.Source) *Surfshark { return &Surfshark{ - servers: servers, - randSource: randSource, + servers: servers, + randSource: randSource, + NoPortForwarder: utils.NewNoPortForwarding(constants.Surfshark), } } diff --git a/internal/provider/torguard/portforward.go b/internal/provider/torguard/portforward.go deleted file mode 100644 index b9f09663..00000000 --- a/internal/provider/torguard/portforward.go +++ /dev/null @@ -1,16 +0,0 @@ -package torguard - -import ( - "context" - "net" - "net/http" - - "github.com/qdm12/gluetun/internal/firewall" - "github.com/qdm12/golibs/logging" -) - -func (t *Torguard) PortForward(ctx context.Context, client *http.Client, - pfLogger logging.Logger, gateway net.IP, portAllower firewall.PortAllower, - syncState func(port uint16) (pfFilepath string)) { - panic("port forwarding is not supported for Torguard") -} diff --git a/internal/provider/torguard/provider.go b/internal/provider/torguard/provider.go index 73406a5d..6247b3e2 100644 --- a/internal/provider/torguard/provider.go +++ b/internal/provider/torguard/provider.go @@ -3,17 +3,21 @@ package torguard import ( "math/rand" + "github.com/qdm12/gluetun/internal/constants" "github.com/qdm12/gluetun/internal/models" + "github.com/qdm12/gluetun/internal/provider/utils" ) type Torguard struct { servers []models.TorguardServer randSource rand.Source + utils.NoPortForwarder } func New(servers []models.TorguardServer, randSource rand.Source) *Torguard { return &Torguard{ - servers: servers, - randSource: randSource, + servers: servers, + randSource: randSource, + NoPortForwarder: utils.NewNoPortForwarding(constants.Torguard), } } diff --git a/internal/provider/utils/noportforward.go b/internal/provider/utils/noportforward.go new file mode 100644 index 00000000..844e3b64 --- /dev/null +++ b/internal/provider/utils/noportforward.go @@ -0,0 +1,32 @@ +package utils + +import ( + "context" + "net" + "net/http" + + "github.com/qdm12/gluetun/internal/firewall" + "github.com/qdm12/golibs/logging" +) + +type NoPortForwarder interface { + PortForward(ctx context.Context, client *http.Client, + pfLogger logging.Logger, gateway net.IP, portAllower firewall.PortAllower, + syncState func(port uint16) (pfFilepath string)) +} + +type NoPortForwarding struct { + providerName string +} + +func NewNoPortForwarding(providerName string) *NoPortForwarding { + return &NoPortForwarding{ + providerName: providerName, + } +} + +func (n *NoPortForwarding) PortForward(ctx context.Context, client *http.Client, + pfLogger logging.Logger, gateway net.IP, portAllower firewall.PortAllower, + syncState func(port uint16) (pfFilepath string)) { + panic("custom port forwarding obtention is not supported for " + n.providerName) +} diff --git a/internal/provider/vpnunlimited/portforward.go b/internal/provider/vpnunlimited/portforward.go deleted file mode 100644 index 2d4fb2cc..00000000 --- a/internal/provider/vpnunlimited/portforward.go +++ /dev/null @@ -1,16 +0,0 @@ -package vpnunlimited - -import ( - "context" - "net" - "net/http" - - "github.com/qdm12/gluetun/internal/firewall" - "github.com/qdm12/golibs/logging" -) - -func (p *Provider) PortForward(ctx context.Context, client *http.Client, - pfLogger logging.Logger, gateway net.IP, portAllower firewall.PortAllower, - syncState func(port uint16) (pfFilepath string)) { - panic("port forwarding is not supported for VPN Unlimited") -} diff --git a/internal/provider/vpnunlimited/provider.go b/internal/provider/vpnunlimited/provider.go index 7ad0a9ae..f18a41be 100644 --- a/internal/provider/vpnunlimited/provider.go +++ b/internal/provider/vpnunlimited/provider.go @@ -3,17 +3,21 @@ package vpnunlimited import ( "math/rand" + "github.com/qdm12/gluetun/internal/constants" "github.com/qdm12/gluetun/internal/models" + "github.com/qdm12/gluetun/internal/provider/utils" ) type Provider struct { servers []models.VPNUnlimitedServer randSource rand.Source + utils.NoPortForwarder } func New(servers []models.VPNUnlimitedServer, randSource rand.Source) *Provider { return &Provider{ - servers: servers, - randSource: randSource, + servers: servers, + randSource: randSource, + NoPortForwarder: utils.NewNoPortForwarding(constants.VPNUnlimited), } } diff --git a/internal/provider/vyprvpn/portforward.go b/internal/provider/vyprvpn/portforward.go deleted file mode 100644 index 2ba60448..00000000 --- a/internal/provider/vyprvpn/portforward.go +++ /dev/null @@ -1,16 +0,0 @@ -package vyprvpn - -import ( - "context" - "net" - "net/http" - - "github.com/qdm12/gluetun/internal/firewall" - "github.com/qdm12/golibs/logging" -) - -func (v *Vyprvpn) PortForward(ctx context.Context, client *http.Client, - pfLogger logging.Logger, gateway net.IP, portAllower firewall.PortAllower, - syncState func(port uint16) (pfFilepath string)) { - panic("port forwarding is not supported for Vyprvpn") -} diff --git a/internal/provider/vyprvpn/provider.go b/internal/provider/vyprvpn/provider.go index d84a1f1c..528aec00 100644 --- a/internal/provider/vyprvpn/provider.go +++ b/internal/provider/vyprvpn/provider.go @@ -3,17 +3,21 @@ package vyprvpn import ( "math/rand" + "github.com/qdm12/gluetun/internal/constants" "github.com/qdm12/gluetun/internal/models" + "github.com/qdm12/gluetun/internal/provider/utils" ) type Vyprvpn struct { servers []models.VyprvpnServer randSource rand.Source + utils.NoPortForwarder } func New(servers []models.VyprvpnServer, randSource rand.Source) *Vyprvpn { return &Vyprvpn{ - servers: servers, - randSource: randSource, + servers: servers, + randSource: randSource, + NoPortForwarder: utils.NewNoPortForwarding(constants.Vyprvpn), } } diff --git a/internal/provider/windscribe/portforward.go b/internal/provider/windscribe/portforward.go deleted file mode 100644 index 05162104..00000000 --- a/internal/provider/windscribe/portforward.go +++ /dev/null @@ -1,16 +0,0 @@ -package windscribe - -import ( - "context" - "net" - "net/http" - - "github.com/qdm12/gluetun/internal/firewall" - "github.com/qdm12/golibs/logging" -) - -func (w *Windscribe) PortForward(ctx context.Context, client *http.Client, - pfLogger logging.Logger, gateway net.IP, portAllower firewall.PortAllower, - syncState func(port uint16) (pfFilepath string)) { - panic("port forwarding is not supported for Windscribe") -} diff --git a/internal/provider/windscribe/provider.go b/internal/provider/windscribe/provider.go index 6c716701..bf5219cd 100644 --- a/internal/provider/windscribe/provider.go +++ b/internal/provider/windscribe/provider.go @@ -3,17 +3,21 @@ package windscribe import ( "math/rand" + "github.com/qdm12/gluetun/internal/constants" "github.com/qdm12/gluetun/internal/models" + "github.com/qdm12/gluetun/internal/provider/utils" ) type Windscribe struct { servers []models.WindscribeServer randSource rand.Source + utils.NoPortForwarder } func New(servers []models.WindscribeServer, randSource rand.Source) *Windscribe { return &Windscribe{ - servers: servers, - randSource: randSource, + servers: servers, + randSource: randSource, + NoPortForwarder: utils.NewNoPortForwarding(constants.Windscribe), } }