Maint: utils.FilterByProtocol function
This commit is contained in:
@@ -13,8 +13,7 @@ func (f *Fastestvpn) filterServers(selection configuration.ServerSelection) (
|
|||||||
case
|
case
|
||||||
utils.FilterByPossibilities(server.Country, selection.Countries),
|
utils.FilterByPossibilities(server.Country, selection.Countries),
|
||||||
utils.FilterByPossibilities(server.Hostname, selection.Hostnames),
|
utils.FilterByPossibilities(server.Hostname, selection.Hostnames),
|
||||||
selection.OpenVPN.TCP && !server.TCP,
|
utils.FilterByProtocol(selection, server.TCP, server.UDP):
|
||||||
!selection.OpenVPN.TCP && !server.UDP:
|
|
||||||
default:
|
default:
|
||||||
servers = append(servers, server)
|
servers = append(servers, server)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,8 +14,7 @@ func (h *HideMyAss) filterServers(selection configuration.ServerSelection) (
|
|||||||
utils.FilterByPossibilities(server.Country, selection.Countries),
|
utils.FilterByPossibilities(server.Country, selection.Countries),
|
||||||
utils.FilterByPossibilities(server.City, selection.Cities),
|
utils.FilterByPossibilities(server.City, selection.Cities),
|
||||||
utils.FilterByPossibilities(server.Hostname, selection.Hostnames),
|
utils.FilterByPossibilities(server.Hostname, selection.Hostnames),
|
||||||
selection.OpenVPN.TCP && !server.TCP,
|
utils.FilterByProtocol(selection, server.TCP, server.UDP):
|
||||||
!selection.OpenVPN.TCP && !server.UDP:
|
|
||||||
default:
|
default:
|
||||||
servers = append(servers, server)
|
servers = append(servers, server)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,8 +14,7 @@ func (i *Ipvanish) filterServers(selection configuration.ServerSelection) (
|
|||||||
utils.FilterByPossibilities(server.Country, selection.Countries),
|
utils.FilterByPossibilities(server.Country, selection.Countries),
|
||||||
utils.FilterByPossibilities(server.City, selection.Cities),
|
utils.FilterByPossibilities(server.City, selection.Cities),
|
||||||
utils.FilterByPossibilities(server.Hostname, selection.Hostnames),
|
utils.FilterByPossibilities(server.Hostname, selection.Hostnames),
|
||||||
selection.OpenVPN.TCP && !server.TCP,
|
utils.FilterByProtocol(selection, server.TCP, server.UDP):
|
||||||
!selection.OpenVPN.TCP && !server.UDP:
|
|
||||||
default:
|
default:
|
||||||
servers = append(servers, server)
|
servers = append(servers, server)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,8 +16,7 @@ func (i *Ivpn) filterServers(selection configuration.ServerSelection) (
|
|||||||
utils.FilterByPossibilities(server.Country, selection.Countries),
|
utils.FilterByPossibilities(server.Country, selection.Countries),
|
||||||
utils.FilterByPossibilities(server.City, selection.Cities),
|
utils.FilterByPossibilities(server.City, selection.Cities),
|
||||||
utils.FilterByPossibilities(server.Hostname, selection.Hostnames),
|
utils.FilterByPossibilities(server.Hostname, selection.Hostnames),
|
||||||
selection.OpenVPN.TCP && !server.TCP,
|
utils.FilterByProtocol(selection, server.TCP, server.UDP):
|
||||||
!selection.OpenVPN.TCP && !server.UDP:
|
|
||||||
default:
|
default:
|
||||||
servers = append(servers, server)
|
servers = append(servers, server)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,8 +23,7 @@ func (n *Nordvpn) filterServers(selection configuration.ServerSelection) (
|
|||||||
utils.FilterByPossibilities(server.Hostname, selection.Hostnames),
|
utils.FilterByPossibilities(server.Hostname, selection.Hostnames),
|
||||||
utils.FilterByPossibilities(server.Name, selection.Names),
|
utils.FilterByPossibilities(server.Name, selection.Names),
|
||||||
utils.FilterByPossibilities(serverNumber, selectedNumbers),
|
utils.FilterByPossibilities(serverNumber, selectedNumbers),
|
||||||
selection.OpenVPN.TCP && !server.TCP,
|
utils.FilterByProtocol(selection, server.TCP, server.UDP):
|
||||||
!selection.OpenVPN.TCP && !server.UDP:
|
|
||||||
default:
|
default:
|
||||||
servers = append(servers, server)
|
servers = append(servers, server)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,8 +14,7 @@ func (p *PIA) filterServers(selection configuration.ServerSelection) (
|
|||||||
utils.FilterByPossibilities(server.Region, selection.Regions),
|
utils.FilterByPossibilities(server.Region, selection.Regions),
|
||||||
utils.FilterByPossibilities(server.Hostname, selection.Hostnames),
|
utils.FilterByPossibilities(server.Hostname, selection.Hostnames),
|
||||||
utils.FilterByPossibilities(server.ServerName, selection.Names),
|
utils.FilterByPossibilities(server.ServerName, selection.Names),
|
||||||
selection.OpenVPN.TCP && !server.TCP,
|
utils.FilterByProtocol(selection, server.TCP, server.UDP):
|
||||||
!selection.OpenVPN.TCP && !server.UDP:
|
|
||||||
default:
|
default:
|
||||||
servers = append(servers, server)
|
servers = append(servers, server)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,8 +15,7 @@ func (p *Purevpn) filterServers(selection configuration.ServerSelection) (
|
|||||||
utils.FilterByPossibilities(server.Country, selection.Countries),
|
utils.FilterByPossibilities(server.Country, selection.Countries),
|
||||||
utils.FilterByPossibilities(server.City, selection.Cities),
|
utils.FilterByPossibilities(server.City, selection.Cities),
|
||||||
utils.FilterByPossibilities(server.Hostname, selection.Hostnames),
|
utils.FilterByPossibilities(server.Hostname, selection.Hostnames),
|
||||||
selection.OpenVPN.TCP && !server.TCP,
|
utils.FilterByProtocol(selection, server.TCP, server.UDP):
|
||||||
!selection.OpenVPN.TCP && !server.UDP:
|
|
||||||
default:
|
default:
|
||||||
servers = append(servers, server)
|
servers = append(servers, server)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,8 +15,7 @@ func (s *Surfshark) filterServers(selection configuration.ServerSelection) (
|
|||||||
utils.FilterByPossibilities(server.Country, selection.Countries),
|
utils.FilterByPossibilities(server.Country, selection.Countries),
|
||||||
utils.FilterByPossibilities(server.City, selection.Cities),
|
utils.FilterByPossibilities(server.City, selection.Cities),
|
||||||
utils.FilterByPossibilities(server.Hostname, selection.Hostnames),
|
utils.FilterByPossibilities(server.Hostname, selection.Hostnames),
|
||||||
selection.OpenVPN.TCP && !server.TCP,
|
utils.FilterByProtocol(selection, server.TCP, server.UDP),
|
||||||
!selection.OpenVPN.TCP && !server.UDP,
|
|
||||||
selection.MultiHopOnly && !server.MultiHop:
|
selection.MultiHopOnly && !server.MultiHop:
|
||||||
default:
|
default:
|
||||||
servers = append(servers, server)
|
servers = append(servers, server)
|
||||||
|
|||||||
@@ -14,8 +14,7 @@ func (t *Torguard) filterServers(selection configuration.ServerSelection) (
|
|||||||
utils.FilterByPossibilities(server.Country, selection.Countries),
|
utils.FilterByPossibilities(server.Country, selection.Countries),
|
||||||
utils.FilterByPossibilities(server.City, selection.Cities),
|
utils.FilterByPossibilities(server.City, selection.Cities),
|
||||||
utils.FilterByPossibilities(server.Hostname, selection.Hostnames),
|
utils.FilterByPossibilities(server.Hostname, selection.Hostnames),
|
||||||
selection.OpenVPN.TCP && !server.TCP,
|
utils.FilterByProtocol(selection, server.TCP, server.UDP):
|
||||||
!selection.OpenVPN.TCP && !server.UDP:
|
|
||||||
default:
|
default:
|
||||||
servers = append(servers, server)
|
servers = append(servers, server)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,3 +11,15 @@ func GetProtocol(selection configuration.ServerSelection) (protocol string) {
|
|||||||
}
|
}
|
||||||
return constants.UDP
|
return constants.UDP
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func FilterByProtocol(selection configuration.ServerSelection,
|
||||||
|
serverTCP, serverUDP bool) (filtered bool) {
|
||||||
|
switch selection.VPN {
|
||||||
|
case constants.Wireguard:
|
||||||
|
return !serverUDP
|
||||||
|
default: // OpenVPN
|
||||||
|
wantTCP := selection.OpenVPN.TCP
|
||||||
|
wantUDP := !wantTCP
|
||||||
|
return (wantTCP && !serverTCP) || (wantUDP && !serverUDP)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -52,3 +52,81 @@ func Test_GetProtocol(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Test_FilterByProtocol(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
testCases := map[string]struct {
|
||||||
|
selection configuration.ServerSelection
|
||||||
|
serverTCP bool
|
||||||
|
serverUDP bool
|
||||||
|
filtered bool
|
||||||
|
}{
|
||||||
|
"Wireguard and server has UDP": {
|
||||||
|
selection: configuration.ServerSelection{
|
||||||
|
VPN: constants.Wireguard,
|
||||||
|
},
|
||||||
|
serverUDP: true,
|
||||||
|
filtered: false,
|
||||||
|
},
|
||||||
|
"Wireguard and server has not UDP": {
|
||||||
|
selection: configuration.ServerSelection{
|
||||||
|
VPN: constants.Wireguard,
|
||||||
|
},
|
||||||
|
serverUDP: false,
|
||||||
|
filtered: true,
|
||||||
|
},
|
||||||
|
"OpenVPN UDP and server has UDP": {
|
||||||
|
selection: configuration.ServerSelection{
|
||||||
|
VPN: constants.OpenVPN,
|
||||||
|
OpenVPN: configuration.OpenVPNSelection{
|
||||||
|
TCP: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
serverUDP: true,
|
||||||
|
filtered: false,
|
||||||
|
},
|
||||||
|
"OpenVPN UDP and server has not UDP": {
|
||||||
|
selection: configuration.ServerSelection{
|
||||||
|
VPN: constants.OpenVPN,
|
||||||
|
OpenVPN: configuration.OpenVPNSelection{
|
||||||
|
TCP: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
serverUDP: false,
|
||||||
|
filtered: true,
|
||||||
|
},
|
||||||
|
"OpenVPN TCP and server has TCP": {
|
||||||
|
selection: configuration.ServerSelection{
|
||||||
|
VPN: constants.OpenVPN,
|
||||||
|
OpenVPN: configuration.OpenVPNSelection{
|
||||||
|
TCP: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
serverTCP: true,
|
||||||
|
filtered: false,
|
||||||
|
},
|
||||||
|
"OpenVPN TCP and server has not TCP": {
|
||||||
|
selection: configuration.ServerSelection{
|
||||||
|
VPN: constants.OpenVPN,
|
||||||
|
OpenVPN: configuration.OpenVPNSelection{
|
||||||
|
TCP: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
serverTCP: false,
|
||||||
|
filtered: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for name, testCase := range testCases {
|
||||||
|
testCase := testCase
|
||||||
|
t.Run(name, func(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
filtered := FilterByProtocol(testCase.selection,
|
||||||
|
testCase.serverTCP, testCase.serverUDP)
|
||||||
|
|
||||||
|
assert.Equal(t, testCase.filtered, filtered)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -16,8 +16,7 @@ func (p *Provider) filterServers(selection configuration.ServerSelection) (
|
|||||||
utils.FilterByPossibilities(server.Hostname, selection.Hostnames),
|
utils.FilterByPossibilities(server.Hostname, selection.Hostnames),
|
||||||
selection.FreeOnly && !server.Free,
|
selection.FreeOnly && !server.Free,
|
||||||
selection.StreamOnly && !server.Stream,
|
selection.StreamOnly && !server.Stream,
|
||||||
selection.OpenVPN.TCP && !server.TCP,
|
utils.FilterByProtocol(selection, server.TCP, server.UDP):
|
||||||
!selection.OpenVPN.TCP && !server.UDP:
|
|
||||||
default:
|
default:
|
||||||
servers = append(servers, server)
|
servers = append(servers, server)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,8 +13,7 @@ func (v *Vyprvpn) filterServers(selection configuration.ServerSelection) (
|
|||||||
case
|
case
|
||||||
utils.FilterByPossibilities(server.Region, selection.Regions),
|
utils.FilterByPossibilities(server.Region, selection.Regions),
|
||||||
utils.FilterByPossibilities(server.Hostname, selection.Hostnames),
|
utils.FilterByPossibilities(server.Hostname, selection.Hostnames),
|
||||||
selection.OpenVPN.TCP && !server.TCP,
|
utils.FilterByProtocol(selection, server.TCP, server.UDP):
|
||||||
!selection.OpenVPN.TCP && !server.UDP:
|
|
||||||
default:
|
default:
|
||||||
servers = append(servers, server)
|
servers = append(servers, server)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user