Cyberghost support (#168)
* Host finder CLI for cyberghost * Resolver program updated with Cyberghost data * Gluetun cli clientkey subcommand
This commit is contained in:
54
internal/settings/cyberghost.go
Normal file
54
internal/settings/cyberghost.go
Normal file
@@ -0,0 +1,54 @@
|
||||
package settings
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/qdm12/private-internet-access-docker/internal/models"
|
||||
"github.com/qdm12/private-internet-access-docker/internal/params"
|
||||
)
|
||||
|
||||
// Windscribe contains the settings to connect to a Windscribe server
|
||||
type Cyberghost struct {
|
||||
User string
|
||||
Password string
|
||||
ClientKey string
|
||||
Group models.CyberghostGroup
|
||||
Region models.CyberghostRegion
|
||||
}
|
||||
|
||||
func (c *Cyberghost) String() string {
|
||||
settingsList := []string{
|
||||
"Cyberghost settings:",
|
||||
"User: [redacted]",
|
||||
"Password: [redacted]",
|
||||
"ClientKey: [redacted]",
|
||||
"Group: " + string(c.Group),
|
||||
"Region: " + string(c.Region),
|
||||
}
|
||||
return strings.Join(settingsList, "\n |--")
|
||||
}
|
||||
|
||||
// GetCyberghostSettings obtains Cyberghost settings from environment variables using the params package.
|
||||
func GetCyberghostSettings(paramsReader params.Reader) (settings Cyberghost, err error) {
|
||||
settings.User, err = paramsReader.GetUser()
|
||||
if err != nil {
|
||||
return settings, err
|
||||
}
|
||||
settings.Password, err = paramsReader.GetPassword()
|
||||
if err != nil {
|
||||
return settings, err
|
||||
}
|
||||
settings.ClientKey, err = paramsReader.GetCyberghostClientKey()
|
||||
if err != nil {
|
||||
return settings, err
|
||||
}
|
||||
settings.Group, err = paramsReader.GetCyberghostGroup()
|
||||
if err != nil {
|
||||
return settings, err
|
||||
}
|
||||
settings.Region, err = paramsReader.GetCyberghostRegion()
|
||||
if err != nil {
|
||||
return settings, err
|
||||
}
|
||||
return settings, nil
|
||||
}
|
||||
@@ -17,6 +17,7 @@ type Settings struct {
|
||||
Mullvad Mullvad
|
||||
Windscribe Windscribe
|
||||
Surfshark Surfshark
|
||||
Cyberghost Cyberghost
|
||||
System System
|
||||
DNS DNS
|
||||
Firewall Firewall
|
||||
@@ -35,6 +36,8 @@ func (s *Settings) String() string {
|
||||
vpnServiceProviderSettings = s.Windscribe.String()
|
||||
case constants.Surfshark:
|
||||
vpnServiceProviderSettings = s.Surfshark.String()
|
||||
case constants.Cyberghost:
|
||||
vpnServiceProviderSettings = s.Cyberghost.String()
|
||||
}
|
||||
return strings.Join([]string{
|
||||
"Settings summary below:",
|
||||
@@ -69,6 +72,8 @@ func GetAllSettings(paramsReader params.Reader) (settings Settings, err error) {
|
||||
settings.Windscribe, err = GetWindscribeSettings(paramsReader, settings.OpenVPN.NetworkProtocol)
|
||||
case constants.Surfshark:
|
||||
settings.Surfshark, err = GetSurfsharkSettings(paramsReader)
|
||||
case constants.Cyberghost:
|
||||
settings.Cyberghost, err = GetCyberghostSettings(paramsReader)
|
||||
default:
|
||||
err = fmt.Errorf("VPN service provider %q is not valid", settings.VPNSP)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user