Maint: upgrade qdm12/golibs
This commit is contained in:
@@ -72,7 +72,7 @@ func main() {
|
|||||||
tun := tun.New()
|
tun := tun.New()
|
||||||
netLinker := netlink.New()
|
netLinker := netlink.New()
|
||||||
cli := cli.New()
|
cli := cli.New()
|
||||||
env := params.NewEnv()
|
env := params.New()
|
||||||
cmder := command.NewCmder()
|
cmder := command.NewCmder()
|
||||||
|
|
||||||
errorCh := make(chan error)
|
errorCh := make(chan error)
|
||||||
@@ -117,7 +117,7 @@ var (
|
|||||||
|
|
||||||
//nolint:gocognit,gocyclo
|
//nolint:gocognit,gocyclo
|
||||||
func _main(ctx context.Context, buildInfo models.BuildInformation,
|
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,
|
tun tun.Interface, netLinker netlink.NetLinker, cmder command.RunStarter,
|
||||||
cli cli.CLIer) error {
|
cli cli.CLIer) error {
|
||||||
if len(args) > 1 { // cli operation
|
if len(args) > 1 { // cli operation
|
||||||
@@ -127,7 +127,7 @@ func _main(ctx context.Context, buildInfo models.BuildInformation,
|
|||||||
case "clientkey":
|
case "clientkey":
|
||||||
return cli.ClientKey(args[2:])
|
return cli.ClientKey(args[2:])
|
||||||
case "openvpnconfig":
|
case "openvpnconfig":
|
||||||
return cli.OpenvpnConfig(logger)
|
return cli.OpenvpnConfig(logger, env)
|
||||||
case "update":
|
case "update":
|
||||||
return cli.Update(ctx, args[2:], logger)
|
return cli.Update(ctx, args[2:], logger)
|
||||||
default:
|
default:
|
||||||
|
|||||||
2
go.mod
2
go.mod
@@ -6,7 +6,7 @@ require (
|
|||||||
github.com/fatih/color v1.12.0
|
github.com/fatih/color v1.12.0
|
||||||
github.com/golang/mock v1.6.0
|
github.com/golang/mock v1.6.0
|
||||||
github.com/qdm12/dns v1.11.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/goshutdown v0.1.0
|
||||||
github.com/qdm12/gosplash v0.1.0
|
github.com/qdm12/gosplash v0.1.0
|
||||||
github.com/qdm12/ss-server v0.3.0
|
github.com/qdm12/ss-server v0.3.0
|
||||||
|
|||||||
4
go.sum
4
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/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-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-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-20210822203818-5c568b0777b6 h1:bge5AL7cjHJMPz+5IOz5yF01q/l8No6+lIEBieA8gMg=
|
||||||
github.com/qdm12/golibs v0.0.0-20210819192647-0793e710c4e2/go.mod h1:6aRbg4Z/bTbm9JfxsGXfWKHi7zsOvPfUTK1S5HuAFKg=
|
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 h1:lmwnygdXtnr2pa6VqfR/bm8077/BnBef1+7CP96B7Sw=
|
||||||
github.com/qdm12/goshutdown v0.1.0/go.mod h1:/LP3MWLqI+wGH/ijfaUG+RHzBbKXIiVKnrg5vXOCf6Q=
|
github.com/qdm12/goshutdown v0.1.0/go.mod h1:/LP3MWLqI+wGH/ijfaUG+RHzBbKXIiVKnrg5vXOCf6Q=
|
||||||
github.com/qdm12/gosplash v0.1.0 h1:Sfl+zIjFZFP7b0iqf2l5UkmEY97XBnaKkH3FNY6Gf7g=
|
github.com/qdm12/gosplash v0.1.0 h1:Sfl+zIjFZFP7b0iqf2l5UkmEY97XBnaKkH3FNY6Gf7g=
|
||||||
|
|||||||
@@ -13,10 +13,10 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type HealthChecker interface {
|
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 {
|
logger logging.Logger) error {
|
||||||
// Extract the health server port from the configuration.
|
// Extract the health server port from the configuration.
|
||||||
config := configuration.Health{}
|
config := configuration.Health{}
|
||||||
|
|||||||
@@ -14,12 +14,12 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type OpenvpnConfigMaker interface {
|
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
|
var allSettings configuration.Settings
|
||||||
err := allSettings.Read(params.NewEnv(), logger)
|
err := allSettings.Read(env, logger)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ var (
|
|||||||
ErrDNSAddressNotAnIP = errors.New("DNS plaintext address is not an IP address")
|
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"))
|
s, err := env.Get("DNS_PLAINTEXT_ADDRESS", params.Default("1.1.1.1"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("environment variable DNS_PLAINTEXT_ADDRESS: %w", err)
|
return fmt.Errorf("environment variable DNS_PLAINTEXT_ADDRESS: %w", err)
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ var (
|
|||||||
ErrInvalidPrivateAddress = errors.New("private address is not a valid IP or CIDR range")
|
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")
|
privateAddresses, err := env.CSV("DOT_PRIVATE_ADDRESS")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("environment variable DOT_PRIVATE_ADDRESS: %w", err)
|
return fmt.Errorf("environment variable DOT_PRIVATE_ADDRESS: %w", err)
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ func (settings *Firewall) read(r reader) (err error) {
|
|||||||
return settings.readOutboundSubnets(r)
|
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")
|
settings.VPNInputPorts, err = readCSVPorts(env, "FIREWALL_VPN_INPUT_PORTS")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("environment variable FIREWALL_VPN_INPUT_PORTS: %w", err)
|
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
|
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")
|
settings.InputPorts, err = readCSVPorts(env, "FIREWALL_INPUT_PORTS")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("environment variable FIREWALL_INPUT_PORTS: %w", err)
|
return fmt.Errorf("environment variable FIREWALL_INPUT_PORTS: %w", err)
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ func (settings *Health) lines() (lines []string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Read is to be used for the healthcheck query mode.
|
// 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)
|
reader := newReader(env, logger)
|
||||||
return settings.read(reader)
|
return settings.read(reader)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ func Test_Health_read(t *testing.T) {
|
|||||||
|
|
||||||
ctrl := gomock.NewController(t)
|
ctrl := gomock.NewController(t)
|
||||||
|
|
||||||
env := mock_params.NewMockEnv(ctrl)
|
env := mock_params.NewMockInterface(ctrl)
|
||||||
logger := mock_logging.NewMockLogger(ctrl)
|
logger := mock_logging.NewMockLogger(ctrl)
|
||||||
|
|
||||||
env.EXPECT().ListeningAddress("HEALTH_SERVER_ADDRESS", gomock.Any()).
|
env.EXPECT().ListeningAddress("HEALTH_SERVER_ADDRESS", gomock.Any()).
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ func Test_Provider_readIpvanish(t *testing.T) {
|
|||||||
t.Parallel()
|
t.Parallel()
|
||||||
ctrl := gomock.NewController(t)
|
ctrl := gomock.NewController(t)
|
||||||
|
|
||||||
env := mock_params.NewMockEnv(ctrl)
|
env := mock_params.NewMockInterface(ctrl)
|
||||||
if testCase.targetIP.call {
|
if testCase.targetIP.call {
|
||||||
env.EXPECT().Get("OPENVPN_TARGET_IP").
|
env.EXPECT().Get("OPENVPN_TARGET_IP").
|
||||||
Return(testCase.targetIP.value, testCase.targetIP.err)
|
Return(testCase.targetIP.value, testCase.targetIP.err)
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ func Test_Provider_readIvpn(t *testing.T) {
|
|||||||
t.Parallel()
|
t.Parallel()
|
||||||
ctrl := gomock.NewController(t)
|
ctrl := gomock.NewController(t)
|
||||||
|
|
||||||
env := mock_params.NewMockEnv(ctrl)
|
env := mock_params.NewMockInterface(ctrl)
|
||||||
if testCase.protocol.call {
|
if testCase.protocol.call {
|
||||||
env.EXPECT().Inside("PROTOCOL", []string{constants.TCP, constants.UDP}, gomock.Any()).
|
env.EXPECT().Inside("PROTOCOL", []string{constants.TCP, constants.UDP}, gomock.Any()).
|
||||||
Return(testCase.protocol.value, testCase.protocol.err)
|
Return(testCase.protocol.value, testCase.protocol.err)
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ func (settings *Provider) readMullvad(r reader) (err error) {
|
|||||||
return settings.ServerSelection.OpenVPN.readMullvad(r.env)
|
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)
|
settings.TCP, err = readProtocol(env)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ func (settings *Provider) readNordvpn(r reader) (err error) {
|
|||||||
return settings.ServerSelection.OpenVPN.readProtocolOnly(r.env)
|
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
|
const possiblePortsCount = 65537
|
||||||
possibilities := make([]string, possiblePortsCount)
|
possibilities := make([]string, possiblePortsCount)
|
||||||
for i := range possibilities {
|
for i := range possibilities {
|
||||||
|
|||||||
@@ -176,7 +176,7 @@ func (settings *OpenVPN) read(r reader, serviceProvider string) (err error) {
|
|||||||
return nil
|
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))
|
protocol, err := env.Inside("PROTOCOL", []string{constants.TCP, constants.UDP}, params.Default(constants.UDP))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, fmt.Errorf("environment variable PROTOCOL: %w", err)
|
return false, fmt.Errorf("environment variable PROTOCOL: %w", err)
|
||||||
@@ -189,7 +189,7 @@ const openvpnIntfRegexString = `^.*[0-9]$`
|
|||||||
var openvpnIntfRegexp = regexp.MustCompile(openvpnIntfRegexString)
|
var openvpnIntfRegexp = regexp.MustCompile(openvpnIntfRegexString)
|
||||||
var errInterfaceNameNotValid = errors.New("interface name is not valid")
|
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"))
|
intf, err = env.Get("OPENVPN_INTERFACE", params.Default("tun0"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", fmt.Errorf("environment variable OPENVPN_INTERFACE: %w", err)
|
return "", fmt.Errorf("environment variable OPENVPN_INTERFACE: %w", err)
|
||||||
|
|||||||
@@ -130,7 +130,7 @@ func protoToString(tcp bool) string {
|
|||||||
return constants.UDP
|
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")
|
targetIP, err = readIP(env, "OPENVPN_TARGET_IP")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("environment variable OPENVPN_TARGET_IP: %w", err)
|
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
|
return targetIP, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func readOpenVPNCustomPort(env params.Env, tcp bool,
|
func readOpenVPNCustomPort(env params.Interface, tcp bool,
|
||||||
allowedTCP, allowedUDP []uint16) (port uint16, err error) {
|
allowedTCP, allowedUDP []uint16) (port uint16, err error) {
|
||||||
port, err = readPortOrZero(env, "PORT")
|
port, err = readPortOrZero(env, "PORT")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -167,7 +167,7 @@ func readOpenVPNCustomPort(env params.Env, tcp bool,
|
|||||||
ErrInvalidPort, port, portsToString(allowedUDP))
|
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")
|
port, err = readPortOrZero(env, "WIREGUARD_PORT")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, fmt.Errorf("environment variable WIREGUARD_PORT: %w", err)
|
return 0, fmt.Errorf("environment variable WIREGUARD_PORT: %w", err)
|
||||||
|
|||||||
@@ -386,7 +386,7 @@ func Test_readProtocol(t *testing.T) {
|
|||||||
t.Parallel()
|
t.Parallel()
|
||||||
ctrl := gomock.NewController(t)
|
ctrl := gomock.NewController(t)
|
||||||
|
|
||||||
env := mock_params.NewMockEnv(ctrl)
|
env := mock_params.NewMockInterface(ctrl)
|
||||||
env.EXPECT().
|
env.EXPECT().
|
||||||
Inside("PROTOCOL", []string{"tcp", "udp"}, gomock.Any()).
|
Inside("PROTOCOL", []string{"tcp", "udp"}, gomock.Any()).
|
||||||
Return(testCase.mockStr, testCase.mockErr)
|
Return(testCase.mockStr, testCase.mockErr)
|
||||||
|
|||||||
@@ -13,12 +13,12 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type reader struct {
|
type reader struct {
|
||||||
env params.Env
|
env params.Interface
|
||||||
logger logging.Logger
|
logger logging.Logger
|
||||||
regex verification.Regex
|
regex verification.Regex
|
||||||
}
|
}
|
||||||
|
|
||||||
func newReader(env params.Env, logger logging.Logger) reader {
|
func newReader(env params.Interface, logger logging.Logger) reader {
|
||||||
return reader{
|
return reader{
|
||||||
env: env,
|
env: env,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
@@ -36,7 +36,7 @@ var (
|
|||||||
ErrInvalidPort = errors.New("invalid port")
|
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)
|
s, err := env.Get(key)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -63,7 +63,7 @@ var (
|
|||||||
ErrInvalidIPNet = errors.New("invalid IP network")
|
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) {
|
ipNets []net.IPNet, err error) {
|
||||||
s, err := env.Get(key, options...)
|
s, err := env.Get(key, options...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -92,7 +92,7 @@ var (
|
|||||||
ErrInvalidIP = errors.New("invalid IP address")
|
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)
|
s, err := env.Get(key)
|
||||||
if s == "" {
|
if s == "" {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
@@ -108,7 +108,7 @@ func readIP(env params.Env, key string) (ip net.IP, err error) {
|
|||||||
return ip, nil
|
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"))
|
s, err := env.Get(key, params.Default("0"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
|
|||||||
@@ -124,12 +124,12 @@ func (settings *OpenVPNSelection) lines() (lines []string) {
|
|||||||
return lines
|
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)
|
settings.TCP, err = readProtocol(env)
|
||||||
return err
|
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)
|
settings.TCP, err = readProtocol(env)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ var (
|
|||||||
|
|
||||||
// Read obtains all configuration options for the program and returns an error as soon
|
// Read obtains all configuration options for the program and returns an error as soon
|
||||||
// as an error is encountered reading them.
|
// 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)
|
r := newReader(env, logger)
|
||||||
|
|
||||||
settings.VersionInformation, err = r.env.OnOff("VERSION_INFORMATION", params.Default("on"))
|
settings.VersionInformation, err = r.env.OnOff("VERSION_INFORMATION", params.Default("on"))
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ func (settings *ShadowSocks) read(r reader) (err error) {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (settings *ShadowSocks) getAddress(env params.Env) (
|
func (settings *ShadowSocks) getAddress(env params.Interface) (
|
||||||
warning string, err error) {
|
warning string, err error) {
|
||||||
address, err := env.Get("SHADOWSOCKS_LISTENING_ADDRESS")
|
address, err := env.Get("SHADOWSOCKS_LISTENING_ADDRESS")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ var (
|
|||||||
ErrInvalidDNSOverTLSProvider = errors.New("invalid DNS over TLS provider")
|
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"))
|
s, err := env.Get("DOT_PROVIDERS", params.Default("cloudflare"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("environment variable DOT_PROVIDERS: %w", err)
|
return fmt.Errorf("environment variable DOT_PROVIDERS: %w", err)
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ func Test_DNS_readUnboundProviders(t *testing.T) {
|
|||||||
|
|
||||||
ctrl := gomock.NewController(t)
|
ctrl := gomock.NewController(t)
|
||||||
|
|
||||||
env := mock_params.NewMockEnv(ctrl)
|
env := mock_params.NewMockInterface(ctrl)
|
||||||
env.EXPECT().Get("DOT_PROVIDERS", gomock.Any()).
|
env.EXPECT().Get("DOT_PROVIDERS", gomock.Any()).
|
||||||
Return(testCase.envValue, testCase.envErr)
|
Return(testCase.envValue, testCase.envErr)
|
||||||
|
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ func (settings *VPN) read(r reader) (err error) {
|
|||||||
return nil
|
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 {
|
if settings.Type != constants.OpenVPN {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ func (settings *Provider) readWindscribe(r reader) (err error) {
|
|||||||
return settings.ServerSelection.Wireguard.readWindscribe(r.env)
|
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)
|
settings.TCP, err = readProtocol(env)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -54,7 +54,7 @@ func (settings *OpenVPNSelection) readWindscribe(env params.Env) (err error) {
|
|||||||
return nil
|
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,
|
settings.CustomPort, err = readWireguardCustomPort(env,
|
||||||
[]uint16{53, 80, 123, 443, 1194, 65142})
|
[]uint16{53, 80, 123, 443, 1194, 65142})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user