From e4a260f148b16728ccadfb6e1563ef365a6720fd Mon Sep 17 00:00:00 2001 From: "Quentin McGaw (laptop)" Date: Sun, 22 Aug 2021 20:44:14 +0000 Subject: [PATCH] Maint: upgrade qdm12/golibs --- cmd/gluetun/main.go | 6 +++--- go.mod | 2 +- go.sum | 4 ++-- internal/cli/healthcheck.go | 4 ++-- internal/cli/openvpnconfig.go | 6 +++--- internal/configuration/dns.go | 2 +- internal/configuration/dnsblacklist.go | 2 +- internal/configuration/firewall.go | 4 ++-- internal/configuration/health.go | 2 +- internal/configuration/health_test.go | 2 +- internal/configuration/ipvanish_test.go | 2 +- internal/configuration/ivpn_test.go | 2 +- internal/configuration/mullvad.go | 2 +- internal/configuration/nordvpn.go | 2 +- internal/configuration/openvpn.go | 4 ++-- internal/configuration/provider.go | 6 +++--- internal/configuration/provider_test.go | 2 +- internal/configuration/reader.go | 12 ++++++------ internal/configuration/selection.go | 4 ++-- internal/configuration/settings.go | 2 +- internal/configuration/shadowsocks.go | 2 +- internal/configuration/unbound.go | 2 +- internal/configuration/unbound_test.go | 2 +- internal/configuration/vpn.go | 2 +- internal/configuration/windscribe.go | 4 ++-- 25 files changed, 42 insertions(+), 42 deletions(-) diff --git a/cmd/gluetun/main.go b/cmd/gluetun/main.go index fa4e0e4c..e05382ee 100644 --- a/cmd/gluetun/main.go +++ b/cmd/gluetun/main.go @@ -72,7 +72,7 @@ func main() { tun := tun.New() netLinker := netlink.New() cli := cli.New() - env := params.NewEnv() + env := params.New() cmder := command.NewCmder() errorCh := make(chan error) @@ -117,7 +117,7 @@ var ( //nolint:gocognit,gocyclo func _main(ctx context.Context, buildInfo models.BuildInformation, - args []string, logger logging.ParentLogger, env params.Env, + args []string, logger logging.ParentLogger, env params.Interface, tun tun.Interface, netLinker netlink.NetLinker, cmder command.RunStarter, cli cli.CLIer) error { if len(args) > 1 { // cli operation @@ -127,7 +127,7 @@ func _main(ctx context.Context, buildInfo models.BuildInformation, case "clientkey": return cli.ClientKey(args[2:]) case "openvpnconfig": - return cli.OpenvpnConfig(logger) + return cli.OpenvpnConfig(logger, env) case "update": return cli.Update(ctx, args[2:], logger) default: diff --git a/go.mod b/go.mod index 8cbf0d25..a72cc9e2 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/fatih/color v1.12.0 github.com/golang/mock v1.6.0 github.com/qdm12/dns v1.11.0 - github.com/qdm12/golibs v0.0.0-20210819192647-0793e710c4e2 + github.com/qdm12/golibs v0.0.0-20210822203818-5c568b0777b6 github.com/qdm12/goshutdown v0.1.0 github.com/qdm12/gosplash v0.1.0 github.com/qdm12/ss-server v0.3.0 diff --git a/go.sum b/go.sum index 23c8b54e..31a011a0 100644 --- a/go.sum +++ b/go.sum @@ -100,8 +100,8 @@ github.com/qdm12/dns v1.11.0 h1:jpcD5DZXXQSQe5a263PL09ghukiIdptvXFOZvyKEm6Q= github.com/qdm12/dns v1.11.0/go.mod h1:FmQsNOUcrrZ4UFzWAiED56AKXeNgaX3ySbmPwEfNjjE= github.com/qdm12/golibs v0.0.0-20210603202746-e5494e9c2ebb/go.mod h1:15RBzkun0i8XB7ADIoLJWp9ITRgsz3LroEI2FiOXLRg= github.com/qdm12/golibs v0.0.0-20210723175634-a75ca7fd74c2/go.mod h1:6aRbg4Z/bTbm9JfxsGXfWKHi7zsOvPfUTK1S5HuAFKg= -github.com/qdm12/golibs v0.0.0-20210819192647-0793e710c4e2 h1:knh82t+/xYiNqr/4zJFrWaI4q4TwG1qfIJpsvCBCc1c= -github.com/qdm12/golibs v0.0.0-20210819192647-0793e710c4e2/go.mod h1:6aRbg4Z/bTbm9JfxsGXfWKHi7zsOvPfUTK1S5HuAFKg= +github.com/qdm12/golibs v0.0.0-20210822203818-5c568b0777b6 h1:bge5AL7cjHJMPz+5IOz5yF01q/l8No6+lIEBieA8gMg= +github.com/qdm12/golibs v0.0.0-20210822203818-5c568b0777b6/go.mod h1:6aRbg4Z/bTbm9JfxsGXfWKHi7zsOvPfUTK1S5HuAFKg= github.com/qdm12/goshutdown v0.1.0 h1:lmwnygdXtnr2pa6VqfR/bm8077/BnBef1+7CP96B7Sw= github.com/qdm12/goshutdown v0.1.0/go.mod h1:/LP3MWLqI+wGH/ijfaUG+RHzBbKXIiVKnrg5vXOCf6Q= github.com/qdm12/gosplash v0.1.0 h1:Sfl+zIjFZFP7b0iqf2l5UkmEY97XBnaKkH3FNY6Gf7g= diff --git a/internal/cli/healthcheck.go b/internal/cli/healthcheck.go index 839cfaab..a6610e87 100644 --- a/internal/cli/healthcheck.go +++ b/internal/cli/healthcheck.go @@ -13,10 +13,10 @@ import ( ) type HealthChecker interface { - HealthCheck(ctx context.Context, env params.Env, logger logging.Logger) error + HealthCheck(ctx context.Context, env params.Interface, logger logging.Logger) error } -func (c *CLI) HealthCheck(ctx context.Context, env params.Env, +func (c *CLI) HealthCheck(ctx context.Context, env params.Interface, logger logging.Logger) error { // Extract the health server port from the configuration. config := configuration.Health{} diff --git a/internal/cli/openvpnconfig.go b/internal/cli/openvpnconfig.go index 5f040839..de2d1f59 100644 --- a/internal/cli/openvpnconfig.go +++ b/internal/cli/openvpnconfig.go @@ -14,12 +14,12 @@ import ( ) type OpenvpnConfigMaker interface { - OpenvpnConfig(logger logging.Logger) error + OpenvpnConfig(logger logging.Logger, env params.Interface) error } -func (c *CLI) OpenvpnConfig(logger logging.Logger) error { +func (c *CLI) OpenvpnConfig(logger logging.Logger, env params.Interface) error { var allSettings configuration.Settings - err := allSettings.Read(params.NewEnv(), logger) + err := allSettings.Read(env, logger) if err != nil { return err } diff --git a/internal/configuration/dns.go b/internal/configuration/dns.go index a6b353ab..21e94909 100644 --- a/internal/configuration/dns.go +++ b/internal/configuration/dns.go @@ -102,7 +102,7 @@ var ( ErrDNSAddressNotAnIP = errors.New("DNS plaintext address is not an IP address") ) -func (settings *DNS) readDNSPlaintext(env params.Env) error { +func (settings *DNS) readDNSPlaintext(env params.Interface) error { s, err := env.Get("DNS_PLAINTEXT_ADDRESS", params.Default("1.1.1.1")) if err != nil { return fmt.Errorf("environment variable DNS_PLAINTEXT_ADDRESS: %w", err) diff --git a/internal/configuration/dnsblacklist.go b/internal/configuration/dnsblacklist.go index 83eded49..31bb4788 100644 --- a/internal/configuration/dnsblacklist.go +++ b/internal/configuration/dnsblacklist.go @@ -36,7 +36,7 @@ var ( ErrInvalidPrivateAddress = errors.New("private address is not a valid IP or CIDR range") ) -func (settings *DNS) readPrivateAddresses(env params.Env) (err error) { +func (settings *DNS) readPrivateAddresses(env params.Interface) (err error) { privateAddresses, err := env.CSV("DOT_PRIVATE_ADDRESS") if err != nil { return fmt.Errorf("environment variable DOT_PRIVATE_ADDRESS: %w", err) diff --git a/internal/configuration/firewall.go b/internal/configuration/firewall.go index 222a3f18..27eb4334 100644 --- a/internal/configuration/firewall.go +++ b/internal/configuration/firewall.go @@ -73,7 +73,7 @@ func (settings *Firewall) read(r reader) (err error) { return settings.readOutboundSubnets(r) } -func (settings *Firewall) readVPNInputPorts(env params.Env) (err error) { +func (settings *Firewall) readVPNInputPorts(env params.Interface) (err error) { settings.VPNInputPorts, err = readCSVPorts(env, "FIREWALL_VPN_INPUT_PORTS") if err != nil { return fmt.Errorf("environment variable FIREWALL_VPN_INPUT_PORTS: %w", err) @@ -81,7 +81,7 @@ func (settings *Firewall) readVPNInputPorts(env params.Env) (err error) { return nil } -func (settings *Firewall) readInputPorts(env params.Env) (err error) { +func (settings *Firewall) readInputPorts(env params.Interface) (err error) { settings.InputPorts, err = readCSVPorts(env, "FIREWALL_INPUT_PORTS") if err != nil { return fmt.Errorf("environment variable FIREWALL_INPUT_PORTS: %w", err) diff --git a/internal/configuration/health.go b/internal/configuration/health.go index e881aaa7..8ba32d7e 100644 --- a/internal/configuration/health.go +++ b/internal/configuration/health.go @@ -32,7 +32,7 @@ func (settings *Health) lines() (lines []string) { } // Read is to be used for the healthcheck query mode. -func (settings *Health) Read(env params.Env, logger logging.Logger) (err error) { +func (settings *Health) Read(env params.Interface, logger logging.Logger) (err error) { reader := newReader(env, logger) return settings.read(reader) } diff --git a/internal/configuration/health_test.go b/internal/configuration/health_test.go index 264ea9ba..d988ddbe 100644 --- a/internal/configuration/health_test.go +++ b/internal/configuration/health_test.go @@ -139,7 +139,7 @@ func Test_Health_read(t *testing.T) { ctrl := gomock.NewController(t) - env := mock_params.NewMockEnv(ctrl) + env := mock_params.NewMockInterface(ctrl) logger := mock_logging.NewMockLogger(ctrl) env.EXPECT().ListeningAddress("HEALTH_SERVER_ADDRESS", gomock.Any()). diff --git a/internal/configuration/ipvanish_test.go b/internal/configuration/ipvanish_test.go index 50c10a2f..ab51c6fe 100644 --- a/internal/configuration/ipvanish_test.go +++ b/internal/configuration/ipvanish_test.go @@ -119,7 +119,7 @@ func Test_Provider_readIpvanish(t *testing.T) { t.Parallel() ctrl := gomock.NewController(t) - env := mock_params.NewMockEnv(ctrl) + env := mock_params.NewMockInterface(ctrl) if testCase.targetIP.call { env.EXPECT().Get("OPENVPN_TARGET_IP"). Return(testCase.targetIP.value, testCase.targetIP.err) diff --git a/internal/configuration/ivpn_test.go b/internal/configuration/ivpn_test.go index 678612f5..75e8b5fa 100644 --- a/internal/configuration/ivpn_test.go +++ b/internal/configuration/ivpn_test.go @@ -119,7 +119,7 @@ func Test_Provider_readIvpn(t *testing.T) { t.Parallel() ctrl := gomock.NewController(t) - env := mock_params.NewMockEnv(ctrl) + env := mock_params.NewMockInterface(ctrl) if testCase.protocol.call { env.EXPECT().Inside("PROTOCOL", []string{constants.TCP, constants.UDP}, gomock.Any()). Return(testCase.protocol.value, testCase.protocol.err) diff --git a/internal/configuration/mullvad.go b/internal/configuration/mullvad.go index 5f69bbab..4c943222 100644 --- a/internal/configuration/mullvad.go +++ b/internal/configuration/mullvad.go @@ -43,7 +43,7 @@ func (settings *Provider) readMullvad(r reader) (err error) { return settings.ServerSelection.OpenVPN.readMullvad(r.env) } -func (settings *OpenVPNSelection) readMullvad(env params.Env) (err error) { +func (settings *OpenVPNSelection) readMullvad(env params.Interface) (err error) { settings.TCP, err = readProtocol(env) if err != nil { return err diff --git a/internal/configuration/nordvpn.go b/internal/configuration/nordvpn.go index 48f77de3..7e112c9c 100644 --- a/internal/configuration/nordvpn.go +++ b/internal/configuration/nordvpn.go @@ -39,7 +39,7 @@ func (settings *Provider) readNordvpn(r reader) (err error) { return settings.ServerSelection.OpenVPN.readProtocolOnly(r.env) } -func readNordVPNServerNumbers(env params.Env) (numbers []uint16, err error) { +func readNordVPNServerNumbers(env params.Interface) (numbers []uint16, err error) { const possiblePortsCount = 65537 possibilities := make([]string, possiblePortsCount) for i := range possibilities { diff --git a/internal/configuration/openvpn.go b/internal/configuration/openvpn.go index de7e413c..103afc88 100644 --- a/internal/configuration/openvpn.go +++ b/internal/configuration/openvpn.go @@ -176,7 +176,7 @@ func (settings *OpenVPN) read(r reader, serviceProvider string) (err error) { return nil } -func readProtocol(env params.Env) (tcp bool, err error) { +func readProtocol(env params.Interface) (tcp bool, err error) { protocol, err := env.Inside("PROTOCOL", []string{constants.TCP, constants.UDP}, params.Default(constants.UDP)) if err != nil { return false, fmt.Errorf("environment variable PROTOCOL: %w", err) @@ -189,7 +189,7 @@ const openvpnIntfRegexString = `^.*[0-9]$` var openvpnIntfRegexp = regexp.MustCompile(openvpnIntfRegexString) var errInterfaceNameNotValid = errors.New("interface name is not valid") -func readInterface(env params.Env) (intf string, err error) { +func readInterface(env params.Interface) (intf string, err error) { intf, err = env.Get("OPENVPN_INTERFACE", params.Default("tun0")) if err != nil { return "", fmt.Errorf("environment variable OPENVPN_INTERFACE: %w", err) diff --git a/internal/configuration/provider.go b/internal/configuration/provider.go index 7d2a430e..82351463 100644 --- a/internal/configuration/provider.go +++ b/internal/configuration/provider.go @@ -130,7 +130,7 @@ func protoToString(tcp bool) string { return constants.UDP } -func readTargetIP(env params.Env) (targetIP net.IP, err error) { +func readTargetIP(env params.Interface) (targetIP net.IP, err error) { targetIP, err = readIP(env, "OPENVPN_TARGET_IP") if err != nil { return nil, fmt.Errorf("environment variable OPENVPN_TARGET_IP: %w", err) @@ -138,7 +138,7 @@ func readTargetIP(env params.Env) (targetIP net.IP, err error) { return targetIP, nil } -func readOpenVPNCustomPort(env params.Env, tcp bool, +func readOpenVPNCustomPort(env params.Interface, tcp bool, allowedTCP, allowedUDP []uint16) (port uint16, err error) { port, err = readPortOrZero(env, "PORT") if err != nil { @@ -167,7 +167,7 @@ func readOpenVPNCustomPort(env params.Env, tcp bool, ErrInvalidPort, port, portsToString(allowedUDP)) } -func readWireguardCustomPort(env params.Env, allowed []uint16) (port uint16, err error) { +func readWireguardCustomPort(env params.Interface, allowed []uint16) (port uint16, err error) { port, err = readPortOrZero(env, "WIREGUARD_PORT") if err != nil { return 0, fmt.Errorf("environment variable WIREGUARD_PORT: %w", err) diff --git a/internal/configuration/provider_test.go b/internal/configuration/provider_test.go index 98ea4d0c..ac55b915 100644 --- a/internal/configuration/provider_test.go +++ b/internal/configuration/provider_test.go @@ -386,7 +386,7 @@ func Test_readProtocol(t *testing.T) { t.Parallel() ctrl := gomock.NewController(t) - env := mock_params.NewMockEnv(ctrl) + env := mock_params.NewMockInterface(ctrl) env.EXPECT(). Inside("PROTOCOL", []string{"tcp", "udp"}, gomock.Any()). Return(testCase.mockStr, testCase.mockErr) diff --git a/internal/configuration/reader.go b/internal/configuration/reader.go index d656c985..e9722d29 100644 --- a/internal/configuration/reader.go +++ b/internal/configuration/reader.go @@ -13,12 +13,12 @@ import ( ) type reader struct { - env params.Env + env params.Interface logger logging.Logger regex verification.Regex } -func newReader(env params.Env, logger logging.Logger) reader { +func newReader(env params.Interface, logger logging.Logger) reader { return reader{ env: env, logger: logger, @@ -36,7 +36,7 @@ var ( ErrInvalidPort = errors.New("invalid port") ) -func readCSVPorts(env params.Env, key string) (ports []uint16, err error) { +func readCSVPorts(env params.Interface, key string) (ports []uint16, err error) { s, err := env.Get(key) if err != nil { return nil, err @@ -63,7 +63,7 @@ var ( ErrInvalidIPNet = errors.New("invalid IP network") ) -func readCSVIPNets(env params.Env, key string, options ...params.OptionSetter) ( +func readCSVIPNets(env params.Interface, key string, options ...params.OptionSetter) ( ipNets []net.IPNet, err error) { s, err := env.Get(key, options...) if err != nil { @@ -92,7 +92,7 @@ var ( ErrInvalidIP = errors.New("invalid IP address") ) -func readIP(env params.Env, key string) (ip net.IP, err error) { +func readIP(env params.Interface, key string) (ip net.IP, err error) { s, err := env.Get(key) if s == "" { return nil, nil @@ -108,7 +108,7 @@ func readIP(env params.Env, key string) (ip net.IP, err error) { return ip, nil } -func readPortOrZero(env params.Env, key string) (port uint16, err error) { +func readPortOrZero(env params.Interface, key string) (port uint16, err error) { s, err := env.Get(key, params.Default("0")) if err != nil { return 0, err diff --git a/internal/configuration/selection.go b/internal/configuration/selection.go index 4f4ecc60..8dc6e825 100644 --- a/internal/configuration/selection.go +++ b/internal/configuration/selection.go @@ -124,12 +124,12 @@ func (settings *OpenVPNSelection) lines() (lines []string) { return lines } -func (settings *OpenVPNSelection) readProtocolOnly(env params.Env) (err error) { +func (settings *OpenVPNSelection) readProtocolOnly(env params.Interface) (err error) { settings.TCP, err = readProtocol(env) return err } -func (settings *OpenVPNSelection) readProtocolAndPort(env params.Env) (err error) { +func (settings *OpenVPNSelection) readProtocolAndPort(env params.Interface) (err error) { settings.TCP, err = readProtocol(env) if err != nil { return err diff --git a/internal/configuration/settings.go b/internal/configuration/settings.go index cf4906ec..2674a8cf 100644 --- a/internal/configuration/settings.go +++ b/internal/configuration/settings.go @@ -61,7 +61,7 @@ var ( // Read obtains all configuration options for the program and returns an error as soon // as an error is encountered reading them. -func (settings *Settings) Read(env params.Env, logger logging.Logger) (err error) { +func (settings *Settings) Read(env params.Interface, logger logging.Logger) (err error) { r := newReader(env, logger) settings.VersionInformation, err = r.env.OnOff("VERSION_INFORMATION", params.Default("on")) diff --git a/internal/configuration/shadowsocks.go b/internal/configuration/shadowsocks.go index 4d705fa9..fb9f544d 100644 --- a/internal/configuration/shadowsocks.go +++ b/internal/configuration/shadowsocks.go @@ -71,7 +71,7 @@ func (settings *ShadowSocks) read(r reader) (err error) { return nil } -func (settings *ShadowSocks) getAddress(env params.Env) ( +func (settings *ShadowSocks) getAddress(env params.Interface) ( warning string, err error) { address, err := env.Get("SHADOWSOCKS_LISTENING_ADDRESS") if err != nil { diff --git a/internal/configuration/unbound.go b/internal/configuration/unbound.go index c89eeac7..15995dc5 100644 --- a/internal/configuration/unbound.go +++ b/internal/configuration/unbound.go @@ -59,7 +59,7 @@ var ( ErrInvalidDNSOverTLSProvider = errors.New("invalid DNS over TLS provider") ) -func (settings *DNS) readUnboundProviders(env params.Env) (err error) { +func (settings *DNS) readUnboundProviders(env params.Interface) (err error) { s, err := env.Get("DOT_PROVIDERS", params.Default("cloudflare")) if err != nil { return fmt.Errorf("environment variable DOT_PROVIDERS: %w", err) diff --git a/internal/configuration/unbound_test.go b/internal/configuration/unbound_test.go index 20daba8a..fbece04e 100644 --- a/internal/configuration/unbound_test.go +++ b/internal/configuration/unbound_test.go @@ -60,7 +60,7 @@ func Test_DNS_readUnboundProviders(t *testing.T) { ctrl := gomock.NewController(t) - env := mock_params.NewMockEnv(ctrl) + env := mock_params.NewMockInterface(ctrl) env.EXPECT().Get("DOT_PROVIDERS", gomock.Any()). Return(testCase.envValue, testCase.envErr) diff --git a/internal/configuration/vpn.go b/internal/configuration/vpn.go index 1ba3970b..2c447561 100644 --- a/internal/configuration/vpn.go +++ b/internal/configuration/vpn.go @@ -80,7 +80,7 @@ func (settings *VPN) read(r reader) (err error) { return nil } -func (settings VPN) isOpenVPNCustomConfig(env params.Env) (ok bool) { +func (settings VPN) isOpenVPNCustomConfig(env params.Interface) (ok bool) { if settings.Type != constants.OpenVPN { return false } diff --git a/internal/configuration/windscribe.go b/internal/configuration/windscribe.go index 3fa909ea..a93195a5 100644 --- a/internal/configuration/windscribe.go +++ b/internal/configuration/windscribe.go @@ -38,7 +38,7 @@ func (settings *Provider) readWindscribe(r reader) (err error) { return settings.ServerSelection.Wireguard.readWindscribe(r.env) } -func (settings *OpenVPNSelection) readWindscribe(env params.Env) (err error) { +func (settings *OpenVPNSelection) readWindscribe(env params.Interface) (err error) { settings.TCP, err = readProtocol(env) if err != nil { return err @@ -54,7 +54,7 @@ func (settings *OpenVPNSelection) readWindscribe(env params.Env) (err error) { return nil } -func (settings *WireguardSelection) readWindscribe(env params.Env) (err error) { +func (settings *WireguardSelection) readWindscribe(env params.Interface) (err error) { settings.CustomPort, err = readWireguardCustomPort(env, []uint16{53, 80, 123, 443, 1194, 65142}) if err != nil {