Compare commits
2 Commits
dependabot
...
port-forwa
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1114981914 | ||
|
|
4ef0df04aa |
@@ -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)
|
||||
|
||||
23
internal/provider/mullvad/portforward.go
Normal file
23
internal/provider/mullvad/portforward.go
Normal file
@@ -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
|
||||
}
|
||||
@@ -26,7 +26,7 @@ func (r *Routing) addIPRule(src, dst netip.Prefix, table, priority int) error {
|
||||
}
|
||||
|
||||
if err := r.netLinker.RuleAdd(rule); err != nil {
|
||||
return fmt.Errorf("adding rule %s: %w", rule, err)
|
||||
return fmt.Errorf("adding %s: %w", rule, err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -80,7 +80,7 @@ func Test_Routing_addIPRule(t *testing.T) {
|
||||
ruleToAdd: makeIPRule(makeNetipPrefix(1), makeNetipPrefix(2), 99, 99),
|
||||
err: errDummy,
|
||||
},
|
||||
err: errors.New("adding rule ip rule 99: from 1.1.1.0/24 to 2.2.2.0/24 table 99: dummy error"),
|
||||
err: errors.New("adding ip rule 99: from 1.1.1.0/24 to 2.2.2.0/24 table 99: dummy error"),
|
||||
},
|
||||
"add rule success": {
|
||||
src: makeNetipPrefix(1),
|
||||
|
||||
@@ -118,5 +118,5 @@ func Test_netlink_Wireguard_addRule(t *testing.T) {
|
||||
_ = nilCleanup() // in case it succeeds
|
||||
}
|
||||
require.Error(t, err)
|
||||
assert.EqualError(t, err, "adding rule ip rule 10000: from all to all table 999: file exists")
|
||||
assert.EqualError(t, err, "adding ip rule 10000: from all to all table 999: file exists")
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ func (w *Wireguard) addRule(rulePriority int, firewallMark uint32,
|
||||
rule.Table = int(firewallMark)
|
||||
rule.Family = family
|
||||
if err := w.netlink.RuleAdd(rule); err != nil {
|
||||
return nil, fmt.Errorf("adding rule %s: %w", rule, err)
|
||||
return nil, fmt.Errorf("adding %s: %w", rule, err)
|
||||
}
|
||||
|
||||
cleanup = func() error {
|
||||
|
||||
@@ -45,7 +45,7 @@ func Test_Wireguard_addRule(t *testing.T) {
|
||||
Family: family,
|
||||
},
|
||||
ruleAddErr: errDummy,
|
||||
err: errors.New("adding rule ip rule 987: from all to all table 456: dummy"),
|
||||
err: errors.New("adding ip rule 987: from all to all table 456: dummy"),
|
||||
},
|
||||
"rule delete error": {
|
||||
expectedRule: netlink.Rule{
|
||||
|
||||
Reference in New Issue
Block a user