Privado support, fix #285 (#288)

This commit is contained in:
Quentin McGaw
2020-11-08 20:56:49 -05:00
committed by GitHub
parent 0423388b52
commit f1e4b9937b
24 changed files with 610 additions and 9 deletions

View File

@@ -91,6 +91,10 @@ type Reader interface {
GetNordvpnRegions() (regions []string, err error)
GetNordvpnNumbers() (numbers []uint16, err error)
// Privado getters
GetPrivadoCities() (regions []string, err error)
GetPrivadoNumbers() (numbers []uint16, err error)
// PureVPN getters
GetPurevpnRegions() (regions []string, err error)
GetPurevpnCountries() (countries []string, err error)
@@ -148,9 +152,9 @@ func (r *reader) GetVPNSP() (vpnServiceProvider models.VPNProvider, err error) {
s, err := r.envParams.GetValueIfInside(
"VPNSP",
[]string{
"pia", "private internet access", "private internet access old",
"pia", "private internet access",
"mullvad", "windscribe", "surfshark", "cyberghost",
"vyprvpn", "nordvpn", "purevpn",
"vyprvpn", "nordvpn", "purevpn", "privado",
}, libparams.Default("private internet access"))
if s == "pia" {
s = "private internet access"

View File

@@ -0,0 +1,37 @@
package params
import (
"fmt"
"strconv"
"github.com/qdm12/gluetun/internal/constants"
)
// GetPrivadoCities obtains the cities for the Privado server from the
// environment variable CITY.
func (r *reader) GetPrivadoCities() (regions []string, err error) {
return r.envParams.GetCSVInPossibilities("CITY", constants.PrivadoCityChoices())
}
// GetPrivadoNumbers obtains the server numbers (optional) for the Privado servers from the
// environment variable SERVER_NUMBER.
func (r *reader) GetPrivadoNumbers() (numbers []uint16, err error) {
possibilities := make([]string, 65537)
for i := range possibilities {
possibilities[i] = fmt.Sprintf("%d", i)
}
possibilities[65536] = ""
values, err := r.envParams.GetCSVInPossibilities("SERVER_NUMBER", possibilities)
if err != nil {
return nil, err
}
numbers = make([]uint16, len(values))
for i := range values {
n, err := strconv.Atoi(values[i])
if err != nil {
return nil, err
}
numbers[i] = uint16(n)
}
return numbers, nil
}