@@ -294,7 +294,7 @@ func (ss *ServerSelection) overrideWith(other ServerSelection) {
294
294
ss .Wireguard .overrideWith (other .Wireguard )
295
295
}
296
296
297
- func (ss * ServerSelection ) setDefaults (vpnProvider string ) {
297
+ func (ss * ServerSelection ) setDefaults (vpnProvider string , portForwardingEnabled bool ) {
298
298
ss .VPN = gosettings .DefaultComparable (ss .VPN , vpn .OpenVPN )
299
299
ss .TargetIP = gosettings .DefaultValidator (ss .TargetIP , netip .IPv4Unspecified ())
300
300
ss .OwnedOnly = gosettings .DefaultPointer (ss .OwnedOnly , false )
@@ -304,7 +304,12 @@ func (ss *ServerSelection) setDefaults(vpnProvider string) {
304
304
ss .SecureCoreOnly = gosettings .DefaultPointer (ss .SecureCoreOnly , false )
305
305
ss .TorOnly = gosettings .DefaultPointer (ss .TorOnly , false )
306
306
ss .MultiHopOnly = gosettings .DefaultPointer (ss .MultiHopOnly , false )
307
- ss .PortForwardOnly = gosettings .DefaultPointer (ss .PortForwardOnly , false )
307
+ defaultPortForwardOnly := false
308
+ if portForwardingEnabled && helpers .IsOneOf (vpnProvider ,
309
+ providers .PrivateInternetAccess , providers .Protonvpn ) {
310
+ defaultPortForwardOnly = true
311
+ }
312
+ ss .PortForwardOnly = gosettings .DefaultPointer (ss .PortForwardOnly , defaultPortForwardOnly )
308
313
ss .OpenVPN .setDefaults (vpnProvider )
309
314
ss .Wireguard .setDefaults ()
310
315
}
@@ -399,7 +404,8 @@ func (ss ServerSelection) toLinesNode() (node *gotree.Node) {
399
404
// WithDefaults is a shorthand using setDefaults.
400
405
// It's used in unit tests in other packages.
401
406
func (ss ServerSelection ) WithDefaults (provider string ) ServerSelection {
402
- ss .setDefaults (provider )
407
+ const portForwardingEnabled = false
408
+ ss .setDefaults (provider , portForwardingEnabled )
403
409
return ss
404
410
}
405
411
0 commit comments