Compare commits
2 Commits
v3.40.2
...
port-forwa
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1114981914 | ||
|
|
4ef0df04aa |
@@ -54,6 +54,7 @@ func (p PortForwarding) Validate(vpnProvider string) (err error) {
|
|||||||
providers.PrivateInternetAccess,
|
providers.PrivateInternetAccess,
|
||||||
providers.Privatevpn,
|
providers.Privatevpn,
|
||||||
providers.Protonvpn,
|
providers.Protonvpn,
|
||||||
|
providers.Mullvad,
|
||||||
}
|
}
|
||||||
if err = validate.IsOneOf(providerSelected, validProviders...); err != nil {
|
if err = validate.IsOneOf(providerSelected, validProviders...); err != nil {
|
||||||
return fmt.Errorf("%w: %w", ErrPortForwardingEnabled, err)
|
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 {
|
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
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ func Test_Routing_addIPRule(t *testing.T) {
|
|||||||
ruleToAdd: makeIPRule(makeNetipPrefix(1), makeNetipPrefix(2), 99, 99),
|
ruleToAdd: makeIPRule(makeNetipPrefix(1), makeNetipPrefix(2), 99, 99),
|
||||||
err: errDummy,
|
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": {
|
"add rule success": {
|
||||||
src: makeNetipPrefix(1),
|
src: makeNetipPrefix(1),
|
||||||
|
|||||||
@@ -118,5 +118,5 @@ func Test_netlink_Wireguard_addRule(t *testing.T) {
|
|||||||
_ = nilCleanup() // in case it succeeds
|
_ = nilCleanup() // in case it succeeds
|
||||||
}
|
}
|
||||||
require.Error(t, err)
|
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.Table = int(firewallMark)
|
||||||
rule.Family = family
|
rule.Family = family
|
||||||
if err := w.netlink.RuleAdd(rule); err != nil {
|
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 {
|
cleanup = func() error {
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ func Test_Wireguard_addRule(t *testing.T) {
|
|||||||
Family: family,
|
Family: family,
|
||||||
},
|
},
|
||||||
ruleAddErr: errDummy,
|
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": {
|
"rule delete error": {
|
||||||
expectedRule: netlink.Rule{
|
expectedRule: netlink.Rule{
|
||||||
|
|||||||
Reference in New Issue
Block a user