Maint: common GetPort for OpenVPN+Wireguard providers
This commit is contained in:
@@ -2,7 +2,6 @@ package ivpn
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/qdm12/gluetun/internal/configuration"
|
"github.com/qdm12/gluetun/internal/configuration"
|
||||||
"github.com/qdm12/gluetun/internal/constants"
|
|
||||||
"github.com/qdm12/gluetun/internal/models"
|
"github.com/qdm12/gluetun/internal/models"
|
||||||
"github.com/qdm12/gluetun/internal/provider/utils"
|
"github.com/qdm12/gluetun/internal/provider/utils"
|
||||||
)
|
)
|
||||||
@@ -40,23 +39,11 @@ func (i *Ivpn) GetConnection(selection configuration.ServerSelection) (
|
|||||||
}
|
}
|
||||||
|
|
||||||
func getPort(selection configuration.ServerSelection) (port uint16) {
|
func getPort(selection configuration.ServerSelection) (port uint16) {
|
||||||
switch selection.VPN {
|
const (
|
||||||
case constants.Wireguard:
|
defaultOpenVPNTCP = 443
|
||||||
customPort := selection.Wireguard.CustomPort
|
defaultOpenVPNUDP = 1194
|
||||||
if customPort > 0 {
|
defaultWireguard = 58237
|
||||||
return customPort
|
)
|
||||||
}
|
return utils.GetPort(selection, defaultOpenVPNTCP,
|
||||||
const defaultPort = 58237
|
defaultOpenVPNUDP, defaultWireguard)
|
||||||
return defaultPort
|
|
||||||
default: // OpenVPN
|
|
||||||
customPort := selection.OpenVPN.CustomPort
|
|
||||||
if customPort > 0 {
|
|
||||||
return customPort
|
|
||||||
}
|
|
||||||
port = 1194
|
|
||||||
if selection.OpenVPN.TCP {
|
|
||||||
port = 443
|
|
||||||
}
|
|
||||||
return port
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,66 +95,3 @@ func Test_Ivpn_GetConnection(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_getPort(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
testCases := map[string]struct {
|
|
||||||
selection configuration.ServerSelection
|
|
||||||
port uint16
|
|
||||||
}{
|
|
||||||
"default": {
|
|
||||||
port: 1194,
|
|
||||||
},
|
|
||||||
"OpenVPN UDP": {
|
|
||||||
selection: configuration.ServerSelection{
|
|
||||||
VPN: constants.OpenVPN,
|
|
||||||
},
|
|
||||||
port: 1194,
|
|
||||||
},
|
|
||||||
"OpenVPN TCP": {
|
|
||||||
selection: configuration.ServerSelection{
|
|
||||||
VPN: constants.OpenVPN,
|
|
||||||
OpenVPN: configuration.OpenVPNSelection{
|
|
||||||
TCP: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
port: 443,
|
|
||||||
},
|
|
||||||
"OpenVPN custom port": {
|
|
||||||
selection: configuration.ServerSelection{
|
|
||||||
VPN: constants.OpenVPN,
|
|
||||||
OpenVPN: configuration.OpenVPNSelection{
|
|
||||||
CustomPort: 1234,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
port: 1234,
|
|
||||||
},
|
|
||||||
"Wireguard": {
|
|
||||||
selection: configuration.ServerSelection{
|
|
||||||
VPN: constants.Wireguard,
|
|
||||||
},
|
|
||||||
port: 58237,
|
|
||||||
},
|
|
||||||
"Wireguard custom port": {
|
|
||||||
selection: configuration.ServerSelection{
|
|
||||||
VPN: constants.Wireguard,
|
|
||||||
Wireguard: configuration.WireguardSelection{
|
|
||||||
CustomPort: 1234,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
port: 1234,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
for name, testCase := range testCases {
|
|
||||||
testCase := testCase
|
|
||||||
t.Run(name, func(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
port := getPort(testCase.selection)
|
|
||||||
|
|
||||||
assert.Equal(t, testCase.port, port)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package mullvad
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/qdm12/gluetun/internal/configuration"
|
"github.com/qdm12/gluetun/internal/configuration"
|
||||||
"github.com/qdm12/gluetun/internal/constants"
|
|
||||||
"github.com/qdm12/gluetun/internal/models"
|
"github.com/qdm12/gluetun/internal/models"
|
||||||
"github.com/qdm12/gluetun/internal/provider/utils"
|
"github.com/qdm12/gluetun/internal/provider/utils"
|
||||||
)
|
)
|
||||||
@@ -39,23 +38,11 @@ func (m *Mullvad) GetConnection(selection configuration.ServerSelection) (
|
|||||||
}
|
}
|
||||||
|
|
||||||
func getPort(selection configuration.ServerSelection) (port uint16) {
|
func getPort(selection configuration.ServerSelection) (port uint16) {
|
||||||
switch selection.VPN {
|
const (
|
||||||
case constants.Wireguard:
|
defaultOpenVPNTCP = 443
|
||||||
customPort := selection.Wireguard.CustomPort
|
defaultOpenVPNUDP = 1194
|
||||||
if customPort > 0 {
|
defaultWireguard = 51820
|
||||||
return customPort
|
)
|
||||||
}
|
return utils.GetPort(selection, defaultOpenVPNTCP,
|
||||||
const defaultPort = 51820
|
defaultOpenVPNUDP, defaultWireguard)
|
||||||
return defaultPort
|
|
||||||
default: // OpenVPN
|
|
||||||
customPort := selection.OpenVPN.CustomPort
|
|
||||||
if customPort > 0 {
|
|
||||||
return customPort
|
|
||||||
}
|
|
||||||
port = 1194
|
|
||||||
if selection.OpenVPN.TCP {
|
|
||||||
port = 443
|
|
||||||
}
|
|
||||||
return port
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,66 +94,3 @@ func Test_Mullvad_GetConnection(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_getPort(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
testCases := map[string]struct {
|
|
||||||
selection configuration.ServerSelection
|
|
||||||
port uint16
|
|
||||||
}{
|
|
||||||
"default": {
|
|
||||||
port: 1194,
|
|
||||||
},
|
|
||||||
"OpenVPN UDP": {
|
|
||||||
selection: configuration.ServerSelection{
|
|
||||||
VPN: constants.OpenVPN,
|
|
||||||
},
|
|
||||||
port: 1194,
|
|
||||||
},
|
|
||||||
"OpenVPN TCP": {
|
|
||||||
selection: configuration.ServerSelection{
|
|
||||||
VPN: constants.OpenVPN,
|
|
||||||
OpenVPN: configuration.OpenVPNSelection{
|
|
||||||
TCP: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
port: 443,
|
|
||||||
},
|
|
||||||
"OpenVPN custom port": {
|
|
||||||
selection: configuration.ServerSelection{
|
|
||||||
VPN: constants.OpenVPN,
|
|
||||||
OpenVPN: configuration.OpenVPNSelection{
|
|
||||||
CustomPort: 1234,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
port: 1234,
|
|
||||||
},
|
|
||||||
"Wireguard": {
|
|
||||||
selection: configuration.ServerSelection{
|
|
||||||
VPN: constants.Wireguard,
|
|
||||||
},
|
|
||||||
port: 51820,
|
|
||||||
},
|
|
||||||
"Wireguard custom port": {
|
|
||||||
selection: configuration.ServerSelection{
|
|
||||||
VPN: constants.Wireguard,
|
|
||||||
Wireguard: configuration.WireguardSelection{
|
|
||||||
CustomPort: 1234,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
port: 1234,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
for name, testCase := range testCases {
|
|
||||||
testCase := testCase
|
|
||||||
t.Run(name, func(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
port := getPort(testCase.selection)
|
|
||||||
|
|
||||||
assert.Equal(t, testCase.port, port)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
27
internal/provider/utils/port.go
Normal file
27
internal/provider/utils/port.go
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
package utils
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/qdm12/gluetun/internal/configuration"
|
||||||
|
"github.com/qdm12/gluetun/internal/constants"
|
||||||
|
)
|
||||||
|
|
||||||
|
func GetPort(selection configuration.ServerSelection,
|
||||||
|
defaultOpenVPNTCP, defaultOpenVPNUDP, defaultWireguard uint16) (port uint16) {
|
||||||
|
switch selection.VPN {
|
||||||
|
case constants.Wireguard:
|
||||||
|
customPort := selection.Wireguard.CustomPort
|
||||||
|
if customPort > 0 {
|
||||||
|
return customPort
|
||||||
|
}
|
||||||
|
return defaultWireguard
|
||||||
|
default: // OpenVPN
|
||||||
|
customPort := selection.OpenVPN.CustomPort
|
||||||
|
if customPort > 0 {
|
||||||
|
return customPort
|
||||||
|
}
|
||||||
|
if selection.OpenVPN.TCP {
|
||||||
|
return defaultOpenVPNTCP
|
||||||
|
}
|
||||||
|
return defaultOpenVPNUDP
|
||||||
|
}
|
||||||
|
}
|
||||||
79
internal/provider/utils/port_test.go
Normal file
79
internal/provider/utils/port_test.go
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
package utils
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/qdm12/gluetun/internal/configuration"
|
||||||
|
"github.com/qdm12/gluetun/internal/constants"
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Test_GetPort(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
const (
|
||||||
|
defaultOpenVPNTCP = 443
|
||||||
|
defaultOpenVPNUDP = 1194
|
||||||
|
defaultWireguard = 51820
|
||||||
|
)
|
||||||
|
|
||||||
|
testCases := map[string]struct {
|
||||||
|
selection configuration.ServerSelection
|
||||||
|
port uint16
|
||||||
|
}{
|
||||||
|
"default": {
|
||||||
|
port: defaultOpenVPNUDP,
|
||||||
|
},
|
||||||
|
"OpenVPN UDP": {
|
||||||
|
selection: configuration.ServerSelection{
|
||||||
|
VPN: constants.OpenVPN,
|
||||||
|
},
|
||||||
|
port: defaultOpenVPNUDP,
|
||||||
|
},
|
||||||
|
"OpenVPN TCP": {
|
||||||
|
selection: configuration.ServerSelection{
|
||||||
|
VPN: constants.OpenVPN,
|
||||||
|
OpenVPN: configuration.OpenVPNSelection{
|
||||||
|
TCP: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
port: defaultOpenVPNTCP,
|
||||||
|
},
|
||||||
|
"OpenVPN custom port": {
|
||||||
|
selection: configuration.ServerSelection{
|
||||||
|
VPN: constants.OpenVPN,
|
||||||
|
OpenVPN: configuration.OpenVPNSelection{
|
||||||
|
CustomPort: 1234,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
port: 1234,
|
||||||
|
},
|
||||||
|
"Wireguard": {
|
||||||
|
selection: configuration.ServerSelection{
|
||||||
|
VPN: constants.Wireguard,
|
||||||
|
},
|
||||||
|
port: defaultWireguard,
|
||||||
|
},
|
||||||
|
"Wireguard custom port": {
|
||||||
|
selection: configuration.ServerSelection{
|
||||||
|
VPN: constants.Wireguard,
|
||||||
|
Wireguard: configuration.WireguardSelection{
|
||||||
|
CustomPort: 1234,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
port: 1234,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for name, testCase := range testCases {
|
||||||
|
testCase := testCase
|
||||||
|
t.Run(name, func(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
port := GetPort(testCase.selection,
|
||||||
|
defaultOpenVPNTCP, defaultOpenVPNUDP, defaultWireguard)
|
||||||
|
|
||||||
|
assert.Equal(t, testCase.port, port)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,7 +2,6 @@ package windscribe
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/qdm12/gluetun/internal/configuration"
|
"github.com/qdm12/gluetun/internal/configuration"
|
||||||
"github.com/qdm12/gluetun/internal/constants"
|
|
||||||
"github.com/qdm12/gluetun/internal/models"
|
"github.com/qdm12/gluetun/internal/models"
|
||||||
"github.com/qdm12/gluetun/internal/provider/utils"
|
"github.com/qdm12/gluetun/internal/provider/utils"
|
||||||
)
|
)
|
||||||
@@ -40,23 +39,11 @@ func (w *Windscribe) GetConnection(selection configuration.ServerSelection) (
|
|||||||
}
|
}
|
||||||
|
|
||||||
func getPort(selection configuration.ServerSelection) (port uint16) {
|
func getPort(selection configuration.ServerSelection) (port uint16) {
|
||||||
switch selection.VPN {
|
const (
|
||||||
case constants.Wireguard:
|
defaultOpenVPNTCP = 443
|
||||||
customPort := selection.Wireguard.CustomPort
|
defaultOpenVPNUDP = 1194
|
||||||
if customPort > 0 {
|
defaultWireguard = 1194
|
||||||
return customPort
|
)
|
||||||
}
|
return utils.GetPort(selection, defaultOpenVPNTCP,
|
||||||
const defaultPort = 1194
|
defaultOpenVPNUDP, defaultWireguard)
|
||||||
return defaultPort
|
|
||||||
default: // OpenVPN
|
|
||||||
customPort := selection.OpenVPN.CustomPort
|
|
||||||
if customPort > 0 {
|
|
||||||
return customPort
|
|
||||||
}
|
|
||||||
port = 1194
|
|
||||||
if selection.OpenVPN.TCP {
|
|
||||||
port = 443
|
|
||||||
}
|
|
||||||
return port
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,66 +94,3 @@ func Test_Windscribe_GetConnection(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_getPort(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
testCases := map[string]struct {
|
|
||||||
selection configuration.ServerSelection
|
|
||||||
port uint16
|
|
||||||
}{
|
|
||||||
"default": {
|
|
||||||
port: 1194,
|
|
||||||
},
|
|
||||||
"OpenVPN UDP": {
|
|
||||||
selection: configuration.ServerSelection{
|
|
||||||
VPN: constants.OpenVPN,
|
|
||||||
},
|
|
||||||
port: 1194,
|
|
||||||
},
|
|
||||||
"OpenVPN TCP": {
|
|
||||||
selection: configuration.ServerSelection{
|
|
||||||
VPN: constants.OpenVPN,
|
|
||||||
OpenVPN: configuration.OpenVPNSelection{
|
|
||||||
TCP: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
port: 443,
|
|
||||||
},
|
|
||||||
"OpenVPN custom port": {
|
|
||||||
selection: configuration.ServerSelection{
|
|
||||||
VPN: constants.OpenVPN,
|
|
||||||
OpenVPN: configuration.OpenVPNSelection{
|
|
||||||
CustomPort: 1234,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
port: 1234,
|
|
||||||
},
|
|
||||||
"Wireguard": {
|
|
||||||
selection: configuration.ServerSelection{
|
|
||||||
VPN: constants.Wireguard,
|
|
||||||
},
|
|
||||||
port: 1194,
|
|
||||||
},
|
|
||||||
"Wireguard custom port": {
|
|
||||||
selection: configuration.ServerSelection{
|
|
||||||
VPN: constants.Wireguard,
|
|
||||||
Wireguard: configuration.WireguardSelection{
|
|
||||||
CustomPort: 1234,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
port: 1234,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
for name, testCase := range testCases {
|
|
||||||
testCase := testCase
|
|
||||||
t.Run(name, func(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
port := getPort(testCase.selection)
|
|
||||||
|
|
||||||
assert.Equal(t, testCase.port, port)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user