- Fix bad permissions bits for files - VPNSP is 'private internet access' instead of 'pia' (retro compatible) - Check errors of deferred unsetEnv functions in params package - Other lint errors fixing and code simplifications
57 lines
1.4 KiB
Go
57 lines
1.4 KiB
Go
package settings
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/qdm12/private-internet-access-docker/internal/models"
|
|
"github.com/qdm12/private-internet-access-docker/internal/params"
|
|
)
|
|
|
|
// Mullvad contains the settings to connect to a Mullvad server
|
|
type Mullvad struct {
|
|
User string
|
|
Country models.MullvadCountry
|
|
City models.MullvadCity
|
|
ISP models.MullvadProvider
|
|
Port uint16
|
|
}
|
|
|
|
func (m *Mullvad) String() string {
|
|
settingsList := []string{
|
|
"Mullvad settings:",
|
|
"User: [redacted]",
|
|
"Country: " + string(m.Country),
|
|
"City: " + string(m.City),
|
|
"ISP: " + string(m.ISP),
|
|
"Port: " + string(m.Port),
|
|
}
|
|
return strings.Join(settingsList, "\n |--")
|
|
}
|
|
|
|
// GetMullvadSettings obtains Mullvad settings from environment variables using the params package.
|
|
func GetMullvadSettings(paramsReader params.Reader) (settings Mullvad, err error) {
|
|
settings.User, err = paramsReader.GetUser()
|
|
if err != nil {
|
|
return settings, err
|
|
}
|
|
// Remove spaces in user ID to simplify user's life, thanks @JeordyR
|
|
settings.User = strings.ReplaceAll(settings.User, " ", "")
|
|
settings.Country, err = paramsReader.GetMullvadCountry()
|
|
if err != nil {
|
|
return settings, err
|
|
}
|
|
settings.City, err = paramsReader.GetMullvadCity()
|
|
if err != nil {
|
|
return settings, err
|
|
}
|
|
settings.ISP, err = paramsReader.GetMullvadISP()
|
|
if err != nil {
|
|
return settings, err
|
|
}
|
|
settings.Port, err = paramsReader.GetMullvadPort()
|
|
if err != nil {
|
|
return settings, err
|
|
}
|
|
return settings, nil
|
|
}
|