Maint: migrate PROTOCOL to OPENVPN_PROTOCOL
This commit is contained in:
@@ -69,7 +69,7 @@ LABEL \
|
|||||||
ENV VPNSP=pia \
|
ENV VPNSP=pia \
|
||||||
VPN_TYPE=openvpn \
|
VPN_TYPE=openvpn \
|
||||||
# OpenVPN
|
# OpenVPN
|
||||||
PROTOCOL=udp \
|
OPENVPN_PROTOCOL=udp \
|
||||||
OPENVPN_USER= \
|
OPENVPN_USER= \
|
||||||
OPENVPN_PASSWORD= \
|
OPENVPN_PASSWORD= \
|
||||||
OPENVPN_USER_SECRETFILE=/run/secrets/openvpn_user \
|
OPENVPN_USER_SECRETFILE=/run/secrets/openvpn_user \
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ func (settings *Provider) readCyberghost(r reader) (err error) {
|
|||||||
return fmt.Errorf("environment variable SERVER_HOSTNAME: %w", err)
|
return fmt.Errorf("environment variable SERVER_HOSTNAME: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return settings.ServerSelection.OpenVPN.readProtocolAndPort(r.env)
|
return settings.ServerSelection.OpenVPN.readProtocolAndPort(r)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (settings *OpenVPN) readCyberghost(r reader) (err error) {
|
func (settings *OpenVPN) readCyberghost(r reader) (err error) {
|
||||||
|
|||||||
@@ -26,5 +26,5 @@ func (settings *Provider) readFastestvpn(r reader) (err error) {
|
|||||||
return fmt.Errorf("environment variable COUNTRY: %w", err)
|
return fmt.Errorf("environment variable COUNTRY: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return settings.ServerSelection.OpenVPN.readProtocolOnly(r.env)
|
return settings.ServerSelection.OpenVPN.readProtocolOnly(r)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,5 +36,5 @@ func (settings *Provider) readHideMyAss(r reader) (err error) {
|
|||||||
return fmt.Errorf("environment variable SERVER_HOSTNAME: %w", err)
|
return fmt.Errorf("environment variable SERVER_HOSTNAME: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return settings.ServerSelection.OpenVPN.readProtocolAndPort(r.env)
|
return settings.ServerSelection.OpenVPN.readProtocolAndPort(r)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,5 +31,5 @@ func (settings *Provider) readIpvanish(r reader) (err error) {
|
|||||||
return fmt.Errorf("environment variable SERVER_HOSTNAME: %w", err)
|
return fmt.Errorf("environment variable SERVER_HOSTNAME: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return settings.ServerSelection.OpenVPN.readProtocolOnly(r.env)
|
return settings.ServerSelection.OpenVPN.readProtocolOnly(r)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ func Test_Provider_readIpvanish(t *testing.T) {
|
|||||||
settings: Provider{
|
settings: Provider{
|
||||||
Name: constants.Ipvanish,
|
Name: constants.Ipvanish,
|
||||||
},
|
},
|
||||||
err: errors.New("environment variable PROTOCOL: dummy test error"),
|
err: errors.New("environment variable OPENVPN_PROTOCOL: dummy test error"),
|
||||||
},
|
},
|
||||||
"default settings": {
|
"default settings": {
|
||||||
targetIP: singleStringCall{call: true},
|
targetIP: singleStringCall{call: true},
|
||||||
@@ -145,7 +145,7 @@ func Test_Provider_readIpvanish(t *testing.T) {
|
|||||||
Return(testCase.hostnames.values, testCase.hostnames.err)
|
Return(testCase.hostnames.values, testCase.hostnames.err)
|
||||||
}
|
}
|
||||||
if testCase.protocol.call {
|
if testCase.protocol.call {
|
||||||
env.EXPECT().Inside("PROTOCOL", []string{constants.TCP, constants.UDP}, gomock.Any()).
|
env.EXPECT().Inside("OPENVPN_PROTOCOL", []string{constants.TCP, constants.UDP}, gomock.Any()).
|
||||||
Return(testCase.protocol.value, testCase.protocol.err)
|
Return(testCase.protocol.value, testCase.protocol.err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ func (settings *Provider) readIvpn(r reader) (err error) {
|
|||||||
return fmt.Errorf("environment variable SERVER_HOSTNAME: %w", err)
|
return fmt.Errorf("environment variable SERVER_HOSTNAME: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = settings.ServerSelection.OpenVPN.readIVPN(r.env)
|
err = settings.ServerSelection.OpenVPN.readIVPN(r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -44,13 +44,13 @@ func (settings *Provider) readIvpn(r reader) (err error) {
|
|||||||
return settings.ServerSelection.Wireguard.readIVPN(r.env)
|
return settings.ServerSelection.Wireguard.readIVPN(r.env)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (settings *OpenVPNSelection) readIVPN(env params.Interface) (err error) {
|
func (settings *OpenVPNSelection) readIVPN(r reader) (err error) {
|
||||||
settings.TCP, err = readProtocol(env)
|
settings.TCP, err = readOpenVPNProtocol(r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
settings.CustomPort, err = readOpenVPNCustomPort(env, settings.TCP,
|
settings.CustomPort, err = readOpenVPNCustomPort(r.env, settings.TCP,
|
||||||
[]uint16{80, 443, 1443}, []uint16{53, 1194, 2049, 2050})
|
[]uint16{80, 443, 1443}, []uint16{53, 1194, 2049, 2050})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
@@ -107,7 +107,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 PROTOCOL: dummy test error"),
|
err: errors.New("environment variable OPENVPN_PROTOCOL: dummy test error"),
|
||||||
},
|
},
|
||||||
"openvpn custom port error": {
|
"openvpn custom port error": {
|
||||||
targetIP: singleStringCall{call: true},
|
targetIP: singleStringCall{call: true},
|
||||||
@@ -214,7 +214,7 @@ func Test_Provider_readIvpn(t *testing.T) { //nolint:gocognit
|
|||||||
Return(testCase.hostnames.values, testCase.hostnames.err)
|
Return(testCase.hostnames.values, testCase.hostnames.err)
|
||||||
}
|
}
|
||||||
if testCase.protocol.call {
|
if testCase.protocol.call {
|
||||||
env.EXPECT().Inside("PROTOCOL", []string{constants.TCP, constants.UDP}, gomock.Any()).
|
env.EXPECT().Inside("OPENVPN_PROTOCOL", []string{constants.TCP, constants.UDP}, gomock.Any()).
|
||||||
Return(testCase.protocol.value, testCase.protocol.err)
|
Return(testCase.protocol.value, testCase.protocol.err)
|
||||||
}
|
}
|
||||||
if testCase.ovpnPort.getCall {
|
if testCase.ovpnPort.getCall {
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ func (settings *Provider) readMullvad(r reader) (err error) {
|
|||||||
return fmt.Errorf("environment variable OWNED: %w", err)
|
return fmt.Errorf("environment variable OWNED: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = settings.ServerSelection.OpenVPN.readMullvad(r.env)
|
err = settings.ServerSelection.OpenVPN.readMullvad(r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -49,13 +49,13 @@ func (settings *Provider) readMullvad(r reader) (err error) {
|
|||||||
return settings.ServerSelection.Wireguard.readMullvad(r.env)
|
return settings.ServerSelection.Wireguard.readMullvad(r.env)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (settings *OpenVPNSelection) readMullvad(env params.Interface) (err error) {
|
func (settings *OpenVPNSelection) readMullvad(r reader) (err error) {
|
||||||
settings.TCP, err = readProtocol(env)
|
settings.TCP, err = readOpenVPNProtocol(r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
settings.CustomPort, err = readOpenVPNCustomPort(env, settings.TCP,
|
settings.CustomPort, err = readOpenVPNCustomPort(r.env, settings.TCP,
|
||||||
[]uint16{80, 443, 1401}, []uint16{53, 1194, 1195, 1196, 1197, 1300, 1301, 1302, 1303, 1400})
|
[]uint16{80, 443, 1401}, []uint16{53, 1194, 1195, 1196, 1197, 1300, 1301, 1302, 1303, 1400})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ func (settings *Provider) readNordvpn(r reader) (err error) {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
return settings.ServerSelection.OpenVPN.readProtocolOnly(r.env)
|
return settings.ServerSelection.OpenVPN.readProtocolOnly(r)
|
||||||
}
|
}
|
||||||
|
|
||||||
func readNordVPNServerNumbers(env params.Interface) (numbers []uint16, err error) {
|
func readNordVPNServerNumbers(env params.Interface) (numbers []uint16, err error) {
|
||||||
|
|||||||
@@ -176,10 +176,11 @@ func (settings *OpenVPN) read(r reader, serviceProvider string) (err error) {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func readProtocol(env params.Interface) (tcp bool, err error) {
|
func readOpenVPNProtocol(r reader) (tcp bool, err error) {
|
||||||
protocol, err := env.Inside("PROTOCOL", []string{constants.TCP, constants.UDP}, params.Default(constants.UDP))
|
protocol, err := r.env.Inside("OPENVPN_PROTOCOL", []string{constants.TCP, constants.UDP},
|
||||||
|
params.Default(constants.UDP), params.RetroKeys([]string{"PROTOCOL"}, r.onRetroActive))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, fmt.Errorf("environment variable PROTOCOL: %w", err)
|
return false, fmt.Errorf("environment variable OPENVPN_PROTOCOL: %w", err)
|
||||||
}
|
}
|
||||||
return protocol == constants.TCP, nil
|
return protocol == constants.TCP, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,5 +31,5 @@ func (settings *Provider) readPrivatevpn(r reader) (err error) {
|
|||||||
return fmt.Errorf("environment variable SERVER_HOSTNAME: %w", err)
|
return fmt.Errorf("environment variable SERVER_HOSTNAME: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return settings.ServerSelection.OpenVPN.readProtocolAndPort(r.env)
|
return settings.ServerSelection.OpenVPN.readProtocolAndPort(r)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,5 +47,5 @@ func (settings *Provider) readProtonvpn(r reader) (err error) {
|
|||||||
return fmt.Errorf("environment variable FREE_ONLY: %w", err)
|
return fmt.Errorf("environment variable FREE_ONLY: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return settings.ServerSelection.OpenVPN.readProtocolAndPort(r.env)
|
return settings.ServerSelection.OpenVPN.readProtocolAndPort(r)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -372,7 +372,7 @@ func Test_readProtocol(t *testing.T) {
|
|||||||
}{
|
}{
|
||||||
"error": {
|
"error": {
|
||||||
mockErr: errDummy,
|
mockErr: errDummy,
|
||||||
err: errors.New("environment variable PROTOCOL: dummy"),
|
err: errors.New("environment variable OPENVPN_PROTOCOL: dummy"),
|
||||||
},
|
},
|
||||||
"success": {
|
"success": {
|
||||||
mockStr: "tcp",
|
mockStr: "tcp",
|
||||||
@@ -388,10 +388,13 @@ func Test_readProtocol(t *testing.T) {
|
|||||||
|
|
||||||
env := mock_params.NewMockInterface(ctrl)
|
env := mock_params.NewMockInterface(ctrl)
|
||||||
env.EXPECT().
|
env.EXPECT().
|
||||||
Inside("PROTOCOL", []string{"tcp", "udp"}, gomock.Any()).
|
Inside("OPENVPN_PROTOCOL", []string{"tcp", "udp"}, gomock.Any(), gomock.Any()).
|
||||||
Return(testCase.mockStr, testCase.mockErr)
|
Return(testCase.mockStr, testCase.mockErr)
|
||||||
|
reader := reader{
|
||||||
|
env: env,
|
||||||
|
}
|
||||||
|
|
||||||
tcp, err := readProtocol(env)
|
tcp, err := readOpenVPNProtocol(reader)
|
||||||
|
|
||||||
if testCase.err != nil {
|
if testCase.err != nil {
|
||||||
require.Error(t, err)
|
require.Error(t, err)
|
||||||
|
|||||||
@@ -35,5 +35,5 @@ func (settings *Provider) readPurevpn(r reader) (err error) {
|
|||||||
return fmt.Errorf("environment variable SERVER_HOSTNAME: %w", err)
|
return fmt.Errorf("environment variable SERVER_HOSTNAME: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return settings.ServerSelection.OpenVPN.readProtocolOnly(r.env)
|
return settings.ServerSelection.OpenVPN.readProtocolOnly(r)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import (
|
|||||||
"net"
|
"net"
|
||||||
|
|
||||||
"github.com/qdm12/gluetun/internal/constants"
|
"github.com/qdm12/gluetun/internal/constants"
|
||||||
"github.com/qdm12/golibs/params"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type ServerSelection struct { //nolint:maligned
|
type ServerSelection struct { //nolint:maligned
|
||||||
@@ -132,18 +131,18 @@ func (settings *OpenVPNSelection) lines() (lines []string) {
|
|||||||
return lines
|
return lines
|
||||||
}
|
}
|
||||||
|
|
||||||
func (settings *OpenVPNSelection) readProtocolOnly(env params.Interface) (err error) {
|
func (settings *OpenVPNSelection) readProtocolOnly(r reader) (err error) {
|
||||||
settings.TCP, err = readProtocol(env)
|
settings.TCP, err = readOpenVPNProtocol(r)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (settings *OpenVPNSelection) readProtocolAndPort(env params.Interface) (err error) {
|
func (settings *OpenVPNSelection) readProtocolAndPort(r reader) (err error) {
|
||||||
settings.TCP, err = readProtocol(env)
|
settings.TCP, err = readOpenVPNProtocol(r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
settings.CustomPort, err = readPortOrZero(env, "PORT")
|
settings.CustomPort, err = readPortOrZero(r.env, "PORT")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("environment variable PORT: %w", err)
|
return fmt.Errorf("environment variable PORT: %w", err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ func (settings *Provider) readSurfshark(r reader) (err error) {
|
|||||||
return fmt.Errorf("environment variable MULTIHOP_ONLY: %w", err)
|
return fmt.Errorf("environment variable MULTIHOP_ONLY: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return settings.ServerSelection.OpenVPN.readProtocolOnly(r.env)
|
return settings.ServerSelection.OpenVPN.readProtocolOnly(r)
|
||||||
}
|
}
|
||||||
|
|
||||||
func surfsharkRetroRegion(selection ServerSelection) (
|
func surfsharkRetroRegion(selection ServerSelection) (
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ func Test_Provider_readSurfshark(t *testing.T) {
|
|||||||
settings: Provider{
|
settings: Provider{
|
||||||
Name: constants.Surfshark,
|
Name: constants.Surfshark,
|
||||||
},
|
},
|
||||||
err: errors.New("environment variable PROTOCOL: dummy test error"),
|
err: errors.New("environment variable OPENVPN_PROTOCOL: dummy test error"),
|
||||||
},
|
},
|
||||||
"default settings": {
|
"default settings": {
|
||||||
targetIP: stringCall{call: true},
|
targetIP: stringCall{call: true},
|
||||||
@@ -214,7 +214,7 @@ func Test_Provider_readSurfshark(t *testing.T) {
|
|||||||
Return(testCase.multiHop.value, testCase.multiHop.err)
|
Return(testCase.multiHop.value, testCase.multiHop.err)
|
||||||
}
|
}
|
||||||
if testCase.protocol.call {
|
if testCase.protocol.call {
|
||||||
env.EXPECT().Inside("PROTOCOL", []string{constants.TCP, constants.UDP}, gomock.Any()).
|
env.EXPECT().Inside("OPENVPN_PROTOCOL", []string{constants.TCP, constants.UDP}, gomock.Any()).
|
||||||
Return(testCase.protocol.value, testCase.protocol.err)
|
Return(testCase.protocol.value, testCase.protocol.err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31,5 +31,5 @@ func (settings *Provider) readTorguard(r reader) (err error) {
|
|||||||
return fmt.Errorf("environment variable SERVER_HOSTNAME: %w", err)
|
return fmt.Errorf("environment variable SERVER_HOSTNAME: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return settings.ServerSelection.OpenVPN.readProtocolAndPort(r.env)
|
return settings.ServerSelection.OpenVPN.readProtocolAndPort(r)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ func (settings *Provider) readVPNUnlimited(r reader) (err error) {
|
|||||||
return fmt.Errorf("environment variable STREAM_ONLY: %w", err)
|
return fmt.Errorf("environment variable STREAM_ONLY: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return settings.ServerSelection.OpenVPN.readProtocolOnly(r.env)
|
return settings.ServerSelection.OpenVPN.readProtocolOnly(r)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (settings *OpenVPN) readVPNUnlimited(r reader) (err error) {
|
func (settings *OpenVPN) readVPNUnlimited(r reader) (err error) {
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ func (settings *Provider) readWindscribe(r reader) (err error) {
|
|||||||
return fmt.Errorf("environment variable SERVER_HOSTNAME: %w", err)
|
return fmt.Errorf("environment variable SERVER_HOSTNAME: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = settings.ServerSelection.OpenVPN.readWindscribe(r.env)
|
err = settings.ServerSelection.OpenVPN.readWindscribe(r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -40,13 +40,13 @@ func (settings *Provider) readWindscribe(r reader) (err error) {
|
|||||||
return settings.ServerSelection.Wireguard.readWindscribe(r.env)
|
return settings.ServerSelection.Wireguard.readWindscribe(r.env)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (settings *OpenVPNSelection) readWindscribe(env params.Interface) (err error) {
|
func (settings *OpenVPNSelection) readWindscribe(r reader) (err error) {
|
||||||
settings.TCP, err = readProtocol(env)
|
settings.TCP, err = readOpenVPNProtocol(r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
settings.CustomPort, err = readOpenVPNCustomPort(env, settings.TCP,
|
settings.CustomPort, err = readOpenVPNCustomPort(r.env, settings.TCP,
|
||||||
[]uint16{21, 22, 80, 123, 143, 443, 587, 1194, 3306, 8080, 54783},
|
[]uint16{21, 22, 80, 123, 143, 443, 587, 1194, 3306, 8080, 54783},
|
||||||
[]uint16{53, 80, 123, 443, 1194, 54783})
|
[]uint16{53, 80, 123, 443, 1194, 54783})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
- Remove HTTP server v0
|
- Remove HTTP server v0
|
||||||
- `PORT` to `OPENVPN_PORT`
|
- `PORT` to `OPENVPN_PORT`
|
||||||
- `UNBLOCK` to `DOT_UNBOUND_UNBLOCK`
|
- `UNBLOCK` to `DOT_UNBOUND_UNBLOCK`
|
||||||
- `PROTOCOL` to `OPENVPN_PROTOCOL`
|
- Remove `PROTOCOL`
|
||||||
- `PORT_FORWARDING`
|
- `PORT_FORWARDING`
|
||||||
- Change servers filtering environment variables to plural
|
- Change servers filtering environment variables to plural
|
||||||
- Remove `WIREGUARD_PORT`
|
- Remove `WIREGUARD_PORT`
|
||||||
|
|||||||
Reference in New Issue
Block a user