TZ setting shown at start (#119)

This commit is contained in:
Quentin McGaw
2020-03-30 07:58:40 -04:00
committed by GitHub
parent f251c6aa4d
commit 7e79d9696f
5 changed files with 71 additions and 28 deletions

View File

@@ -72,11 +72,11 @@ func main() {
e.FatalOnError(err)
logger.Info(allSettings.String())
err = alpineConf.CreateUser("nonrootuser", allSettings.UID)
err = alpineConf.CreateUser("nonrootuser", allSettings.System.UID)
e.FatalOnError(err)
err = fileManager.SetOwnership("/etc/unbound", allSettings.UID, allSettings.GID)
err = fileManager.SetOwnership("/etc/unbound", allSettings.System.UID, allSettings.System.GID)
e.FatalOnError(err)
err = fileManager.SetOwnership("/etc/tinyproxy", allSettings.UID, allSettings.GID)
err = fileManager.SetOwnership("/etc/tinyproxy", allSettings.System.UID, allSettings.System.GID)
e.FatalOnError(err)
if err := ovpnConf.CheckTUN(); err != nil {
@@ -97,7 +97,7 @@ func main() {
openVPNUser = allSettings.Windscribe.User
openVPNPassword = allSettings.Windscribe.Password
}
err = ovpnConf.WriteAuthFile(openVPNUser, openVPNPassword, allSettings.UID, allSettings.GID)
err = ovpnConf.WriteAuthFile(openVPNUser, openVPNPassword, allSettings.System.UID, allSettings.System.GID)
e.FatalOnError(err)
// Temporarily reset chain policies allowing Kubernetes sidecar to
@@ -118,11 +118,11 @@ func main() {
if allSettings.DNS.Enabled {
initialDNSToUse := constants.DNSProviderMapping()[allSettings.DNS.Providers[0]]
dnsConf.UseDNSInternally(initialDNSToUse.IPs[0])
err = dnsConf.DownloadRootHints(allSettings.UID, allSettings.GID)
err = dnsConf.DownloadRootHints(allSettings.System.UID, allSettings.System.GID)
e.FatalOnError(err)
err = dnsConf.DownloadRootKey(allSettings.UID, allSettings.GID)
err = dnsConf.DownloadRootKey(allSettings.System.UID, allSettings.System.GID)
e.FatalOnError(err)
err = dnsConf.MakeUnboundConf(allSettings.DNS, allSettings.UID, allSettings.GID)
err = dnsConf.MakeUnboundConf(allSettings.DNS, allSettings.System.UID, allSettings.System.GID)
e.FatalOnError(err)
stream, waitFn, err := dnsConf.Start(allSettings.DNS.VerbosityDetailsLevel)
e.FatalOnError(err)
@@ -150,8 +150,8 @@ func main() {
connections,
allSettings.PIA.Encryption,
allSettings.OpenVPN.Verbosity,
allSettings.UID,
allSettings.GID,
allSettings.System.UID,
allSettings.System.GID,
allSettings.OpenVPN.Root,
allSettings.OpenVPN.Cipher,
allSettings.OpenVPN.Auth)
@@ -168,8 +168,8 @@ func main() {
err = mullvadConf.BuildConf(
connections,
allSettings.OpenVPN.Verbosity,
allSettings.UID,
allSettings.GID,
allSettings.System.UID,
allSettings.System.GID,
allSettings.OpenVPN.Root,
allSettings.OpenVPN.Cipher)
e.FatalOnError(err)
@@ -183,8 +183,8 @@ func main() {
err = windscribeConf.BuildConf(
connections,
allSettings.OpenVPN.Verbosity,
allSettings.UID,
allSettings.GID,
allSettings.System.UID,
allSettings.System.GID,
allSettings.OpenVPN.Root,
allSettings.OpenVPN.Cipher,
allSettings.OpenVPN.Auth)
@@ -212,8 +212,8 @@ func main() {
allSettings.TinyProxy.Port,
allSettings.TinyProxy.User,
allSettings.TinyProxy.Password,
allSettings.UID,
allSettings.GID)
allSettings.System.UID,
allSettings.System.GID)
e.FatalOnError(err)
err = firewallConf.AllowAnyIncomingOnPort(allSettings.TinyProxy.Port)
e.FatalOnError(err)
@@ -232,8 +232,8 @@ func main() {
allSettings.ShadowSocks.Port,
allSettings.ShadowSocks.Password,
allSettings.ShadowSocks.Method,
allSettings.UID,
allSettings.GID)
allSettings.System.UID,
allSettings.System.GID)
e.FatalOnError(err)
err = firewallConf.AllowAnyIncomingOnPort(allSettings.ShadowSocks.Port)
e.FatalOnError(err)
@@ -256,8 +256,8 @@ func main() {
if err := piaConf.WritePortForward(
allSettings.PIA.PortForwarding.Filepath,
port,
allSettings.UID,
allSettings.GID); err != nil {
allSettings.System.UID,
allSettings.System.GID); err != nil {
logger.Error("port forwarding:", err)
}
if err := piaConf.AllowPortForwardFirewall(constants.TUN, port); err != nil {

View File

@@ -28,9 +28,10 @@ type ParamsReader interface {
GetDNSOverTLSPrivateAddresses() (privateAddresses []string)
GetDNSOverTLSIPv6() (ipv6 bool, err error)
// IDs
// System
GetUID() (uid int, err error)
GetGID() (gid int, err error)
GetTimezone() (timezone string, err error)
// Firewall getters
GetExtraSubnets() (extraSubnets []net.IPNet, err error)

View File

@@ -13,3 +13,8 @@ func (p *paramsReader) GetUID() (uid int, err error) {
func (p *paramsReader) GetGID() (gid int, err error) {
return p.envParams.GetEnvIntRange("GID", 0, 65535, libparams.Default("1000"))
}
// GetTZ obtains the timezone from the environment variable TZ
func (p *paramsReader) GetTimezone() (timezone string, err error) {
return p.envParams.GetEnv("TZ")
}

View File

@@ -14,12 +14,11 @@ type Settings struct {
PIA PIA
Mullvad Mullvad
Windscribe Windscribe
System System
DNS DNS
Firewall Firewall
TinyProxy TinyProxy
ShadowSocks ShadowSocks
UID int
GID int
}
func (s *Settings) String() string {
@@ -34,9 +33,9 @@ func (s *Settings) String() string {
}
return strings.Join([]string{
"Settings summary below:",
fmt.Sprintf("|-- Using UID %d and GID %d", s.UID, s.GID),
s.OpenVPN.String(),
vpnServiceProvider,
s.System.String(),
s.DNS.String(),
s.Firewall.String(),
s.TinyProxy.String(),
@@ -118,11 +117,7 @@ func GetAllSettings(params params.ParamsReader) (settings Settings, err error) {
if err != nil {
return settings, err
}
settings.UID, err = params.GetUID()
if err != nil {
return settings, err
}
settings.GID, err = params.GetGID()
settings.System, err = GetSystemSettings(params)
if err != nil {
return settings, err
}

View File

@@ -0,0 +1,42 @@
package settings
import (
"fmt"
"strings"
"github.com/qdm12/private-internet-access-docker/internal/params"
)
// System contains settings to configure system related elements
type System struct {
UID int
GID int
Timezone string
}
// GetSystemSettings obtains the System settings using the params functions
func GetSystemSettings(params params.ParamsReader) (settings System, err error) {
settings.UID, err = params.GetUID()
if err != nil {
return settings, err
}
settings.GID, err = params.GetGID()
if err != nil {
return settings, err
}
settings.Timezone, err = params.GetTimezone()
if err != nil {
return settings, err
}
return settings, nil
}
func (s *System) String() string {
settingsList := []string{
"System settings:",
fmt.Sprintf("User ID: %d", s.UID),
fmt.Sprintf("Group ID: %d", s.GID),
fmt.Sprintf("Timezone: %s", s.Timezone),
}
return strings.Join(settingsList, "\n|--")
}