Maint: WIREGUARD_PORT to WIREGUARD_ENDPOINT_PORT

This commit is contained in:
Quentin McGaw (desktop)
2021-09-13 20:06:47 +00:00
parent 8645d978ba
commit 2cf7f7b268
6 changed files with 30 additions and 15 deletions

View File

@@ -91,7 +91,7 @@ ENV VPNSP=pia \
WIREGUARD_PUBLIC_KEY= \ WIREGUARD_PUBLIC_KEY= \
WIREGUARD_ADDRESS= \ WIREGUARD_ADDRESS= \
WIREGUARD_ENDPOINT_IP= \ WIREGUARD_ENDPOINT_IP= \
WIREGUARD_PORT= \ WIREGUARD_ENDPOINT_PORT= \
WIREGUARD_INTERFACE=wg0 \ WIREGUARD_INTERFACE=wg0 \
# VPN server filtering # VPN server filtering
REGION= \ REGION= \

View File

@@ -21,7 +21,7 @@ func (settings *Provider) readCustom(r reader, vpnType string) (err error) {
case constants.OpenVPN: case constants.OpenVPN:
return settings.ServerSelection.OpenVPN.readCustom(r) return settings.ServerSelection.OpenVPN.readCustom(r)
case constants.Wireguard: case constants.Wireguard:
return settings.ServerSelection.Wireguard.readCustom(r.env) return settings.ServerSelection.Wireguard.readCustom(r)
default: default:
return fmt.Errorf("%w: for VPN type %s", errCustomNotSupported, vpnType) return fmt.Errorf("%w: for VPN type %s", errCustomNotSupported, vpnType)
} }
@@ -56,21 +56,22 @@ func (settings *OpenVPN) readCustom(r reader) (err error) {
return nil return nil
} }
func (settings *WireguardSelection) readCustom(env params.Interface) (err error) { func (settings *WireguardSelection) readCustom(r reader) (err error) {
settings.PublicKey, err = env.Get("WIREGUARD_PUBLIC_KEY", settings.PublicKey, err = r.env.Get("WIREGUARD_PUBLIC_KEY",
params.CaseSensitiveValue(), params.Compulsory()) params.CaseSensitiveValue(), params.Compulsory())
if err != nil { if err != nil {
return fmt.Errorf("environment variable WIREGUARD_PUBLIC_KEY: %w", err) return fmt.Errorf("environment variable WIREGUARD_PUBLIC_KEY: %w", err)
} }
settings.EndpointIP, err = readWireguardEndpointIP(env) settings.EndpointIP, err = readWireguardEndpointIP(r.env)
if err != nil { if err != nil {
return err return err
} }
settings.EndpointPort, err = env.Port("WIREGUARD_PORT", params.Compulsory()) settings.EndpointPort, err = r.env.Port("WIREGUARD_ENDPOINT_PORT", params.Compulsory(),
params.RetroKeys([]string{"WIREGUARD_PORT"}, r.onRetroActive))
if err != nil { if err != nil {
return fmt.Errorf("environment variable WIREGUARD_PORT: %w", err) return fmt.Errorf("environment variable WIREGUARD_ENDPOINT_PORT: %w", err)
} }
return nil return nil

View File

@@ -48,6 +48,7 @@ func Test_Provider_readIvpn(t *testing.T) { //nolint:gocognit
protocol singleStringCall protocol singleStringCall
ovpnPort portCall ovpnPort portCall
wgPort portCall wgPort portCall
wgOldPort portCall
settings Provider settings Provider
err error err error
}{ }{
@@ -133,7 +134,7 @@ func Test_Provider_readIvpn(t *testing.T) { //nolint:gocognit
settings: Provider{ settings: Provider{
Name: constants.Ivpn, Name: constants.Ivpn,
}, },
err: errors.New("environment variable WIREGUARD_PORT: dummy test error"), err: errors.New("environment variable WIREGUARD_ENDPOINT_PORT: dummy test error"),
}, },
"default settings": { "default settings": {
targetIP: singleStringCall{call: true}, targetIP: singleStringCall{call: true},
@@ -144,6 +145,7 @@ func Test_Provider_readIvpn(t *testing.T) { //nolint:gocognit
protocol: singleStringCall{call: true}, protocol: singleStringCall{call: true},
ovpnPort: portCall{getCall: true, getValue: "0"}, ovpnPort: portCall{getCall: true, getValue: "0"},
wgPort: portCall{getCall: true, getValue: "0"}, wgPort: portCall{getCall: true, getValue: "0"},
wgOldPort: portCall{getCall: true, getValue: "0"},
settings: Provider{ settings: Provider{
Name: constants.Ivpn, Name: constants.Ivpn,
}, },
@@ -224,13 +226,21 @@ func Test_Provider_readIvpn(t *testing.T) { //nolint:gocognit
Return(testCase.ovpnPort.portValue, testCase.ovpnPort.portErr) Return(testCase.ovpnPort.portValue, testCase.ovpnPort.portErr)
} }
if testCase.wgPort.getCall { if testCase.wgPort.getCall {
env.EXPECT().Get("WIREGUARD_PORT", gomock.Any()). env.EXPECT().Get("WIREGUARD_ENDPOINT_PORT", gomock.Any()).
Return(testCase.wgPort.getValue, testCase.wgPort.getErr) Return(testCase.wgPort.getValue, testCase.wgPort.getErr)
} }
if testCase.wgPort.portCall { if testCase.wgPort.portCall {
env.EXPECT().Port("WIREGUARD_PORT"). env.EXPECT().Port("WIREGUARD_ENDPOINT_PORT").
Return(testCase.wgPort.portValue, testCase.wgPort.portErr) Return(testCase.wgPort.portValue, testCase.wgPort.portErr)
} }
if testCase.wgOldPort.getCall {
env.EXPECT().Get("WIREGUARD_PORT", gomock.Any()).
Return(testCase.wgOldPort.getValue, testCase.wgOldPort.getErr)
}
if testCase.wgOldPort.portCall {
env.EXPECT().Port("WIREGUARD_PORT").
Return(testCase.wgOldPort.portValue, testCase.wgOldPort.portErr)
}
r := reader{ r := reader{
servers: allServers, servers: allServers,

View File

@@ -180,11 +180,15 @@ func readOpenVPNCustomPort(env params.Interface, tcp bool,
// note: set allowed to an empty slice to allow all valid ports // note: set allowed to an empty slice to allow all valid ports
func readWireguardCustomPort(env params.Interface, allowed []uint16) (port uint16, err error) { func readWireguardCustomPort(env params.Interface, allowed []uint16) (port uint16, err error) {
port, err = readPortOrZero(env, "WIREGUARD_PORT") port, err = readPortOrZero(env, "WIREGUARD_ENDPOINT_PORT")
if err != nil { if err != nil {
return 0, fmt.Errorf("environment variable WIREGUARD_PORT: %w", err) return 0, fmt.Errorf("environment variable WIREGUARD_ENDPOINT_PORT: %w", err)
} else if port == 0 { } else if port == 0 {
return 0, nil port, _ = readPortOrZero(env, "WIREGUARD_PORT")
if err == nil {
return port, nil // 0 or WIREGUARD_PORT value
}
return 0, nil // default 0
} }
if len(allowed) == 0 { if len(allowed) == 0 {

View File

@@ -53,7 +53,7 @@ func getWireguardConnection(selection configuration.ServerSelection) (
} }
} }
// Port found is overridden by custom port set with `PORT` or `WIREGUARD_PORT`. // Port found is overridden by custom port set with `PORT` or `WIREGUARD_ENDPOINT_PORT`.
func getPort(foundPort uint16, selection configuration.ServerSelection) (port uint16) { func getPort(foundPort uint16, selection configuration.ServerSelection) (port uint16) {
return utils.GetPort(selection, foundPort, foundPort, foundPort) return utils.GetPort(selection, foundPort, foundPort, foundPort)
} }

View File

@@ -41,7 +41,7 @@
- `PROTOCOL` to `OPENVPN_PROTOCOL` - `PROTOCOL` to `OPENVPN_PROTOCOL`
- `PORT_FORWARDING` - `PORT_FORWARDING`
- Change servers filtering environment variables to plural - Change servers filtering environment variables to plural
- `WIREGUARD_PORT` to `WIREGUARD_ENDPOINT_PORT` - Remove `WIREGUARD_PORT`
- `WIREGUARD_ADDRESS` to `WIREGUARD_ADDRESSES` - `WIREGUARD_ADDRESS` to `WIREGUARD_ADDRESSES`
- Only use `custom` VPNSP for custom OpenVPN configurations - Only use `custom` VPNSP for custom OpenVPN configurations
- `VPNSP` compulsory - `VPNSP` compulsory