MCPcopy
hub / github.com/passteque/gluetun / OpenvpnConfig

Method OpenvpnConfig

internal/cli/openvpnconfig.go:46–92  ·  view source on GitHub ↗
(logger OpenvpnConfigLogger, reader *reader.Reader,
	ipv6Checker IPv6Checker,
)

Source from the content-addressed store, hash-verified

44}
45
46func (c *CLI) OpenvpnConfig(logger OpenvpnConfigLogger, reader *reader.Reader,
47 ipv6Checker IPv6Checker,
48) error {
49 storage, err := storage.New(logger, constants.ServersData)
50 if err != nil {
51 return err
52 }
53
54 var allSettings settings.Settings
55 err = allSettings.Read(reader, logger)
56 if err != nil {
57 return err
58 }
59 allSettings.SetDefaults()
60
61 ipv6Supported, err := ipv6Checker.IsIPv6Supported()
62 if err != nil {
63 return fmt.Errorf("checking for IPv6 support: %w", err)
64 }
65
66 if err = allSettings.Validate(storage, ipv6Supported, logger); err != nil {
67 return fmt.Errorf("validating settings: %w", err)
68 }
69
70 // Unused by this CLI command
71 unzipper := (Unzipper)(nil)
72 client := (*http.Client)(nil)
73 warner := (Warner)(nil)
74 parallelResolver := (ParallelResolver)(nil)
75 ipFetcher := (IPFetcher)(nil)
76 openvpnFileExtractor := extract.New()
77
78 providers := provider.NewProviders(storage, time.Now, warner, client,
79 unzipper, parallelResolver, ipFetcher, openvpnFileExtractor, allSettings.Updater)
80 providerConf := providers.Get(allSettings.VPN.Provider.Name)
81 connection, err := providerConf.GetConnection(
82 allSettings.VPN.Provider.ServerSelection, ipv6Supported)
83 if err != nil {
84 return err
85 }
86
87 lines := providerConf.OpenVPNConfig(connection,
88 allSettings.VPN.OpenVPN, ipv6Supported)
89
90 fmt.Println(strings.Join(lines, "\n"))
91 return nil
92}

Callers

nothing calls this directly

Calls 11

ReadMethod · 0.95
SetDefaultsMethod · 0.95
ValidateMethod · 0.95
GetMethod · 0.95
NewFunction · 0.92
NewFunction · 0.92
NewProvidersFunction · 0.92
IsIPv6SupportedMethod · 0.65
ErrorfMethod · 0.65
GetConnectionMethod · 0.65
OpenVPNConfigMethod · 0.65

Tested by

no test coverage detected