Maint: upgrade qdm12/golibs

This commit is contained in:
Quentin McGaw (laptop)
2021-08-22 20:44:14 +00:00
parent 614eb10d67
commit e4a260f148
25 changed files with 42 additions and 42 deletions

View File

@@ -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:

2
go.mod
View File

@@ -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

4
go.sum
View File

@@ -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=

View File

@@ -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{}

View File

@@ -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
}

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)
}

View File

@@ -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()).

View File

@@ -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)

View File

@@ -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)

View File

@@ -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

View File

@@ -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 {

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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"))

View File

@@ -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 {

View File

@@ -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)

View File

@@ -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)

View File

@@ -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
}

View File

@@ -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 {