SYMBOL INDEX (2510 symbols across 737 files) FILE: ci/cmd/main.go function main (line 13) | func main() { FILE: ci/internal/mullvad.go function MullvadTest (line 8) | func MullvadTest(ctx context.Context, logger Logger) error { FILE: ci/internal/protonvpn.go function ProtonVPNTest (line 8) | func ProtonVPNTest(ctx context.Context, logger Logger) error { FILE: ci/internal/secrets.go type Logger (line 11) | type Logger interface function readSecrets (line 16) | func readSecrets(ctx context.Context, expectedSecrets []string, FILE: ci/internal/simple.go function ptrTo (line 17) | func ptrTo[T any](v T) *T { return &v } function simpleTest (line 19) | func simpleTest(ctx context.Context, env []string, logger Logger) error { function stopContainer (line 63) | func stopContainer(client *client.Client, containerID string) { function waitForLogLine (line 76) | func waitForLogLine(ctx context.Context, client *client.Client, containe... function logSeenLines (line 129) | func logSeenLines(logger Logger, lines []string) { FILE: cmd/gluetun/main.go function main (line 68) | func main() { function _main (line 148) | func _main(ctx context.Context, buildInfo models.BuildInformation, type printVersionElement (line 540) | type printVersionElement struct type infoer (line 545) | type infoer interface function printVersions (line 549) | func printVersions(ctx context.Context, logger infoer, function localNetworksToPrefixes (line 567) | func localNetworksToPrefixes(localNetworks []routing.LocalNetwork) (pref... type netLinker (line 575) | type netLinker interface type Addresser (line 586) | type Addresser interface type Router (line 592) | type Router interface type Ruler (line 599) | type Ruler interface type Linker (line 605) | type Linker interface type clier (line 616) | type clier interface type Tun (line 625) | type Tun interface type RunStarter (line 630) | type RunStarter interface constant gluetunLogo (line 638) | gluetunLogo = ` @@@ FILE: internal/alpine/alpine.go type Alpine (line 7) | type Alpine struct function New (line 14) | func New() *Alpine { FILE: internal/alpine/users.go method CreateUser (line 15) | func (a *Alpine) CreateUser(username string, uid int) (createdUsername s... FILE: internal/alpine/version.go method Version (line 10) | func (a *Alpine) Version(context.Context) (version string, err error) { FILE: internal/amneziawg/constructor.go type Amneziawg (line 3) | type Amneziawg struct function New (line 9) | func New(settings Settings, netlink NetLinker, FILE: internal/amneziawg/constructor_test.go function Test_New (line 13) | func Test_New(t *testing.T) { FILE: internal/amneziawg/helpers_test.go function ptrTo (line 3) | func ptrTo[T any](v T) *T { FILE: internal/amneziawg/log.go type Logger (line 5) | type Logger interface FILE: internal/amneziawg/log_mock_test.go type MockLogger (line 14) | type MockLogger struct method EXPECT (line 32) | func (m *MockLogger) EXPECT() *MockLoggerMockRecorder { method Debug (line 37) | func (m *MockLogger) Debug(arg0 string) { method Debugf (line 49) | func (m *MockLogger) Debugf(arg0 string, arg1 ...interface{}) { method Error (line 66) | func (m *MockLogger) Error(arg0 string) { method Errorf (line 78) | func (m *MockLogger) Errorf(arg0 string, arg1 ...interface{}) { method Info (line 95) | func (m *MockLogger) Info(arg0 string) { type MockLoggerMockRecorder (line 20) | type MockLoggerMockRecorder struct method Debug (line 43) | func (mr *MockLoggerMockRecorder) Debug(arg0 interface{}) *gomock.Call { method Debugf (line 59) | func (mr *MockLoggerMockRecorder) Debugf(arg0 interface{}, arg1 ...int... method Error (line 72) | func (mr *MockLoggerMockRecorder) Error(arg0 interface{}) *gomock.Call { method Errorf (line 88) | func (mr *MockLoggerMockRecorder) Errorf(arg0 interface{}, arg1 ...int... method Info (line 101) | func (mr *MockLoggerMockRecorder) Info(arg0 interface{}) *gomock.Call { function NewMockLogger (line 25) | func NewMockLogger(ctrl *gomock.Controller) *MockLogger { FILE: internal/amneziawg/netlinker.go type NetLinker (line 11) | type NetLinker interface type Router (line 19) | type Router interface type Ruler (line 24) | type Ruler interface type Linker (line 29) | type Linker interface FILE: internal/amneziawg/netlinker_mock_test.go type MockNetLinker (line 16) | type MockNetLinker struct method EXPECT (line 34) | func (m *MockNetLinker) EXPECT() *MockNetLinkerMockRecorder { method AddrReplace (line 39) | func (m *MockNetLinker) AddrReplace(arg0 uint32, arg1 netip.Prefix) er... method IsWireguardSupported (line 53) | func (m *MockNetLinker) IsWireguardSupported() (bool, error) { method LinkAdd (line 68) | func (m *MockNetLinker) LinkAdd(arg0 netlink.Link) (uint32, error) { method LinkByName (line 83) | func (m *MockNetLinker) LinkByName(arg0 string) (netlink.Link, error) { method LinkDel (line 98) | func (m *MockNetLinker) LinkDel(arg0 uint32) error { method LinkList (line 112) | func (m *MockNetLinker) LinkList() ([]netlink.Link, error) { method LinkSetDown (line 127) | func (m *MockNetLinker) LinkSetDown(arg0 uint32) error { method LinkSetUp (line 141) | func (m *MockNetLinker) LinkSetUp(arg0 uint32) error { method RouteAdd (line 155) | func (m *MockNetLinker) RouteAdd(arg0 netlink.Route) error { method RouteList (line 169) | func (m *MockNetLinker) RouteList(arg0 byte) ([]netlink.Route, error) { method RuleAdd (line 184) | func (m *MockNetLinker) RuleAdd(arg0 netlink.Rule) error { method RuleDel (line 198) | func (m *MockNetLinker) RuleDel(arg0 netlink.Rule) error { type MockNetLinkerMockRecorder (line 22) | type MockNetLinkerMockRecorder struct method AddrReplace (line 47) | func (mr *MockNetLinkerMockRecorder) AddrReplace(arg0, arg1 interface{... method IsWireguardSupported (line 62) | func (mr *MockNetLinkerMockRecorder) IsWireguardSupported() *gomock.Ca... method LinkAdd (line 77) | func (mr *MockNetLinkerMockRecorder) LinkAdd(arg0 interface{}) *gomock... method LinkByName (line 92) | func (mr *MockNetLinkerMockRecorder) LinkByName(arg0 interface{}) *gom... method LinkDel (line 106) | func (mr *MockNetLinkerMockRecorder) LinkDel(arg0 interface{}) *gomock... method LinkList (line 121) | func (mr *MockNetLinkerMockRecorder) LinkList() *gomock.Call { method LinkSetDown (line 135) | func (mr *MockNetLinkerMockRecorder) LinkSetDown(arg0 interface{}) *go... method LinkSetUp (line 149) | func (mr *MockNetLinkerMockRecorder) LinkSetUp(arg0 interface{}) *gomo... method RouteAdd (line 163) | func (mr *MockNetLinkerMockRecorder) RouteAdd(arg0 interface{}) *gomoc... method RouteList (line 178) | func (mr *MockNetLinkerMockRecorder) RouteList(arg0 interface{}) *gomo... method RuleAdd (line 192) | func (mr *MockNetLinkerMockRecorder) RuleAdd(arg0 interface{}) *gomock... method RuleDel (line 206) | func (mr *MockNetLinkerMockRecorder) RuleDel(arg0 interface{}) *gomock... function NewMockNetLinker (line 27) | func NewMockNetLinker(ctrl *gomock.Controller) *MockNetLinker { FILE: internal/amneziawg/run.go method Run (line 26) | func (a *Amneziawg) Run(ctx context.Context, waitError chan<- error, rea... function setupUserspace (line 37) | func setupUserspace(ctx context.Context, function acceptAndHandle (line 122) | func acceptAndHandle(uapi net.Listener, device *amneziadevice.Device, FILE: internal/amneziawg/settings.go type Settings (line 10) | type Settings struct method uapiConfig (line 30) | func (s Settings) uapiConfig() string { method SetDefaults (line 63) | func (s *Settings) SetDefaults() { method Check (line 67) | func (s *Settings) Check() error { FILE: internal/boringpoll/boringpoll.go type BoringPoll (line 15) | type BoringPoll struct method Start (line 43) | func (b *BoringPoll) Start() (runError <-chan error, err error) { method Stop (line 161) | func (b *BoringPoll) Stop() error { type urlData (line 29) | type urlData struct function New (line 31) | func New(client *http.Client, logger Logger, settings settings.BoringPol... function fetchURL (line 114) | func fetchURL(ctx context.Context, client *http.Client, url string) (dow... function getRandomUserAgent (line 140) | func getRandomUserAgent() string { function byteCountSI (line 175) | func byteCountSI(b uint64) string { FILE: internal/boringpoll/interfaces.go type Logger (line 3) | type Logger interface FILE: internal/cleanup/cleanup.go type Cleanups (line 5) | type Cleanups method Add (line 18) | func (c *Cleanups) Add(operation string, orderIndex uint, method Cleanup (line 33) | func (c *Cleanups) Cleanup(logger Logger) { type cleanup (line 7) | type cleanup struct FILE: internal/cleanup/cleanup_test.go function Test_Cleanups (line 11) | func Test_Cleanups(t *testing.T) { FILE: internal/cleanup/interfaces.go type Logger (line 3) | type Logger interface FILE: internal/cleanup/mocks_test.go type MockLogger (line 14) | type MockLogger struct method EXPECT (line 32) | func (m *MockLogger) EXPECT() *MockLoggerMockRecorder { method Debug (line 37) | func (m *MockLogger) Debug(arg0 string) { method Error (line 49) | func (m *MockLogger) Error(arg0 string) { type MockLoggerMockRecorder (line 20) | type MockLoggerMockRecorder struct method Debug (line 43) | func (mr *MockLoggerMockRecorder) Debug(arg0 interface{}) *gomock.Call { method Error (line 55) | func (mr *MockLoggerMockRecorder) Error(arg0 interface{}) *gomock.Call { function NewMockLogger (line 25) | func NewMockLogger(ctrl *gomock.Controller) *MockLogger { FILE: internal/cli/ci.go method CI (line 5) | func (c *CLI) CI(context.Context) error { FILE: internal/cli/cli.go type CLI (line 3) | type CLI struct function New (line 7) | func New() *CLI { FILE: internal/cli/clientkey.go method ClientKey (line 11) | func (c *CLI) ClientKey(args []string) error { FILE: internal/cli/formatservers.go function addProviderFlag (line 24) | func addProviderFlag(flagSet *flag.FlagSet, providerToFormat map[string]... method FormatServers (line 34) | func (c *CLI) FormatServers(args []string) error { FILE: internal/cli/genkey.go method GenKey (line 9) | func (c *CLI) GenKey(args []string) (err error) { function base58Encode (line 27) | func base58Encode(data []byte) string { FILE: internal/cli/healthcheck.go method HealthCheck (line 14) | func (c *CLI) HealthCheck(ctx context.Context, reader *reader.Reader, _ ... FILE: internal/cli/interfaces.go type Source (line 5) | type Source interface FILE: internal/cli/nooplogger.go type noopLogger (line 3) | type noopLogger struct method Info (line 9) | func (l *noopLogger) Info(string) {} method Warn (line 10) | func (l *noopLogger) Warn(string) {} function newNoopLogger (line 5) | func newNoopLogger() *noopLogger { FILE: internal/cli/openvpnconfig.go type OpenvpnConfigLogger (line 21) | type OpenvpnConfigLogger interface type Unzipper (line 26) | type Unzipper interface type ParallelResolver (line 31) | type ParallelResolver interface type IPFetcher (line 36) | type IPFetcher interface type IPv6Checker (line 42) | type IPv6Checker interface method OpenvpnConfig (line 46) | func (c *CLI) OpenvpnConfig(logger OpenvpnConfigLogger, reader *reader.R... FILE: internal/cli/update.go type UpdaterLogger (line 34) | type UpdaterLogger interface method Update (line 40) | func (c *CLI) Update(ctx context.Context, args []string, logger UpdaterL... FILE: internal/cli/warner.go type Warner (line 3) | type Warner interface FILE: internal/command/cmder.go type Cmder (line 4) | type Cmder struct function New (line 6) | func New() *Cmder { FILE: internal/command/interfaces.go type Logger (line 3) | type Logger interface FILE: internal/command/interfaces_local.go type execCmd (line 5) | type execCmd interface FILE: internal/command/mocks_local_test.go type MockexecCmd (line 15) | type MockexecCmd struct method EXPECT (line 33) | func (m *MockexecCmd) EXPECT() *MockexecCmdMockRecorder { method CombinedOutput (line 38) | func (m *MockexecCmd) CombinedOutput() ([]byte, error) { method Start (line 53) | func (m *MockexecCmd) Start() error { method StderrPipe (line 67) | func (m *MockexecCmd) StderrPipe() (io.ReadCloser, error) { method StdoutPipe (line 82) | func (m *MockexecCmd) StdoutPipe() (io.ReadCloser, error) { method Wait (line 97) | func (m *MockexecCmd) Wait() error { type MockexecCmdMockRecorder (line 21) | type MockexecCmdMockRecorder struct method CombinedOutput (line 47) | func (mr *MockexecCmdMockRecorder) CombinedOutput() *gomock.Call { method Start (line 61) | func (mr *MockexecCmdMockRecorder) Start() *gomock.Call { method StderrPipe (line 76) | func (mr *MockexecCmdMockRecorder) StderrPipe() *gomock.Call { method StdoutPipe (line 91) | func (mr *MockexecCmdMockRecorder) StdoutPipe() *gomock.Call { method Wait (line 105) | func (mr *MockexecCmdMockRecorder) Wait() *gomock.Call { function NewMockexecCmd (line 26) | func NewMockexecCmd(ctrl *gomock.Controller) *MockexecCmd { FILE: internal/command/run.go method Run (line 10) | func (c *Cmder) Run(cmd *exec.Cmd) (output string, err error) { function run (line 14) | func run(cmd execCmd) (output string, err error) { function stringToLines (line 27) | func stringToLines(s string) (lines []string) { FILE: internal/command/run_test.go function Test_run (line 12) | func Test_run(t *testing.T) { FILE: internal/command/split.go function split (line 26) | func split(command string) (words []string, err error) { function splitWord (line 65) | func splitWord(input string, startIndex int, buffer *bytes.Buffer) ( function handleDoubleQuoted (line 97) | func handleDoubleQuoted(input string, startIndex int, buffer *bytes.Buff... function handleSingleQuoted (line 125) | func handleSingleQuoted(input string, startIndex int, buffer *bytes.Buff... function handleEscaped (line 138) | func handleEscaped(input string, startIndex int, buffer *bytes.Buffer) ( FILE: internal/command/split_test.go function Test_split (line 9) | func Test_split(t *testing.T) { FILE: internal/command/start.go method Start (line 14) | func (c *Cmder) Start(cmd *exec.Cmd) ( function start (line 21) | func start(cmd execCmd) (stdoutLines, stderrLines <-chan string, function streamToChannel (line 71) | func streamToChannel(ready chan<- struct{}, FILE: internal/command/start_test.go function linesToReadCloser (line 15) | func linesToReadCloser(lines []string) io.ReadCloser { function Test_start (line 20) | func Test_start(t *testing.T) { FILE: internal/command/startnlog.go method RunAndLog (line 9) | func (c *Cmder) RunAndLog(ctx context.Context, command string, logger Lo... function streamLines (line 31) | func streamLines(ctx context.Context, done chan<- struct{}, FILE: internal/configuration/settings/amneziawg.go type AmneziaWg (line 14) | type AmneziaWg struct method read (line 36) | func (a *AmneziaWg) read(r *reader.Reader) (err error) { method copy (line 76) | func (a AmneziaWg) copy() (copied AmneziaWg) { method overrideWith (line 98) | func (a *AmneziaWg) overrideWith(other AmneziaWg) { method setDefaults (line 118) | func (a *AmneziaWg) setDefaults(vpnProvider string) { method toLinesNode (line 139) | func (a AmneziaWg) toLinesNode() (node *gotree.Node) { method validate (line 188) | func (a AmneziaWg) validate(vpnProvider string, ipv6Supported bool) er... FILE: internal/configuration/settings/boringpoll.go type BoringPoll (line 9) | type BoringPoll struct method validate (line 13) | func (b BoringPoll) validate() error { method Copy (line 17) | func (b BoringPoll) Copy() BoringPoll { method overrideWith (line 23) | func (b *BoringPoll) overrideWith(other BoringPoll) { method setDefaults (line 27) | func (b *BoringPoll) setDefaults() { method String (line 31) | func (b BoringPoll) String() string { method toLinesNode (line 35) | func (b BoringPoll) toLinesNode() *gotree.Node { method read (line 45) | func (b *BoringPoll) read(r *reader.Reader) (err error) { FILE: internal/configuration/settings/deprecated.go function readObsolete (line 10) | func readObsolete(r *reader.Reader) (warnings []string) { FILE: internal/configuration/settings/dns.go constant DNSUpstreamTypeDot (line 18) | DNSUpstreamTypeDot = "dot" constant DNSUpstreamTypeDoh (line 19) | DNSUpstreamTypeDoh = "doh" constant DNSUpstreamTypePlain (line 20) | DNSUpstreamTypePlain = "plain" type DNS (line 24) | type DNS struct method validate (line 61) | func (d DNS) validate() (err error) { method Copy (line 108) | func (d *DNS) Copy() (copied DNS) { method overrideWith (line 123) | func (d *DNS) overrideWith(other DNS) { method setDefaults (line 133) | func (d *DNS) setDefaults() { method GetFirstPlaintextIPv4 (line 154) | func (d DNS) GetFirstPlaintextIPv4() (ipv4 netip.Addr) { method String (line 194) | func (d DNS) String() string { method toLinesNode (line 198) | func (d DNS) toLinesNode() (node *gotree.Node) { method read (line 232) | func (d *DNS) read(r *reader.Reader) (err error) { method readUpstreamPlainAddresses (line 265) | func (d *DNS) readUpstreamPlainAddresses(r *reader.Reader) (err error) { function defaultDNSProviders (line 148) | func defaultDNSProviders() []string { function findPlainIPv4InProviders (line 178) | func findPlainIPv4InProviders(providerNames []string) netip.Addr { FILE: internal/configuration/settings/dns_test.go function Test_defaultDNSProviders (line 10) | func Test_defaultDNSProviders(t *testing.T) { FILE: internal/configuration/settings/dnsblacklist.go type DNSBlacklist (line 17) | type DNSBlacklist struct method setDefaults (line 32) | func (b *DNSBlacklist) setDefaults() { method validate (line 46) | func (b DNSBlacklist) validate() (err error) { method copy (line 71) | func (b DNSBlacklist) copy() (copied DNSBlacklist) { method overrideWith (line 84) | func (b *DNSBlacklist) overrideWith(other DNSBlacklist) { method ToBlockBuilderSettings (line 96) | func (b DNSBlacklist) ToBlockBuilderSettings(client *http.Client) ( method String (line 111) | func (b DNSBlacklist) String() string { method toLinesNode (line 115) | func (b DNSBlacklist) toLinesNode() (node *gotree.Node) { method read (line 160) | func (b *DNSBlacklist) read(r *reader.Reader) (err error) { function readDNSBlockedIPs (line 189) | func readDNSBlockedIPs(r *reader.Reader) (ips []netip.Addr, function readDNSPrivateAddresses (line 214) | func readDNSPrivateAddresses(r *reader.Reader) (ips []netip.Addr, FILE: internal/configuration/settings/firewall.go type Firewall (line 13) | type Firewall struct method validate (line 21) | func (f Firewall) validate() (err error) { method copy (line 53) | func (f *Firewall) copy() (copied Firewall) { method overrideWith (line 66) | func (f *Firewall) overrideWith(other Firewall) { method setDefaults (line 74) | func (f *Firewall) setDefaults(globalLogLevel string) { method String (line 79) | func (f Firewall) String() string { method toLinesNode (line 83) | func (f Firewall) toLinesNode() (node *gotree.Node) { method read (line 117) | func (f *Firewall) read(r *reader.Reader) (err error) { function hasZeroPort (line 44) | func hasZeroPort(ports []uint16) (has bool) { FILE: internal/configuration/settings/firewall_test.go function Test_Firewall_validate (line 11) | func Test_Firewall_validate(t *testing.T) { FILE: internal/configuration/settings/health.go type Health (line 16) | type Health struct method Validate (line 47) | func (h Health) Validate() (err error) { method copy (line 71) | func (h *Health) copy() (copied Health) { method OverrideWith (line 84) | func (h *Health) OverrideWith(other Health) { method SetDefaults (line 92) | func (h *Health) SetDefaults() { method String (line 103) | func (h Health) String() string { method toLinesNode (line 107) | func (h Health) toLinesNode() (node *gotree.Node) { method Read (line 132) | func (h *Health) Read(r *reader.Reader) (err error) { FILE: internal/configuration/settings/helpers.go function ptrTo (line 3) | func ptrTo[T any](value T) *T { FILE: internal/configuration/settings/helpers/belong.go function IsOneOf (line 3) | func IsOneOf[T comparable](value T, choices ...T) (ok bool) { FILE: internal/configuration/settings/helpers_test.go type sourceKeyValue (line 5) | type sourceKeyValue struct function newMockSource (line 10) | func newMockSource(ctrl *gomock.Controller, keyValues []sourceKeyValue) ... FILE: internal/configuration/settings/httpproxy.go type HTTPProxy (line 16) | type HTTPProxy struct method validate (line 47) | func (h HTTPProxy) validate() (err error) { method copy (line 57) | func (h *HTTPProxy) copy() (copied HTTPProxy) { method overrideWith (line 73) | func (h *HTTPProxy) overrideWith(other HTTPProxy) { method setDefaults (line 84) | func (h *HTTPProxy) setDefaults() { method String (line 97) | func (h HTTPProxy) String() string { method toLinesNode (line 101) | func (h HTTPProxy) toLinesNode() (node *gotree.Node) { method read (line 119) | func (h *HTTPProxy) read(r *reader.Reader) (err error) { function readHTTProxyListeningAddress (line 151) | func readHTTProxyListeningAddress(r *reader.Reader) (listeningAddress st... function readHTTProxyLog (line 165) | func readHTTProxyLog(r *reader.Reader) (enabled *bool, err error) { FILE: internal/configuration/settings/interfaces.go type Warner (line 3) | type Warner interface FILE: internal/configuration/settings/iptables.go type Iptables (line 13) | type Iptables struct method validate (line 17) | func (i Iptables) validate() (err error) { method copy (line 26) | func (i *Iptables) copy() (copied Iptables) { method overrideWith (line 32) | func (i *Iptables) overrideWith(other Iptables) { method setDefaults (line 36) | func (i *Iptables) setDefaults(globalLogLevel string) { method String (line 47) | func (i Iptables) String() string { method toLinesNode (line 51) | func (i Iptables) toLinesNode() (node *gotree.Node) { method read (line 57) | func (i *Iptables) read(r *reader.Reader) (err error) { FILE: internal/configuration/settings/log.go type Log (line 13) | type Log struct method validate (line 19) | func (l Log) validate() (err error) { method copy (line 27) | func (l *Log) copy() (copied Log) { method overrideWith (line 36) | func (l *Log) overrideWith(other Log) { method setDefaults (line 40) | func (l *Log) setDefaults() { method String (line 44) | func (l Log) String() string { method toLinesNode (line 48) | func (l Log) toLinesNode() (node *gotree.Node) { method read (line 54) | func (l *Log) read(r *reader.Reader) (err error) { FILE: internal/configuration/settings/mocks_reader_test.go type MockSource (line 14) | type MockSource struct method EXPECT (line 32) | func (m *MockSource) EXPECT() *MockSourceMockRecorder { method Get (line 37) | func (m *MockSource) Get(arg0 string) (string, bool) { method KeyTransform (line 52) | func (m *MockSource) KeyTransform(arg0 string) string { method String (line 66) | func (m *MockSource) String() string { type MockSourceMockRecorder (line 20) | type MockSourceMockRecorder struct method Get (line 46) | func (mr *MockSourceMockRecorder) Get(arg0 interface{}) *gomock.Call { method KeyTransform (line 60) | func (mr *MockSourceMockRecorder) KeyTransform(arg0 interface{}) *gomo... method String (line 74) | func (mr *MockSourceMockRecorder) String() *gomock.Call { function NewMockSource (line 25) | func NewMockSource(ctrl *gomock.Controller) *MockSource { FILE: internal/configuration/settings/mocks_test.go type MockWarner (line 14) | type MockWarner struct method EXPECT (line 32) | func (m *MockWarner) EXPECT() *MockWarnerMockRecorder { method Warn (line 37) | func (m *MockWarner) Warn(arg0 string) { type MockWarnerMockRecorder (line 20) | type MockWarnerMockRecorder struct method Warn (line 43) | func (mr *MockWarnerMockRecorder) Warn(arg0 interface{}) *gomock.Call { function NewMockWarner (line 25) | func NewMockWarner(ctrl *gomock.Controller) *MockWarner { FILE: internal/configuration/settings/nordvpn_retro.go function nordvpnRetroRegion (line 6) | func nordvpnRetroRegion(selection ServerSelection, validRegions, validCo... function stringSliceToMap (line 37) | func stringSliceToMap(slice []string) (m map[string]struct{}) { FILE: internal/configuration/settings/openvpn.go type OpenVPN (line 20) | type OpenVPN struct method validate (line 91) | func (o OpenVPN) validate(vpnProvider string) (err error) { method copy (line 247) | func (o *OpenVPN) copy() (copied OpenVPN) { method overrideWith (line 271) | func (o *OpenVPN) overrideWith(other OpenVPN) { method setDefaults (line 290) | func (o *OpenVPN) setDefaults(vpnProvider string) { method String (line 317) | func (o OpenVPN) String() string { method toLinesNode (line 321) | func (o OpenVPN) toLinesNode() (node *gotree.Node) { method WithDefaults (line 377) | func (o OpenVPN) WithDefaults(provider string) OpenVPN { method read (line 382) | func (o *OpenVPN) read(r *reader.Reader) (err error) { function validateOpenVPNConfigFilepath (line 157) | func validateOpenVPNConfigFilepath(isCustom bool, function validateOpenVPNClientCertificate (line 182) | func validateOpenVPNClientCertificate(vpnProvider, function validateOpenVPNClientKey (line 207) | func validateOpenVPNClientKey(vpnProvider, clientKey string) (err error) { function validateOpenVPNEncryptedKey (line 229) | func validateOpenVPNEncryptedKey(vpnProvider, function readOpenVPNProcessUser (line 422) | func readOpenVPNProcessUser(r *reader.Reader) (processUser string, err e... FILE: internal/configuration/settings/openvpn_test.go function Test_ivpnAccountID (line 9) | func Test_ivpnAccountID(t *testing.T) { FILE: internal/configuration/settings/openvpnselection.go type OpenVPNSelection (line 18) | type OpenVPNSelection struct method validate (line 44) | func (o OpenVPNSelection) validate(vpnProvider string) (err error) { method copy (line 147) | func (o *OpenVPNSelection) copy() (copied OpenVPNSelection) { method overrideWith (line 157) | func (o *OpenVPNSelection) overrideWith(other OpenVPNSelection) { method setDefaults (line 165) | func (o *OpenVPNSelection) setDefaults(vpnProvider string) { method String (line 178) | func (o OpenVPNSelection) String() string { method toLinesNode (line 182) | func (o OpenVPNSelection) toLinesNode() (node *gotree.Node) { method read (line 205) | func (o *OpenVPNSelection) read(r *reader.Reader) (err error) { FILE: internal/configuration/settings/pmtud.go type PMTUD (line 14) | type PMTUD struct method validate (line 33) | func (p PMTUD) validate() (err error) { method copy (line 47) | func (p *PMTUD) copy() (copied PMTUD) { method overrideWith (line 54) | func (p *PMTUD) overrideWith(other PMTUD) { method setDefaults (line 59) | func (p *PMTUD) setDefaults() { method String (line 80) | func (p PMTUD) String() string { method toLinesNode (line 84) | func (p PMTUD) toLinesNode() (node *gotree.Node) { method read (line 99) | func (p *PMTUD) read(r *reader.Reader) (err error) { FILE: internal/configuration/settings/portforward.go type PortForwarding (line 15) | type PortForwarding struct method Validate (line 50) | func (p PortForwarding) Validate(vpnProvider string) (err error) { method Copy (line 90) | func (p *PortForwarding) Copy() (copied PortForwarding) { method OverrideWith (line 103) | func (p *PortForwarding) OverrideWith(other PortForwarding) { method setDefaults (line 114) | func (p *PortForwarding) setDefaults() { method String (line 123) | func (p PortForwarding) String() string { method toLinesNode (line 127) | func (p PortForwarding) toLinesNode() (node *gotree.Node) { method read (line 168) | func (p *PortForwarding) read(r *reader.Reader) (err error) { FILE: internal/configuration/settings/portforward_test.go function Test_PortForwarding_String (line 9) | func Test_PortForwarding_String(t *testing.T) { FILE: internal/configuration/settings/provider.go type Provider (line 18) | type Provider struct method validate (line 30) | func (p *Provider) validate(vpnType string, filterChoicesGetter Filter... method copy (line 74) | func (p *Provider) copy() (copied Provider) { method overrideWith (line 82) | func (p *Provider) overrideWith(other Provider) { method setDefaults (line 88) | func (p *Provider) setDefaults() { method String (line 94) | func (p Provider) String() string { method toLinesNode (line 98) | func (p Provider) toLinesNode() (node *gotree.Node) { method read (line 106) | func (p *Provider) read(r *reader.Reader, vpnType string) (err error) { function readVPNServiceProvider (line 122) | func readVPNServiceProvider(r *reader.Reader, vpnType string) (vpnProvid... FILE: internal/configuration/settings/publicip.go type PublicIP (line 14) | type PublicIP struct method UpdateWith (line 43) | func (p PublicIP) UpdateWith(partialUpdate PublicIP) (updatedSettings ... method validate (line 53) | func (p PublicIP) validate() (err error) { method copy (line 71) | func (p *PublicIP) copy() (copied PublicIP) { method overrideWith (line 79) | func (p *PublicIP) overrideWith(other PublicIP) { method setDefaults (line 85) | func (p *PublicIP) setDefaults() { method String (line 96) | func (p PublicIP) String() string { method toLinesNode (line 100) | func (p PublicIP) toLinesNode() (node *gotree.Node) { method read (line 130) | func (p *PublicIP) read(r *reader.Reader, warner Warner) (err error) { type PublicIPAPI (line 31) | type PublicIPAPI struct function readPublicIPEnabled (line 156) | func readPublicIPEnabled(r *reader.Reader, warner Warner) ( FILE: internal/configuration/settings/publicip_test.go function Test_PublicIP_read (line 11) | func Test_PublicIP_read(t *testing.T) { FILE: internal/configuration/settings/server.go type ControlServer (line 18) | type ControlServer struct method validate (line 35) | func (c ControlServer) validate() (err error) { method copy (line 71) | func (c *ControlServer) copy() (copied ControlServer) { method overrideWith (line 83) | func (c *ControlServer) overrideWith(other ControlServer) { method setDefaults (line 90) | func (c *ControlServer) setDefaults() { method String (line 104) | func (c ControlServer) String() string { method toLinesNode (line 108) | func (c ControlServer) toLinesNode() (node *gotree.Node) { method read (line 121) | func (c *ControlServer) read(r *reader.Reader) (err error) { FILE: internal/configuration/settings/serverselection.go type ServerSelection (line 19) | type ServerSelection struct method validate (line 86) | func (ss *ServerSelection) validate(vpnServiceProvider string, method copy (line 292) | func (ss *ServerSelection) copy() (copied ServerSelection) { method overrideWith (line 316) | func (ss *ServerSelection) overrideWith(other ServerSelection) { method setDefaults (line 338) | func (ss *ServerSelection) setDefaults(vpnProvider string, portForward... method String (line 354) | func (ss ServerSelection) String() string { method toLinesNode (line 358) | func (ss ServerSelection) toLinesNode() (node *gotree.Node) { method WithDefaults (line 440) | func (ss ServerSelection) WithDefaults(provider string) ServerSelection { method read (line 446) | func (ss *ServerSelection) read(r *reader.Reader, function getLocationFilterChoices (line 138) | func getLocationFilterChoices(vpnServiceProvider string, function validateServerFilters (line 162) | func validateServerFilters(settings ServerSelection, filterChoices model... function atLeastOneIsOneOfCaseInsensitive (line 217) | func atLeastOneIsOneOfCaseInsensitive(values, choices []string, function validateSubscriptionTierFilters (line 254) | func validateSubscriptionTierFilters(settings ServerSelection, vpnServic... function validateFeatureFilters (line 269) | func validateFeatureFilters(settings ServerSelection, vpnServiceProvider... FILE: internal/configuration/settings/settings.go type Settings (line 15) | type Settings struct method Validate (line 40) | func (s *Settings) Validate(filterChoicesGetter FilterChoicesGetter, i... method copy (line 73) | func (s *Settings) copy() (copied Settings) { method OverrideWith (line 93) | func (s *Settings) OverrideWith(other Settings, method SetDefaults (line 120) | func (s *Settings) SetDefaults() { method String (line 138) | func (s Settings) String() string { method toLinesNode (line 142) | func (s Settings) toLinesNode() (node *gotree.Node) { method Warnings (line 164) | func (s Settings) Warnings() (warnings []string) { method Read (line 192) | func (s *Settings) Read(r *reader.Reader, warner Warner) (err error) { type FilterChoicesGetter (line 33) | type FilterChoicesGetter interface FILE: internal/configuration/settings/settings_test.go function Test_Settings_String (line 9) | func Test_Settings_String(t *testing.T) { FILE: internal/configuration/settings/shadowsocks.go type Shadowsocks (line 13) | type Shadowsocks struct method validate (line 21) | func (s Shadowsocks) validate() (err error) { method copy (line 25) | func (s *Shadowsocks) copy() (copied Shadowsocks) { method overrideWith (line 35) | func (s *Shadowsocks) overrideWith(other Shadowsocks) { method setDefaults (line 40) | func (s *Shadowsocks) setDefaults() { method String (line 45) | func (s Shadowsocks) String() string { method toLinesNode (line 49) | func (s Shadowsocks) toLinesNode() (node *gotree.Node) { method read (line 66) | func (s *Shadowsocks) read(r *reader.Reader) (err error) { function readShadowsocksAddress (line 88) | func readShadowsocksAddress(r *reader.Reader) (address *string, err erro... FILE: internal/configuration/settings/storage.go type Storage (line 13) | type Storage struct method validate (line 18) | func (s Storage) validate() (err error) { method copy (line 28) | func (s *Storage) copy() (copied Storage) { method overrideWith (line 34) | func (s *Storage) overrideWith(other Storage) { method setDefaults (line 38) | func (s *Storage) setDefaults() { method String (line 43) | func (s Storage) String() string { method toLinesNode (line 47) | func (s Storage) toLinesNode() (node *gotree.Node) { method read (line 56) | func (s *Storage) read(r *reader.Reader) (err error) { FILE: internal/configuration/settings/surfshark_retro.go function surfsharkRetroRegion (line 9) | func surfsharkRetroRegion(selection ServerSelection) ( function dedupSlice (line 41) | func dedupSlice(slice []string) (deduped []string) { FILE: internal/configuration/settings/system.go type System (line 10) | type System struct method validate (line 17) | func (s System) validate() (err error) { method copy (line 21) | func (s *System) copy() (copied System) { method overrideWith (line 29) | func (s *System) overrideWith(other System) { method setDefaults (line 35) | func (s *System) setDefaults() { method String (line 41) | func (s System) String() string { method toLinesNode (line 45) | func (s System) toLinesNode() (node *gotree.Node) { method read (line 58) | func (s *System) read(r *reader.Reader) (err error) { FILE: internal/configuration/settings/updater.go type Updater (line 18) | type Updater struct method Validate (line 37) | func (u Updater) Validate() (err error) { method copy (line 72) | func (u *Updater) copy() (copied Updater) { method overrideWith (line 85) | func (u *Updater) overrideWith(other Updater) { method SetDefaults (line 93) | func (u *Updater) SetDefaults(vpnProvider string) { method String (line 110) | func (u Updater) String() string { method toLinesNode (line 114) | func (u Updater) toLinesNode() (node *gotree.Node) { method read (line 131) | func (u *Updater) read(r *reader.Reader) (err error) { FILE: internal/configuration/settings/validation/servers.go function sortedInsert (line 9) | func sortedInsert(ss []string, s string) []string { function ExtractCountries (line 17) | func ExtractCountries(servers []models.Server) (values []string) { function ExtractCategories (line 36) | func ExtractCategories(servers []models.Server) (values []string) { function ExtractRegions (line 58) | func ExtractRegions(servers []models.Server) (values []string) { function ExtractCities (line 77) | func ExtractCities(servers []models.Server) (values []string) { function ExtractISPs (line 96) | func ExtractISPs(servers []models.Server) (values []string) { function ExtractServerNames (line 115) | func ExtractServerNames(servers []models.Server) (values []string) { function ExtractHostnames (line 134) | func ExtractHostnames(servers []models.Server) (values []string) { FILE: internal/configuration/settings/validation/surfshark.go function SurfsharkRetroLocChoices (line 8) | func SurfsharkRetroLocChoices() (choices []string) { FILE: internal/configuration/settings/version.go type Version (line 11) | type Version struct method validate (line 17) | func (v Version) validate() (err error) { method copy (line 21) | func (v *Version) copy() (copied Version) { method overrideWith (line 30) | func (v *Version) overrideWith(other Version) { method setDefaults (line 34) | func (v *Version) setDefaults() { method String (line 38) | func (v Version) String() string { method toLinesNode (line 42) | func (v Version) toLinesNode() (node *gotree.Node) { method read (line 50) | func (v *Version) read(r *reader.Reader) (err error) { FILE: internal/configuration/settings/vpn.go type VPN (line 13) | type VPN struct method Validate (line 36) | func (v *VPN) Validate(filterChoicesGetter FilterChoicesGetter, ipv6Su... method Copy (line 75) | func (v *VPN) Copy() (copied VPN) { method OverrideWith (line 88) | func (v *VPN) OverrideWith(other VPN) { method setDefaults (line 99) | func (v *VPN) setDefaults() { method String (line 110) | func (v VPN) String() string { method toLinesNode (line 114) | func (v VPN) toLinesNode() (node *gotree.Node) { method read (line 139) | func (v *VPN) read(r *reader.Reader) (err error) { FILE: internal/configuration/settings/wireguard.go type Wireguard (line 19) | type Wireguard struct method validate (line 54) | func (w Wireguard) validate(vpnProvider string, ipv6Supported, amnezia... method copy (line 133) | func (w *Wireguard) copy() (copied Wireguard) { method overrideWith (line 146) | func (w *Wireguard) overrideWith(other Wireguard) { method setDefaults (line 158) | func (w *Wireguard) setDefaults(vpnProvider string) { method String (line 182) | func (w Wireguard) String() string { method toLinesNode (line 186) | func (w Wireguard) toLinesNode() (node *gotree.Node) { method read (line 227) | func (w *Wireguard) read(r *reader.Reader, amneziaWG bool) (err error) { FILE: internal/configuration/settings/wireguardselection.go type WireguardSelection (line 15) | type WireguardSelection struct method validate (line 38) | func (w WireguardSelection) validate(vpnProvider string) (err error) { method copy (line 114) | func (w *WireguardSelection) copy() (copied WireguardSelection) { method overrideWith (line 122) | func (w *WireguardSelection) overrideWith(other WireguardSelection) { method setDefaults (line 128) | func (w *WireguardSelection) setDefaults() { method String (line 133) | func (w WireguardSelection) String() string { method toLinesNode (line 137) | func (w WireguardSelection) toLinesNode() (node *gotree.Node) { method read (line 155) | func (w *WireguardSelection) read(r *reader.Reader) (err error) { FILE: internal/configuration/sources/files/amneziawg.go method lazyLoadAmneziawgConf (line 12) | func (s *Source) lazyLoadAmneziawgConf() AmneziawgConfig { type AmneziawgConfig (line 26) | type AmneziawgConfig struct function ParseAmneziawgConf (line 46) | func ParseAmneziawgConf(path string) (config AmneziawgConfig, err error) { FILE: internal/configuration/sources/files/amneziawg_test.go function Test_Source_ParseAmneziawgConf (line 13) | func Test_Source_ParseAmneziawgConf(t *testing.T) { FILE: internal/configuration/sources/files/helpers.go function ReadFromFile (line 14) | func ReadFromFile(filepath string) (content string, isSet bool, err erro... function ReadPEMFile (line 39) | func ReadPEMFile(filepath string) (base64Str string, isSet bool, err err... FILE: internal/configuration/sources/files/interfaces.go type Warner (line 3) | type Warner interface FILE: internal/configuration/sources/files/reader.go type Source (line 9) | type Source struct method String (line 37) | func (s *Source) String() string { return "files" } method Get (line 39) | func (s *Source) Get(key string) (value string, isSet bool) { method getAmneziawgKey (line 88) | func (s *Source) getAmneziawgKey(key string) (value string, isSet, mat... method KeyTransform (line 140) | func (s *Source) KeyTransform(key string) string { function New (line 21) | func New(warner Warner) (source *Source) { function strPtrToStringIsSet (line 155) | func strPtrToStringIsSet(ptr *string) (s string, isSet bool) { FILE: internal/configuration/sources/files/wireguard.go method lazyLoadWireguardConf (line 14) | func (s *Source) lazyLoadWireguardConf() WireguardConfig { type WireguardConfig (line 28) | type WireguardConfig struct function ParseWireguardConf (line 39) | func ParseWireguardConf(path string) (config WireguardConfig, err error) { function parseWireguardInterfaceSection (line 68) | func parseWireguardInterfaceSection(interfaceSection *ini.Section) ( function parseWireguardPeerSection (line 78) | func parseWireguardPeerSection(peerSection *ini.Section) ( function getINIKeyFromSection (line 99) | func getINIKeyFromSection(section *ini.Section, key string) (value *stri... FILE: internal/configuration/sources/files/wireguard_test.go function ptrTo (line 14) | func ptrTo[T any](value T) *T { return &value } function Test_Source_ParseWireguardConf (line 16) | func Test_Source_ParseWireguardConf(t *testing.T) { function Test_parseWireguardInterfaceSection (line 96) | func Test_parseWireguardInterfaceSection(t *testing.T) { function Test_parseWireguardPeerSection (line 141) | func Test_parseWireguardPeerSection(t *testing.T) { FILE: internal/configuration/sources/secrets/amneziawg.go method lazyLoadAmneziawgConf (line 10) | func (s *Source) lazyLoadAmneziawgConf() files.AmneziawgConfig { FILE: internal/configuration/sources/secrets/helpers.go function strPtrToStringIsSet (line 3) | func strPtrToStringIsSet(ptr *string) (s string, isSet bool) { FILE: internal/configuration/sources/secrets/interfaces.go type Warner (line 3) | type Warner interface FILE: internal/configuration/sources/secrets/reader.go type Source (line 11) | type Source struct method String (line 40) | func (s *Source) String() string { return "secret files" } method Get (line 42) | func (s *Source) Get(key string) (value string, isSet bool) { method KeyTransform (line 100) | func (s *Source) KeyTransform(key string) string { method getAmneziaWg (line 115) | func (s *Source) getAmneziaWg(key string) (value string, isSet, matche... function New (line 23) | func New(warner Warner) (source *Source) { FILE: internal/configuration/sources/secrets/reader_test.go function Test_Source_Get (line 13) | func Test_Source_Get(t *testing.T) { FILE: internal/configuration/sources/secrets/wireguard.go method lazyLoadWireguardConf (line 10) | func (s *Source) lazyLoadWireguardConf() files.WireguardConfig { FILE: internal/constants/colors.go function ColorOpenvpn (line 5) | func ColorOpenvpn() *color.Color { FILE: internal/constants/countries.go function CountryCodes (line 3) | func CountryCodes() map[string]string { FILE: internal/constants/openvpn/auth.go constant SHA1 (line 4) | SHA1 = "sha1" constant SHA256 (line 5) | SHA256 = "sha256" constant SHA512 (line 6) | SHA512 = "sha512" FILE: internal/constants/openvpn/ciphers.go constant AES128cbc (line 4) | AES128cbc = "aes-128-cbc" constant AES192cbc (line 5) | AES192cbc = "aes-192-cbc" constant AES256cbc (line 6) | AES256cbc = "aes-256-cbc" constant AES128gcm (line 7) | AES128gcm = "aes-128-gcm" constant AES192gcm (line 8) | AES192gcm = "aes-192-gcm" constant AES256gcm (line 9) | AES256gcm = "aes-256-gcm" constant Chacha20Poly1305 (line 10) | Chacha20Poly1305 = "chacha20-poly1305" FILE: internal/constants/openvpn/paths.go constant AuthConf (line 5) | AuthConf = "/etc/openvpn/auth.conf" constant AskPassPath (line 8) | AskPassPath = "/etc/openvpn/askpass" FILE: internal/constants/openvpn/versions.go constant Openvpn25 (line 4) | Openvpn25 = "2.5" constant Openvpn26 (line 5) | Openvpn26 = "2.6" FILE: internal/constants/paths.go constant ServersData (line 5) | ServersData = "/gluetun/servers.json" FILE: internal/constants/protocol.go constant TCP (line 5) | TCP string = "tcp" constant UDP (line 7) | UDP string = "udp" FILE: internal/constants/providers/providers.go constant Airvpn (line 6) | Airvpn = "airvpn" constant Custom (line 7) | Custom = "custom" constant Cyberghost (line 8) | Cyberghost = "cyberghost" constant Example (line 9) | Example = "example" constant Expressvpn (line 10) | Expressvpn = "expressvpn" constant Fastestvpn (line 11) | Fastestvpn = "fastestvpn" constant Giganews (line 12) | Giganews = "giganews" constant HideMyAss (line 13) | HideMyAss = "hidemyass" constant Ipvanish (line 14) | Ipvanish = "ipvanish" constant Ivpn (line 15) | Ivpn = "ivpn" constant Mullvad (line 16) | Mullvad = "mullvad" constant Nordvpn (line 17) | Nordvpn = "nordvpn" constant Perfectprivacy (line 18) | Perfectprivacy = "perfect privacy" constant Privado (line 19) | Privado = "privado" constant PrivateInternetAccess (line 20) | PrivateInternetAccess = "private internet access" constant Privatevpn (line 21) | Privatevpn = "privatevpn" constant Protonvpn (line 22) | Protonvpn = "protonvpn" constant Purevpn (line 23) | Purevpn = "purevpn" constant SlickVPN (line 24) | SlickVPN = "slickvpn" constant Surfshark (line 25) | Surfshark = "surfshark" constant Torguard (line 26) | Torguard = "torguard" constant VPNSecure (line 27) | VPNSecure = "vpnsecure" constant VPNUnlimited (line 28) | VPNUnlimited = "vpn unlimited" constant Vyprvpn (line 29) | Vyprvpn = "vyprvpn" constant Windscribe (line 30) | Windscribe = "windscribe" function All (line 34) | func All() []string { function AllWithCustom (line 62) | func AllWithCustom() []string { FILE: internal/constants/providers/providers_test.go function Test_All (line 9) | func Test_All(t *testing.T) { function Test_AllWithCustom (line 17) | func Test_AllWithCustom(t *testing.T) { FILE: internal/constants/status.go constant Starting (line 8) | Starting models.LoopStatus = "starting" constant Running (line 9) | Running models.LoopStatus = "running" constant Stopping (line 10) | Stopping models.LoopStatus = "stopping" constant Stopped (line 11) | Stopped models.LoopStatus = "stopped" constant Crashed (line 12) | Crashed models.LoopStatus = "crashed" constant Completed (line 13) | Completed models.LoopStatus = "completed" FILE: internal/constants/vpn/protocol.go constant AmneziaWg (line 4) | AmneziaWg = "amneziawg" constant OpenVPN (line 5) | OpenVPN = "openvpn" constant Wireguard (line 6) | Wireguard = "wireguard" FILE: internal/dns/leak.go function leakCheck (line 15) | func leakCheck(ctx context.Context, client *http.Client) (report string,... function generateRandomString (line 57) | func generateRandomString(length uint) string { function triggerDNSQuery (line 68) | func triggerDNSQuery(ctx context.Context, client *http.Client, session s... function formatPercentages (line 102) | func formatPercentages(data map[string]uint) string { FILE: internal/dns/leak_test.go function Test_leakCheck (line 12) | func Test_leakCheck(t *testing.T) { FILE: internal/dns/logger.go type Logger (line 3) | type Logger interface FILE: internal/dns/loop.go type Loop (line 19) | type Loop struct method logAndWait (line 82) | func (l *Loop) logAndWait(ctx context.Context, err error) { method signalOrSetStatus (line 98) | func (l *Loop) signalOrSetStatus(status models.LoopStatus) { constant defaultBackoffTime (line 40) | defaultBackoffTime = 10 * time.Second function NewLoop (line 42) | func NewLoop(settings settings.DNS, type filterLogger (line 110) | type filterLogger struct method Log (line 114) | func (l *filterLogger) Log(msg string) { function buildFilterLogger (line 118) | func buildFilterLogger(logger Logger) *filterLogger { FILE: internal/dns/plaintext.go method useUnencryptedDNS (line 10) | func (l *Loop) useUnencryptedDNS(fallback bool) { FILE: internal/dns/run.go method Run (line 11) | func (l *Loop) Run(ctx context.Context, done chan<- struct{}) { method runWait (line 76) | func (l *Loop) runWait(ctx context.Context, runError <-chan error) (exit... method stopServer (line 104) | func (l *Loop) stopServer() { FILE: internal/dns/settings.go method GetSettings (line 22) | func (l *Loop) GetSettings() (settings settings.DNS) { return l.state.Ge... method SetSettings (line 24) | func (l *Loop) SetSettings(ctx context.Context, settings settings.DNS) ( function buildServerSettings (line 30) | func buildServerSettings(userSettings settings.DNS, function buildProviders (line 120) | func buildProviders(userSettings settings.DNS, localSubnets []netip.Prefix, FILE: internal/dns/setup.go method setupServer (line 14) | func (l *Loop) setupServer(ctx context.Context, settings settings.DNS) (... FILE: internal/dns/state/settings.go method GetSettings (line 11) | func (s *State) GetSettings() (settings settings.DNS) { method SetSettings (line 17) | func (s *State) SetSettings(ctx context.Context, settings settings.DNS) ( FILE: internal/dns/state/state.go function New (line 11) | func New(statusApplier StatusApplier, type State (line 22) | type State struct type StatusApplier (line 31) | type StatusApplier interface FILE: internal/dns/status.go method GetStatus (line 9) | func (l *Loop) GetStatus() (status models.LoopStatus) { method ApplyStatus (line 13) | func (l *Loop) ApplyStatus(ctx context.Context, status models.LoopStatus) ( FILE: internal/dns/ticker.go method RunRestartTicker (line 10) | func (l *Loop) RunRestartTicker(ctx context.Context, done chan<- struct{... FILE: internal/dns/update.go method updateFiles (line 12) | func (l *Loop) updateFiles(ctx context.Context, settings settings.DNS) (... FILE: internal/firewall/enable.go method SetEnabled (line 10) | func (c *Config) SetEnabled(ctx context.Context, enabled bool) (err erro... method enable (line 42) | func (c *Config) enable(ctx context.Context) (err error) { method allowVPNIP (line 127) | func (c *Config) allowVPNIP(ctx context.Context) (err error) { method allowOutboundSubnets (line 149) | func (c *Config) allowOutboundSubnets(ctx context.Context) (err error) { method allowInputPorts (line 176) | func (c *Config) allowInputPorts(ctx context.Context) (err error) { method redirectPorts (line 190) | func (c *Config) redirectPorts(ctx context.Context) (err error) { FILE: internal/firewall/firewall.go type Config (line 14) | type Config struct function NewConfig (line 37) | func NewConfig(ctx context.Context, logger, iptablesLogger Logger, FILE: internal/firewall/interfaces.go type CmdRunner (line 11) | type CmdRunner interface type Logger (line 15) | type Logger interface type firewallImpl (line 22) | type firewallImpl interface FILE: internal/firewall/iptables/atomic.go method SaveAndRestore (line 12) | func (c *Config) SaveAndRestore(ctx context.Context) (restore func(conte... method saveAndRestore (line 24) | func (c *Config) saveAndRestore(ctx context.Context) (restore func(conte... method saveAndRestoreIPv4 (line 45) | func (c *Config) saveAndRestoreIPv4(ctx context.Context) (restore func(c... method saveAndRestoreIPv6 (line 65) | func (c *Config) saveAndRestoreIPv6(ctx context.Context) (restore func(c... FILE: internal/firewall/iptables/cmd_matcher_test.go type cmdMatcher (line 13) | type cmdMatcher struct method Matches (line 19) | func (cm *cmdMatcher) Matches(x interface{}) bool { method String (line 47) | func (cm *cmdMatcher) String() string { function newCmdMatcher (line 51) | func newCmdMatcher(path string, argsRegex ...string) *cmdMatcher { FILE: internal/firewall/iptables/delete.go function isDeleteMatchInstruction (line 15) | func isDeleteMatchInstruction(instruction string) bool { function deleteIPTablesRule (line 35) | func deleteIPTablesRule(ctx context.Context, iptablesBinary, instruction... function findLineNumber (line 71) | func findLineNumber(ctx context.Context, iptablesBinary string, FILE: internal/firewall/iptables/delete_test.go function Test_isDeleteMatchInstruction (line 12) | func Test_isDeleteMatchInstruction(t *testing.T) { function newCmdMatcherListRules (line 51) | func newCmdMatcherListRules(iptablesBinary, table, chain string) *cmdMat... function Test_deleteIPTablesRule (line 56) | func Test_deleteIPTablesRule(t *testing.T) { FILE: internal/firewall/iptables/firewall.go type Config (line 8) | type Config struct function New (line 19) | func New(ctx context.Context, runner CmdRunner, logger Logger) (*Config,... FILE: internal/firewall/iptables/interfaces.go type CmdRunner (line 5) | type CmdRunner interface type Logger (line 9) | type Logger interface FILE: internal/firewall/iptables/ip6tables.go function findIP6tablesSupported (line 14) | func findIP6tablesSupported(ctx context.Context, runner CmdRunner) ( method runIP6tablesInstructions (line 26) | func (c *Config) runIP6tablesInstructions(ctx context.Context, instructi... method runIP6tablesInstructionsNoSave (line 41) | func (c *Config) runIP6tablesInstructionsNoSave(ctx context.Context, ins... method runIP6tablesInstruction (line 50) | func (c *Config) runIP6tablesInstruction(ctx context.Context, instructio... method runIP6tablesInstructionNoSave (line 65) | func (c *Config) runIP6tablesInstructionNoSave(ctx context.Context, inst... method SetIPv6AllPolicies (line 87) | func (c *Config) SetIPv6AllPolicies(ctx context.Context, policy string) ... FILE: internal/firewall/iptables/iptables.go function appendOrDelete (line 22) | func appendOrDelete(remove bool) string { method Version (line 30) | func (c *Config) Version(ctx context.Context) (string, error) { method runIptablesInstructions (line 44) | func (c *Config) runIptablesInstructions(ctx context.Context, instructio... method runIptablesInstructionsNoSave (line 60) | func (c *Config) runIptablesInstructionsNoSave(ctx context.Context, inst... method runIptablesInstruction (line 69) | func (c *Config) runIptablesInstruction(ctx context.Context, instruction... method runIptablesInstructionNoSave (line 85) | func (c *Config) runIptablesInstructionNoSave(ctx context.Context, instr... method SetIPv4AllPolicies (line 101) | func (c *Config) SetIPv4AllPolicies(ctx context.Context, policy string) ... method AcceptInputThroughInterface (line 114) | func (c *Config) AcceptInputThroughInterface(ctx context.Context, intf s... method AcceptInputToSubnet (line 119) | func (c *Config) AcceptInputToSubnet(ctx context.Context, intf string, d... method AcceptOutputThroughInterface (line 137) | func (c *Config) AcceptOutputThroughInterface(ctx context.Context, intf ... method AcceptEstablishedRelatedTraffic (line 143) | func (c *Config) AcceptEstablishedRelatedTraffic(ctx context.Context) er... method AcceptOutputTrafficToVPN (line 150) | func (c *Config) AcceptOutputTrafficToVPN(ctx context.Context, method AcceptOutputFromIPToSubnet (line 169) | func (c *Config) AcceptOutputFromIPToSubnet(ctx context.Context, method AcceptIpv6MulticastOutput (line 194) | func (c *Config) AcceptIpv6MulticastOutput(ctx context.Context, intf str... method AcceptInputToPort (line 207) | func (c *Config) AcceptInputToPort(ctx context.Context, intf string, por... method RedirectPort (line 223) | func (c *Config) RedirectPort(ctx context.Context, intf string, method RunUserPostRules (line 282) | func (c *Config) RunUserPostRules(ctx context.Context, filepath string) ... FILE: internal/firewall/iptables/iptablesmix.go method runMixedIptablesInstructions (line 7) | func (c *Config) runMixedIptablesInstructions(ctx context.Context, instr... method runMixedIptablesInstruction (line 27) | func (c *Config) runMixedIptablesInstruction(ctx context.Context, instru... method runMixedIptablesInstructionNoSave (line 44) | func (c *Config) runMixedIptablesInstructionNoSave(ctx context.Context, ... FILE: internal/firewall/iptables/list.go type chain (line 12) | type chain struct type chainRule (line 20) | type chainRule struct type mark (line 38) | type mark struct function parseChain (line 45) | func parseChain(iptablesOutput string) (c chain, err error) { function parseChainGeneralDataLine (line 104) | func parseChainGeneralDataLine(line string) (base chain, err error) { function parseChainRuleLine (line 157) | func parseChainRuleLine(line string) (rule chainRule, err error) { function parseChainRuleField (line 187) | func parseChainRuleField(fieldIndex int, field string, rule *chainRule) ... function parseChainRuleOptionalFields (line 251) | func parseChainRuleOptionalFields(optionalFields []string, rule *chainRu... function parseUDPOptional (line 306) | func parseUDPOptional(optionalFields []string, rule *chainRule) (consume... function parseTCPOptional (line 334) | func parseTCPOptional(optionalFields []string, rule *chainRule) (consume... function parseDestinationPort (line 366) | func parseDestinationPort(value string) (port uint16, err error) { function parseSourcePort (line 371) | func parseSourcePort(value string) (port uint16, err error) { function parseTCPFlags (line 378) | func parseTCPFlags(value string) (tcpFlags, error) { function parsePortsCSV (line 409) | func parsePortsCSV(s string) (ports []uint16, err error) { function parseMark (line 427) | func parseMark(optionalFields []string) (m mark, consumed int, err error) { function parseLineNumber (line 453) | func parseLineNumber(s string) (n uint16, err error) { function checkTarget (line 466) | func checkTarget(target string) (err error) { function parseProtocol (line 476) | func parseProtocol(s string) (protocol string, err error) { function parseMetricSize (line 495) | func parseMetricSize(size string) (n uint64, err error) { FILE: internal/firewall/iptables/list_test.go function Test_parseChain (line 10) | func Test_parseChain(t *testing.T) { FILE: internal/firewall/iptables/mocks_test.go type MockCmdRunner (line 15) | type MockCmdRunner struct method EXPECT (line 33) | func (m *MockCmdRunner) EXPECT() *MockCmdRunnerMockRecorder { method Run (line 38) | func (m *MockCmdRunner) Run(arg0 *exec.Cmd) (string, error) { type MockCmdRunnerMockRecorder (line 21) | type MockCmdRunnerMockRecorder struct method Run (line 47) | func (mr *MockCmdRunnerMockRecorder) Run(arg0 interface{}) *gomock.Call { function NewMockCmdRunner (line 26) | func NewMockCmdRunner(ctrl *gomock.Controller) *MockCmdRunner { type MockLogger (line 53) | type MockLogger struct method EXPECT (line 71) | func (m *MockLogger) EXPECT() *MockLoggerMockRecorder { method Debug (line 76) | func (m *MockLogger) Debug(arg0 string) { method Warn (line 88) | func (m *MockLogger) Warn(arg0 string) { type MockLoggerMockRecorder (line 59) | type MockLoggerMockRecorder struct method Debug (line 82) | func (mr *MockLoggerMockRecorder) Debug(arg0 interface{}) *gomock.Call { method Warn (line 94) | func (mr *MockLoggerMockRecorder) Warn(arg0 interface{}) *gomock.Call { function NewMockLogger (line 64) | func NewMockLogger(ctrl *gomock.Controller) *MockLogger { FILE: internal/firewall/iptables/parse.go type iptablesInstruction (line 12) | type iptablesInstruction struct method setDefaults (line 30) | func (i *iptablesInstruction) setDefaults() { method equalToRule (line 37) | func (i *iptablesInstruction) equalToRule(table, chain string, rule ch... function networkInterfacesEqual (line 74) | func networkInterfacesEqual(instruction, chainRule string) bool { function ipPrefixesEqual (line 78) | func ipPrefixesEqual(instruction, chainRule netip.Prefix) bool { function parseIptablesInstruction (line 85) | func parseIptablesInstruction(s string) (instruction iptablesInstruction... function parseInstructionFlag (line 104) | func parseInstructionFlag(fields []string, instruction *iptablesInstruct... function preCheckInstructionFields (line 181) | func preCheckInstructionFields(fields []string) (consumed int, err error) { function parseIPPrefix (line 202) | func parseIPPrefix(value string) (prefix netip.Prefix, err error) { function parsePort (line 215) | func parsePort(value string) (port uint16, err error) { function parseMatchModule (line 224) | func parseMatchModule(fields []string, instruction *iptablesInstruction) ( function parseToPorts (line 252) | func parseToPorts(value string) (toPorts []uint16, err error) { FILE: internal/firewall/iptables/parse_test.go function Test_parseIptablesInstruction (line 10) | func Test_parseIptablesInstruction(t *testing.T) { function Test_parseIPPrefix (line 85) | func Test_parseIPPrefix(t *testing.T) { FILE: internal/firewall/iptables/support.go function checkIptablesSupport (line 20) | func checkIptablesSupport(ctx context.Context, runner CmdRunner, function testIptablesPath (line 63) | func testIptablesPath(ctx context.Context, path string, function isPermissionDenied (line 126) | func isPermissionDenied(errMessage string) (ok bool) { function extractInputPolicy (line 131) | func extractInputPolicy(line string) (policy string, ok bool) { function randomInterfaceName (line 153) | func randomInterfaceName() (interfaceName string) { FILE: internal/firewall/iptables/support_test.go function newAppendTestRuleMatcher (line 13) | func newAppendTestRuleMatcher(path string) *cmdMatcher { function newDeleteTestRuleMatcher (line 19) | func newDeleteTestRuleMatcher(path string) *cmdMatcher { function newListInputRulesMatcher (line 25) | func newListInputRulesMatcher(path string) *cmdMatcher { function newSetPolicyMatcher (line 30) | func newSetPolicyMatcher(path, inputPolicy string) *cmdMatcher { //nolin... function Test_checkIptablesSupport (line 35) | func Test_checkIptablesSupport(t *testing.T) { function Test_testIptablesPath (line 130) | func Test_testIptablesPath(t *testing.T) { function Test_isPermissionDenied (line 268) | func Test_isPermissionDenied(t *testing.T) { function Test_extractInputPolicy (line 296) | func Test_extractInputPolicy(t *testing.T) { function Test_randomInterfaceName (line 339) | func Test_randomInterfaceName(t *testing.T) { FILE: internal/firewall/iptables/tcp.go type tcpFlags (line 11) | type tcpFlags struct type tcpFlag (line 16) | type tcpFlag method String (line 29) | func (f tcpFlag) String() string { constant tcpFlagFIN (line 19) | tcpFlagFIN tcpFlag = 1 << iota constant tcpFlagSYN (line 20) | tcpFlagSYN constant tcpFlagRST (line 21) | tcpFlagRST constant tcpFlagPSH (line 22) | tcpFlagPSH constant tcpFlagACK (line 23) | tcpFlagACK constant tcpFlagURG (line 24) | tcpFlagURG constant tcpFlagECE (line 25) | tcpFlagECE constant tcpFlagCWR (line 26) | tcpFlagCWR function parseTCPFlag (line 54) | func parseTCPFlag(s string) (tcpFlag, error) { method TempDropOutputTCPRST (line 73) | func (c *Config) TempDropOutputTCPRST(ctx context.Context, FILE: internal/firewall/logger.go method logIgnoredSubnetFamily (line 8) | func (c *Config) logIgnoredSubnetFamily(subnet netip.Prefix) { FILE: internal/firewall/outboundsubnets.go method SetOutboundSubnets (line 12) | func (c *Config) SetOutboundSubnets(ctx context.Context, subnets []netip... method removeOutboundSubnets (line 38) | func (c *Config) removeOutboundSubnets(ctx context.Context, subnets []ne... method addOutboundSubnets (line 67) | func (c *Config) addOutboundSubnets(ctx context.Context, subnets []netip... FILE: internal/firewall/ports.go method SetAllowedPort (line 9) | func (c *Config) SetAllowedPort(ctx context.Context, port uint16, intf s... method RemoveAllowedPort (line 48) | func (c *Config) RemoveAllowedPort(ctx context.Context, port uint16) (er... FILE: internal/firewall/redirect.go method RedirectPort (line 13) | func (c *Config) RedirectPort(ctx context.Context, intf string, sourcePort, type portRedirection (line 72) | type portRedirection struct type portRedirections (line 78) | type portRedirections method remove (line 80) | func (p *portRedirections) remove(intf string, sourcePort uint16) { method check (line 93) | func (p *portRedirections) check(dryRun portRedirection) (alreadyExist... method append (line 117) | func (p *portRedirections) append(newRedirection portRedirection) { FILE: internal/firewall/vpn.go method SetVPNConnection (line 10) | func (c *Config) SetVPNConnection(ctx context.Context, FILE: internal/firewall/wrappers.go method Version (line 8) | func (c *Config) Version(ctx context.Context) (version string, err error) { method TempDropOutputTCPRST (line 16) | func (c *Config) TempDropOutputTCPRST(ctx context.Context, FILE: internal/format/duration.go function FriendlyDuration (line 10) | func FriendlyDuration(duration time.Duration) string { FILE: internal/format/duration_test.go function Test_FriendlyDuration (line 10) | func Test_FriendlyDuration(t *testing.T) { FILE: internal/healthcheck/checker.go type Checker (line 18) | type Checker struct method SetConfig (line 55) | func (c *Checker) SetConfig(tlsDialAddrs []string, icmpTargets []netip... method Start (line 86) | func (c *Checker) Start(ctx context.Context) (runError <-chan error, e... method Stop (line 159) | func (c *Checker) Stop() error { method smallPeriodicCheck (line 168) | func (c *Checker) smallPeriodicCheck(ctx context.Context) error { method fullPeriodicCheck (line 204) | func (c *Checker) fullPeriodicCheck(ctx context.Context) error { method startupCheck (line 303) | func (c *Checker) startupCheck(ctx context.Context) error { function NewChecker (line 36) | func NewChecker(logger Logger) *Checker { function tcpTLSCheck (line 215) | func tcpTLSCheck(ctx context.Context, dialer *net.Dialer, targetAddress ... function makeAddressToDial (line 253) | func makeAddressToDial(address string) (addressToDial string, err error) { function withRetries (line 271) | func withRetries(ctx context.Context, tryTimeouts []time.Duration, constant smallCheckDNS (line 349) | smallCheckDNS = "dns" constant smallCheckICMP (line 350) | smallCheckICMP = "icmp" function smallCheckTypeToString (line 353) | func smallCheckTypeToString(smallCheckType string) string { FILE: internal/healthcheck/checker_test.go function Test_Checker_fullcheck (line 14) | func Test_Checker_fullcheck(t *testing.T) { function Test_makeAddressToDial (line 65) | func Test_makeAddressToDial(t *testing.T) { FILE: internal/healthcheck/client.go type Client (line 14) | type Client struct method Check (line 24) | func (c *Client) Check(ctx context.Context, url string) error { function NewClient (line 18) | func NewClient(httpClient *http.Client) *Client { FILE: internal/healthcheck/dns/dns.go type Client (line 17) | type Client struct method Check (line 46) | func (c *Client) Check(ctx context.Context) error { function New (line 22) | func New() *Client { function concatAddrPorts (line 36) | func concatAddrPorts(addrs [][]netip.AddrPort) []netip.AddrPort { FILE: internal/healthcheck/handler.go type handler (line 9) | type handler struct method ServeHTTP (line 24) | func (h *handler) ServeHTTP(responseWriter http.ResponseWriter, reques... method setErr (line 36) | func (h *handler) setErr(err error) { method getErr (line 42) | func (h *handler) getErr() (err error) { function newHandler (line 17) | func newHandler(logger Logger) *handler { FILE: internal/healthcheck/icmp/apple_ipv4.go type ipv4Wrapper (line 14) | type ipv4Wrapper struct method ReadFrom (line 22) | func (i *ipv4Wrapper) ReadFrom(p []byte) (n int, addr net.Addr, err er... method WriteTo (line 27) | func (i *ipv4Wrapper) WriteTo(p []byte, addr net.Addr) (n int, err err... method Close (line 31) | func (i *ipv4Wrapper) Close() error { method LocalAddr (line 35) | func (i *ipv4Wrapper) LocalAddr() net.Addr { method SetDeadline (line 39) | func (i *ipv4Wrapper) SetDeadline(t time.Time) error { method SetReadDeadline (line 43) | func (i *ipv4Wrapper) SetReadDeadline(t time.Time) error { method SetWriteDeadline (line 47) | func (i *ipv4Wrapper) SetWriteDeadline(t time.Time) error { function ipv4ToNetPacketConn (line 18) | func ipv4ToNetPacketConn(ipv4 *ipv4.PacketConn) *ipv4Wrapper { FILE: internal/healthcheck/icmp/echo.go type Echoer (line 27) | type Echoer struct method Reset (line 54) | func (e *Echoer) Reset() { method Echo (line 68) | func (e *Echoer) Echo(ctx context.Context, ip netip.Addr) (err error) { function NewEchoer (line 36) | func NewEchoer(logger Logger) *Echoer { function buildMessageToSend (line 130) | func buildMessageToSend(ipVersion string, id, seq int, randomSource io.R... function receiveEchoReply (line 158) | func receiveEchoReply(conn net.PacketConn, id, seq int, buffer []byte, i... FILE: internal/healthcheck/icmp/interfaces.go type Logger (line 3) | type Logger interface FILE: internal/healthcheck/icmp/listen.go function listenICMPv4 (line 12) | func listenICMPv4(ctx context.Context) (conn net.PacketConn, err error) { function listenICMPv6 (line 27) | func listenICMPv6(ctx context.Context) (conn net.PacketConn, err error) { FILE: internal/healthcheck/interfaces.go type Logger (line 3) | type Logger interface FILE: internal/healthcheck/run.go method Run (line 10) | func (s *Server) Run(ctx context.Context, done chan<- struct{}) { FILE: internal/healthcheck/server.go type Server (line 10) | type Server struct method SetError (line 24) | func (s *Server) SetError(err error) { function NewServer (line 16) | func NewServer(config settings.Health, logger Logger) *Server { type StatusApplier (line 28) | type StatusApplier interface FILE: internal/httpproxy/accept.go method isAccepted (line 8) | func (h *handler) isAccepted(responseWriter http.ResponseWriter, request... FILE: internal/httpproxy/auth.go method isAuthorized (line 10) | func (h *handler) isAuthorized(responseWriter http.ResponseWriter, reque... FILE: internal/httpproxy/handler.go function newHandler (line 10) | func newHandler(ctx context.Context, wg *sync.WaitGroup, logger Logger, type handler (line 29) | type handler struct method ServeHTTP (line 38) | func (h *handler) ServeHTTP(responseWriter http.ResponseWriter, reques... function returnRedirect (line 69) | func returnRedirect(*http.Request, []*http.Request) error { FILE: internal/httpproxy/handler_test.go function Test_returnRedirect (line 10) | func Test_returnRedirect(t *testing.T) { FILE: internal/httpproxy/http.go method handleHTTP (line 11) | func (h *handler) handleHTTP(responseWriter http.ResponseWriter, request... function setForwardedHeaders (line 62) | func setForwardedHeaders(request *http.Request) { FILE: internal/httpproxy/https.go method handleHTTPS (line 9) | func (h *handler) handleHTTPS(responseWriter http.ResponseWriter, reques... function transfer (line 60) | func transfer(destination io.WriteCloser, source io.ReadCloser, done cha... FILE: internal/httpproxy/logger.go type Logger (line 3) | type Logger interface type infoErrorer (line 9) | type infoErrorer interface FILE: internal/httpproxy/loop.go type Loop (line 14) | type Loop struct method logAndWait (line 52) | func (l *Loop) logAndWait(ctx context.Context, err error) { constant defaultBackoffTime (line 27) | defaultBackoffTime = 10 * time.Second function NewLoop (line 29) | func NewLoop(logger Logger, settings settings.HTTPProxy) *Loop { FILE: internal/httpproxy/run.go method Run (line 9) | func (l *Loop) Run(ctx context.Context, done chan<- struct{}) { FILE: internal/httpproxy/server.go type Server (line 10) | type Server struct method Run (line 34) | func (s *Server) Run(ctx context.Context, errorCh chan<- error) { function New (line 19) | func New(ctx context.Context, address string, logger Logger, FILE: internal/httpproxy/settings.go method GetSettings (line 9) | func (l *Loop) GetSettings() (settings settings.HTTPProxy) { method SetSettings (line 13) | func (l *Loop) SetSettings(ctx context.Context, settings settings.HTTPPr... FILE: internal/httpproxy/state/settings.go method GetSettings (line 11) | func (s *State) GetSettings() (settings settings.HTTPProxy) { method SetSettings (line 17) | func (s *State) SetSettings(ctx context.Context, FILE: internal/httpproxy/state/state.go function New (line 11) | func New(statusApplier StatusApplier, type State (line 20) | type State struct type StatusApplier (line 26) | type StatusApplier interface FILE: internal/httpproxy/status.go method GetStatus (line 9) | func (l *Loop) GetStatus() (status models.LoopStatus) { method ApplyStatus (line 13) | func (l *Loop) ApplyStatus(ctx context.Context, status models.LoopStatus) ( FILE: internal/httpserver/address.go method GetAddress (line 4) | func (s *Server) GetAddress() (address string) { FILE: internal/httpserver/helpers_test.go type testLogger (line 11) | type testLogger struct method Info (line 13) | func (t *testLogger) Info(string) {} method Warn (line 14) | func (t *testLogger) Warn(string) {} method Error (line 15) | func (t *testLogger) Error(string) {} type regexMatcher (line 19) | type regexMatcher struct method Matches (line 23) | func (r *regexMatcher) Matches(x interface{}) bool { method String (line 31) | func (r *regexMatcher) String() string { function newRegexMatcher (line 35) | func newRegexMatcher(regex string) *regexMatcher { FILE: internal/httpserver/logger.go type Logger (line 5) | type Logger interface FILE: internal/httpserver/logger_mock_test.go type MockLogger (line 14) | type MockLogger struct method EXPECT (line 32) | func (m *MockLogger) EXPECT() *MockLoggerMockRecorder { method Error (line 37) | func (m *MockLogger) Error(arg0 string) { method Info (line 49) | func (m *MockLogger) Info(arg0 string) { method Warn (line 61) | func (m *MockLogger) Warn(arg0 string) { type MockLoggerMockRecorder (line 20) | type MockLoggerMockRecorder struct method Error (line 43) | func (mr *MockLoggerMockRecorder) Error(arg0 interface{}) *gomock.Call { method Info (line 55) | func (mr *MockLoggerMockRecorder) Info(arg0 interface{}) *gomock.Call { method Warn (line 67) | func (mr *MockLoggerMockRecorder) Warn(arg0 interface{}) *gomock.Call { function NewMockLogger (line 25) | func NewMockLogger(ctrl *gomock.Controller) *MockLogger { FILE: internal/httpserver/run.go method Run (line 13) | func (s *Server) Run(ctx context.Context, ready chan<- struct{}, done ch... FILE: internal/httpserver/run_test.go function Test_Server_Run_success (line 13) | func Test_Server_Run_success(t *testing.T) { function Test_Server_Run_failure (line 48) | func Test_Server_Run_failure(t *testing.T) { FILE: internal/httpserver/server.go type Server (line 11) | type Server struct function New (line 23) | func New(settings Settings) (s *Server, err error) { FILE: internal/httpserver/server_test.go function Test_New (line 14) | func Test_New(t *testing.T) { FILE: internal/httpserver/settings.go type Settings (line 15) | type Settings struct method SetDefaults (line 36) | func (s *Settings) SetDefaults() { method Copy (line 45) | func (s Settings) Copy() Settings { method OverrideWith (line 56) | func (s *Settings) OverrideWith(other Settings) { method Validate (line 75) | func (s Settings) Validate() (err error) { method ToLinesNode (line 112) | func (s Settings) ToLinesNode() (node *gotree.Node) { method String (line 121) | func (s Settings) String() string { FILE: internal/httpserver/settings_test.go function Test_Settings_SetDefaults (line 12) | func Test_Settings_SetDefaults(t *testing.T) { function Test_Settings_Copy (line 57) | func Test_Settings_Copy(t *testing.T) { function Test_Settings_OverrideWith (line 99) | func Test_Settings_OverrideWith(t *testing.T) { function Test_Settings_Validate (line 184) | func Test_Settings_Validate(t *testing.T) { function Test_Settings_String (line 276) | func Test_Settings_String(t *testing.T) { FILE: internal/loopstate/apply.go method ApplyStatus (line 18) | func (s *State) ApplyStatus(ctx context.Context, status models.LoopStatu... FILE: internal/loopstate/get.go method GetStatus (line 6) | func (s *State) GetStatus() (status models.LoopStatus) { FILE: internal/loopstate/lock.go method Lock (line 3) | func (s *State) Lock() { s.loopMu.Lock() } method Unlock (line 4) | func (s *State) Unlock() { s.loopMu.Unlock() } FILE: internal/loopstate/set.go method SetStatus (line 8) | func (s *State) SetStatus(status models.LoopStatus) { FILE: internal/loopstate/state.go function New (line 9) | func New(status models.LoopStatus, type State (line 22) | type State struct FILE: internal/mod/configgz_linux.go function checkProcConfig (line 26) | func checkProcConfig(moduleName string) error { function moduleNameToKernelFeatureGroups (line 77) | func moduleNameToKernelFeatureGroups(moduleName string) (featureGroups [... function allFeaturesOK (line 148) | func allFeaturesOK(featureToOK map[string]bool) bool { FILE: internal/mod/info_linux.go type state (line 17) | type state constant unloaded (line 20) | unloaded state = iota constant loading (line 21) | loading constant loaded (line 22) | loaded constant builtin (line 23) | builtin type moduleInfo (line 26) | type moduleInfo struct function getModulesInfo (line 33) | func getModulesInfo(modulesPath string) (modulesInfo map[string]moduleIn... function getModulesPath (line 85) | func getModulesPath() (string, error) { function getReleaseName (line 107) | func getReleaseName() (release string, err error) { function getBuiltinModules (line 118) | func getBuiltinModules(modulesDirPath string, modulesInfo map[string]mod... function getLoadedModules (line 149) | func getLoadedModules(modulesInfo map[string]moduleInfo) (err error) { function findModulePath (line 186) | func findModulePath(moduleName string, modulesInfo map[string]moduleInfo... FILE: internal/mod/load_linux.go function initDependencies (line 22) | func initDependencies(path string, modulesInfo map[string]moduleInfo) (e... function initModule (line 57) | func initModule(path string) (err error) { FILE: internal/mod/probe_linux.go function Probe (line 16) | func Probe(moduleName string) error { function modProbe (line 40) | func modProbe(modulesPath, moduleName string) error { FILE: internal/mod/probe_unspecified.go function Probe (line 5) | func Probe(moduleName string) error { FILE: internal/models/alias.go type LoopStatus (line 5) | type LoopStatus method String (line 8) | func (ls LoopStatus) String() string { FILE: internal/models/build.go type BuildInformation (line 3) | type BuildInformation struct FILE: internal/models/connection.go type Connection (line 7) | type Connection struct method Equal (line 28) | func (c *Connection) Equal(other Connection) bool { method UpdateEmptyWith (line 37) | func (c *Connection) UpdateEmptyWith(ip netip.Addr, port uint16, proto... FILE: internal/models/filters.go type FilterChoices (line 3) | type FilterChoices struct FILE: internal/models/markdown.go function boolToMarkdown (line 12) | func boolToMarkdown(b bool) string { function markdownTableHeading (line 19) | func markdownTableHeading(legendFields ...string) (markdown string) { constant categoriesHeader (line 25) | categoriesHeader = "Categories" constant cityHeader (line 26) | cityHeader = "City" constant countryHeader (line 27) | countryHeader = "Country" constant freeHeader (line 28) | freeHeader = "Free" constant hostnameHeader (line 29) | hostnameHeader = "Hostname" constant ispHeader (line 30) | ispHeader = "ISP" constant multiHopHeader (line 31) | multiHopHeader = "MultiHop" constant nameHeader (line 32) | nameHeader = "Name" constant numberHeader (line 33) | numberHeader = "Number" constant ownedHeader (line 34) | ownedHeader = "Owned" constant portForwardHeader (line 35) | portForwardHeader = "Port forwarding" constant premiumHeader (line 36) | premiumHeader = "Premium" constant regionHeader (line 37) | regionHeader = "Region" constant secureHeader (line 38) | secureHeader = "Secure" constant streamHeader (line 39) | streamHeader = "Stream" constant tcpHeader (line 40) | tcpHeader = "TCP" constant torHeader (line 41) | torHeader = "Tor" constant udpHeader (line 42) | udpHeader = "UDP" constant vpnHeader (line 43) | vpnHeader = "VPN" method ToMarkdown (line 46) | func (s *Server) ToMarkdown(headers ...string) (markdown string) { method toMarkdown (line 94) | func (s *Servers) toMarkdown(vpnProvider string) (formatted string, err ... function getMarkdownHeaders (line 114) | func getMarkdownHeaders(vpnProvider string) (headers []string, err error) { FILE: internal/models/markdown_test.go function Test_Servers_ToMarkdown (line 11) | func Test_Servers_ToMarkdown(t *testing.T) { FILE: internal/models/publicip.go type PublicIP (line 7) | type PublicIP struct method Copy (line 19) | func (p *PublicIP) Copy() (publicIPCopy PublicIP) { FILE: internal/models/server.go type Server (line 13) | type Server struct method HasMinimumInformation (line 50) | func (s *Server) HasMinimumInformation() (err error) { method Equal (line 67) | func (s *Server) Equal(other Server) (equal bool) { method Key (line 92) | func (s *Server) Key() (key string) { function ipsAreEqual (line 78) | func ipsAreEqual(a, b []netip.Addr) (equal bool) { FILE: internal/models/server_test.go function Test_Server_Equal (line 10) | func Test_Server_Equal(t *testing.T) { FILE: internal/models/servers.go type AllServers (line 15) | type AllServers struct method MarshalJSON (line 26) | func (a *AllServers) MarshalJSON() (data []byte, err error) { method UnmarshalJSON (line 77) | func (a *AllServers) UnmarshalJSON(data []byte) (err error) { method Count (line 148) | func (a *AllServers) Count() (count int) { type Servers (line 155) | type Servers struct method Format (line 163) | func (s *Servers) Format(vpnProvider, format string) (formatted string... method toJSON (line 174) | func (s *Servers) toJSON() (formatted string, err error) { FILE: internal/models/servers_test.go function Test_AllServers_MarshalJSON (line 13) | func Test_AllServers_MarshalJSON(t *testing.T) { function Test_AllServers_UnmarshalJSON (line 84) | func Test_AllServers_UnmarshalJSON(t *testing.T) { function Test_AllServers_JSON_Marshal_Unmarshal (line 143) | func Test_AllServers_JSON_Marshal_Unmarshal(t *testing.T) { FILE: internal/models/sort.go type SortableServers (line 7) | type SortableServers method Len (line 9) | func (s SortableServers) Len() int { method Swap (line 13) | func (s SortableServers) Swap(i, j int) { method Less (line 17) | func (s SortableServers) Less(i, j int) bool { FILE: internal/natpmp/checks.go function checkRequest (line 11) | func checkRequest(request []byte) (err error) { function checkResponse (line 28) | func checkResponse(response []byte, expectedOperationCode byte, function checkResultCode (line 76) | func checkResultCode(resultCode uint16) (err error) { FILE: internal/natpmp/checks_test.go function Test_checkRequest (line 9) | func Test_checkRequest(t *testing.T) { function Test_checkResponse (line 41) | func Test_checkResponse(t *testing.T) { function Test_checkResultCode (line 105) | func Test_checkResultCode(t *testing.T) { FILE: internal/natpmp/externaladdress.go method ExternalAddress (line 14) | func (c *Client) ExternalAddress(ctx context.Context, gateway netip.Addr) ( FILE: internal/natpmp/externaladdress_test.go function Test_Client_ExternalAddress (line 13) | func Test_Client_ExternalAddress(t *testing.T) { FILE: internal/natpmp/helpers_test.go constant initialConnectionDuration (line 14) | initialConnectionDuration = 3 * time.Second type udpExchange (line 16) | type udpExchange struct function launchUDPServer (line 29) | func launchUDPServer(t *testing.T, exchanges []udpExchange) ( FILE: internal/natpmp/natpmp.go type Client (line 8) | type Client struct function New (line 15) | func New() (client *Client) { FILE: internal/natpmp/natpmp_test.go function Test_New (line 10) | func Test_New(t *testing.T) { FILE: internal/natpmp/portmapping.go method AddPortMapping (line 20) | func (c *Client) AddPortMapping(ctx context.Context, gateway netip.Addr, FILE: internal/natpmp/portmapping_test.go function Test_Client_AddPortMapping (line 12) | func Test_Client_AddPortMapping(t *testing.T) { FILE: internal/natpmp/rpc.go method rpc (line 19) | func (c *Client) rpc(ctx context.Context, gateway netip.Addr, function dedupFailedAttempts (line 133) | func dedupFailedAttempts(failedAttempts []string) (errorMessage string) { function indicesToTryString (line 169) | func indicesToTryString(indices []int) string { FILE: internal/natpmp/rpc_test.go function Test_Client_rpc (line 12) | func Test_Client_rpc(t *testing.T) { function Test_dedupFailedAttempts (line 168) | func Test_dedupFailedAttempts(t *testing.T) { FILE: internal/netlink/address.go method AddrList (line 11) | func (n *NetLink) AddrList(linkIndex uint32, family uint8) ( method AddrReplace (line 36) | func (n *NetLink) AddrReplace(linkIndex uint32, prefix netip.Prefix) err... FILE: internal/netlink/conntrack_linux.go method FlushConntrack (line 10) | func (n *NetLink) FlushConntrack() error { FILE: internal/netlink/conntrack_unspecified.go method FlushConntrack (line 5) | func (n *NetLink) FlushConntrack() error { FILE: internal/netlink/conversion.go function netipPrefixToIPNet (line 9) | func netipPrefixToIPNet(prefix netip.Prefix) (ipNet *net.IPNet) { function netIPNetToNetipPrefix (line 24) | func netIPNetToNetipPrefix(ipNet *net.IPNet) (prefix netip.Prefix) { function ipAndLengthToPrefix (line 39) | func ipAndLengthToPrefix(ip *net.IP, length uint8) netip.Prefix { function prefixToIPAndLength (line 52) | func prefixToIPAndLength(prefix netip.Prefix) (ip *net.IP, length uint8) { function netipAddrToNetIP (line 63) | func netipAddrToNetIP(address netip.Addr) (ip net.IP) { function netIPToNetipAddress (line 76) | func netIPToNetipAddress(ip net.IP) (address netip.Addr) { FILE: internal/netlink/conversion_test.go function Test_netipPrefixToIPNet (line 11) | func Test_netipPrefixToIPNet(t *testing.T) { function Test_netIPNetToNetipPrefix (line 55) | func Test_netIPNetToNetipPrefix(t *testing.T) { function Test_netIPToNetipAddress (line 102) | func Test_netIPToNetipAddress(t *testing.T) { FILE: internal/netlink/family.go function FamilyToString (line 7) | func FamilyToString(family uint8) string { FILE: internal/netlink/family_linux.go constant FamilyAll (line 6) | FamilyAll uint8 = unix.AF_UNSPEC constant FamilyV4 (line 7) | FamilyV4 uint8 = unix.AF_INET constant FamilyV6 (line 8) | FamilyV6 uint8 = unix.AF_INET6 FILE: internal/netlink/helpers_test.go function ptrTo (line 10) | func ptrTo[T any](v T) *T { return &v } function makeNetipPrefix (line 12) | func makeNetipPrefix(n byte) netip.Prefix { function makeLinkName (line 19) | func makeLinkName() string { type noopLogger (line 28) | type noopLogger struct method Debug (line 30) | func (l *noopLogger) Debug(_ string) {} method Debugf (line 31) | func (l *noopLogger) Debugf(_ string, _ ...any) {} method Patch (line 32) | func (l *noopLogger) Patch(_ ...log.Option) {} FILE: internal/netlink/interfaces.go type DebugLogger (line 5) | type DebugLogger interface FILE: internal/netlink/ipv6.go method IsIPv6Supported (line 7) | func (n *NetLink) IsIPv6Supported() (supported bool, err error) { FILE: internal/netlink/link.go type DeviceType (line 10) | type DeviceType type Link (line 12) | type Link struct method LinkList (line 20) | func (n *NetLink) LinkList() (links []Link, err error) { method LinkByName (line 52) | func (n *NetLink) LinkByName(name string) (link Link, err error) { method LinkByIndex (line 67) | func (n *NetLink) LinkByIndex(index uint32) (link Link, err error) { method LinkAdd (line 82) | func (n *NetLink) LinkAdd(link Link) (linkIndex uint32, err error) { method LinkDel (line 120) | func (n *NetLink) LinkDel(linkIndex uint32) (err error) { method LinkSetUp (line 130) | func (n *NetLink) LinkSetUp(linkIndex uint32) (err error) { method LinkSetDown (line 150) | func (n *NetLink) LinkSetDown(linkIndex uint32) (err error) { method LinkSetMTU (line 170) | func (n *NetLink) LinkSetMTU(linkIndex, mtu uint32) error { FILE: internal/netlink/link_linux.go constant DeviceTypeEthernet (line 6) | DeviceTypeEthernet DeviceType = unix.ARPHRD_ETHER constant DeviceTypeLoopback (line 7) | DeviceTypeLoopback DeviceType = unix.ARPHRD_LOOPBACK constant DeviceTypeNone (line 8) | DeviceTypeNone DeviceType = unix.ARPHRD_NONE constant iffUp (line 10) | iffUp = unix.IFF_UP FILE: internal/netlink/link_test.go function Test_NetLink_LinkList (line 12) | func Test_NetLink_LinkList(t *testing.T) { function Test_NetLink_LinkSetMTU (line 60) | func Test_NetLink_LinkSetMTU(t *testing.T) { FILE: internal/netlink/netlink.go type NetLink (line 5) | type NetLink struct method PatchLoggerLevel (line 15) | func (n *NetLink) PatchLoggerLevel(level log.Level) { function New (line 9) | func New(debugLogger DebugLogger) *NetLink { FILE: internal/netlink/netlink_unspecified.go constant FamilyAll (line 8) | FamilyAll uint8 = iota constant FamilyV4 (line 11) | FamilyV4 constant FamilyV6 (line 14) | FamilyV6 constant DeviceTypeEthernet (line 17) | DeviceTypeEthernet DeviceType = 0 constant DeviceTypeLoopback (line 19) | DeviceTypeLoopback DeviceType = 0 constant DeviceTypeNone (line 21) | DeviceTypeNone DeviceType = 0 constant iffUp (line 24) | iffUp = 0 constant RouteTypeUnicast (line 27) | RouteTypeUnicast = 0 constant ScopeUniverse (line 29) | ScopeUniverse = 0 constant ProtoStatic (line 31) | ProtoStatic = 0 constant FlagInvert (line 34) | FlagInvert = 0 constant ActionToTable (line 36) | ActionToTable = 0 constant rtTableCompat (line 39) | rtTableCompat = 0 method RuleList (line 42) | func (n *NetLink) RuleList(family uint8) (rules []Rule, err error) { method RuleAdd (line 46) | func (n *NetLink) RuleAdd(rule Rule) error { method RuleDel (line 50) | func (n *NetLink) RuleDel(rule Rule) error { method IsWireguardSupported (line 54) | func (n *NetLink) IsWireguardSupported() (bool, error) { FILE: internal/netlink/route.go type Route (line 10) | type Route struct method fromMessage (line 24) | func (r *Route) fromMessage(message rtnetlink.RouteMessage) { method message (line 44) | func (r Route) message() *rtnetlink.RouteMessage { method RouteList (line 85) | func (n *NetLink) RouteList(family uint8) (routes []Route, err error) { method RouteAdd (line 109) | func (n *NetLink) RouteAdd(route Route) error { method RouteDel (line 119) | func (n *NetLink) RouteDel(route Route) error { method RouteReplace (line 129) | func (n *NetLink) RouteReplace(route Route) error { FILE: internal/netlink/route_linux.go constant RouteTypeUnicast (line 6) | RouteTypeUnicast = unix.RTN_UNICAST constant ScopeUniverse (line 7) | ScopeUniverse = unix.RT_SCOPE_UNIVERSE constant ProtoStatic (line 8) | ProtoStatic = unix.RTPROT_STATIC constant rtTableCompat (line 10) | rtTableCompat = unix.RT_TABLE_COMPAT FILE: internal/netlink/rule.go type Rule (line 10) | type Rule struct method fromMessage (line 21) | func (r *Rule) fromMessage(message rtnetlink.RuleMessage) { method message (line 36) | func (r Rule) message() *rtnetlink.RuleMessage { method String (line 64) | func (r Rule) String() string { method debugMessage (line 84) | func (r Rule) debugMessage(add bool) (debugMessage string) { FILE: internal/netlink/rule_linux.go constant FlagInvert (line 11) | FlagInvert = unix.FIB_RULE_INVERT constant ActionToTable (line 12) | ActionToTable = unix.FR_ACT_TO_TBL method RuleList (line 15) | func (n *NetLink) RuleList(family uint8) (rules []Rule, err error) { method RuleAdd (line 49) | func (n *NetLink) RuleAdd(rule Rule) error { method RuleDel (line 60) | func (n *NetLink) RuleDel(rule Rule) error { FILE: internal/netlink/rule_test.go function Test_Rule_debugMessage (line 9) | func Test_Rule_debugMessage(t *testing.T) { FILE: internal/netlink/wireguard_linux.go method IsWireguardSupported (line 12) | func (n *NetLink) IsWireguardSupported() (ok bool, err error) { function hasWireguardFamily (line 42) | func hasWireguardFamily() (ok bool, err error) { FILE: internal/netlink/wireguard_test.go function Test_NetLink_IsWireguardSupported (line 11) | func Test_NetLink_IsWireguardSupported(t *testing.T) { FILE: internal/openvpn/auth.go method WriteAuthFile (line 10) | func (c *Configurator) WriteAuthFile(user, password string) error { method WriteAskPassFile (line 16) | func (c *Configurator) WriteAskPassFile(passphrase string) error { function writeIfDifferent (line 20) | func writeIfDifferent(path, content string, puid, pgid int) (err error) { FILE: internal/openvpn/config.go method WriteConfig (line 8) | func (c *Configurator) WriteConfig(lines []string) error { FILE: internal/openvpn/extract/data.go method Data (line 16) | func (e *Extractor) Data(filepath string) (lines []string, FILE: internal/openvpn/extract/extract.go function extractDataFromLines (line 16) | func extractDataFromLines(lines []string) ( function extractDataFromLine (line 55) | func extractDataFromLine(line string) ( function extractProto (line 86) | func extractProto(line string) (protocol string, err error) { function parseProto (line 97) | func parseProto(field string) (protocol string, err error) { function extractRemote (line 119) | func extractRemote(line string) (ip netip.Addr, port uint16, function extractPort (line 159) | func extractPort(line string) (port uint16, err error) { FILE: internal/openvpn/extract/extract_test.go function Test_extractDataFromLines (line 14) | func Test_extractDataFromLines(t *testing.T) { function Test_extractDataFromLine (line 85) | func Test_extractDataFromLine(t *testing.T) { function Test_extractProto (line 149) | func Test_extractProto(t *testing.T) { function Test_extractRemote (line 193) | func Test_extractRemote(t *testing.T) { FILE: internal/openvpn/extract/extractor.go type Extractor (line 3) | type Extractor struct function New (line 5) | func New() *Extractor { FILE: internal/openvpn/extract/helpers_test.go function removeFile (line 10) | func removeFile(t *testing.T, filename string) { FILE: internal/openvpn/extract/pem.go function PEM (line 12) | func PEM(b []byte) (encodedData string, err error) { FILE: internal/openvpn/extract/pem_test.go function Test_PEM (line 10) | func Test_PEM(t *testing.T) { constant validCertPEM (line 57) | validCertPEM = ` constant validCertData (line 97) | validCertData = "MIIGrDCCBJSgAwIBAgIEAdTnfTANBgkqhkiG9w0BAQsFADB7MQswCQY... FILE: internal/openvpn/extract/read.go function readCustomConfigLines (line 9) | func readCustomConfigLines(filepath string) ( FILE: internal/openvpn/extract/read_test.go function Test_readCustomConfigLines (line 11) | func Test_readCustomConfigLines(t *testing.T) { FILE: internal/openvpn/interfaces.go type CmdStarter (line 5) | type CmdStarter interface type CmdRunStarter (line 11) | type CmdRunStarter interface FILE: internal/openvpn/logger.go type Logger (line 3) | type Logger interface type Infoer (line 10) | type Infoer interface FILE: internal/openvpn/logs.go type logLevel (line 10) | type logLevel constant levelInfo (line 13) | levelInfo logLevel = iota constant levelWarn (line 14) | levelWarn constant levelError (line 15) | levelError function processLogLine (line 18) | func processLogLine(s string) (filtered string, level logLevel) { FILE: internal/openvpn/logs_test.go function Test_processLogLine (line 9) | func Test_processLogLine(t *testing.T) { FILE: internal/openvpn/openvpn.go type Configurator (line 7) | type Configurator struct function New (line 16) | func New(logger Infoer, cmder CmdRunStarter, FILE: internal/openvpn/paths.go constant configPath (line 3) | configPath = "/etc/openvpn/target.ovpn" FILE: internal/openvpn/pkcs8/algorithms.go type encryptedPrivateKey (line 16) | type encryptedPrivateKey struct type encryptedAlgorithmParams (line 21) | type encryptedAlgorithmParams struct function getEncryptionAlgorithmOid (line 26) | func getEncryptionAlgorithmOid(der []byte) ( FILE: internal/openvpn/pkcs8/algorithms_test.go function Test_getEncryptionAlgorithmOid (line 17) | func Test_getEncryptionAlgorithmOid(t *testing.T) { FILE: internal/openvpn/pkcs8/descbc.go function init (line 13) | func init() { //nolint:gochecknoinits function newCipherDESCBCBlock (line 17) | func newCipherDESCBCBlock() pkcs8lib.Cipher { type cipherDESCBC (line 21) | type cipherDESCBC struct method IVSize (line 23) | func (c cipherDESCBC) IVSize() int { method KeySize (line 27) | func (c cipherDESCBC) KeySize() int { method OID (line 31) | func (c cipherDESCBC) OID() asn1.ObjectIdentifier { method Encrypt (line 35) | func (c cipherDESCBC) Encrypt(key, iv, plaintext []byte) ([]byte, erro... method Decrypt (line 50) | func (c cipherDESCBC) Decrypt(key, iv, ciphertext []byte) ([]byte, err... FILE: internal/openvpn/pkcs8/upgrade.go function UpgradeEncryptedKey (line 22) | func UpgradeEncryptedKey(encryptedPKCS8DERKey, passphrase string) (secur... FILE: internal/openvpn/pkcs8/upgrade_test.go function parsePEMFile (line 15) | func parsePEMFile(t *testing.T, pemFilepath string) (base64DER string) { function Test_UpgradeEncryptedKey (line 29) | func Test_UpgradeEncryptedKey(t *testing.T) { FILE: internal/openvpn/run.go type Runner (line 9) | type Runner struct method Run (line 25) | func (r *Runner) Run(ctx context.Context, errCh chan<- error, ready ch... function NewRunner (line 15) | func NewRunner(settings settings.OpenVPN, starter CmdStarter, FILE: internal/openvpn/start.go constant binOpenvpn25 (line 15) | binOpenvpn25 = "openvpn2.5" constant binOpenvpn26 (line 16) | binOpenvpn26 = "openvpn2.6" function start (line 19) | func start(ctx context.Context, starter CmdStarter, version string, flag... FILE: internal/openvpn/start_linux.go function setCmdSysProcAttr (line 8) | func setCmdSysProcAttr(cmd *exec.Cmd) { FILE: internal/openvpn/start_unspecified.go function setCmdSysProcAttr (line 10) | func setCmdSysProcAttr(cmd *exec.Cmd) { FILE: internal/openvpn/stream.go function streamLines (line 8) | func streamLines(ctx context.Context, done chan<- struct{}, FILE: internal/openvpn/version.go method Version25 (line 11) | func (c *Configurator) Version25(ctx context.Context) (version string, e... method Version26 (line 15) | func (c *Configurator) Version26(ctx context.Context) (version string, e... method version (line 21) | func (c *Configurator) version(ctx context.Context, binName string) (ver... FILE: internal/pmtud/constants/lengths.go constant MaxEthernetFrameSize (line 4) | MaxEthernetFrameSize uint32 = 1500 constant MinIPv4MTU (line 7) | MinIPv4MTU uint32 = 68 constant MinIPv6MTU (line 8) | MinIPv6MTU uint32 = 1280 constant IPv4HeaderLength (line 10) | IPv4HeaderLength uint32 = 20 constant IPv6HeaderLength (line 11) | IPv6HeaderLength uint32 = 40 constant UDPHeaderLength (line 12) | UDPHeaderLength uint32 = 8 constant BaseTCPHeaderLength (line 15) | BaseTCPHeaderLength uint32 = 20 constant MaxTCPHeaderLength (line 18) | MaxTCPHeaderLength uint32 = 60 constant WireguardHeaderLength (line 19) | WireguardHeaderLength uint32 = 32 constant OpenVPNHeaderMaxLength (line 20) | OpenVPNHeaderMaxLength uint32 = 1 + // opcode FILE: internal/pmtud/constants/syscall_unix.go constant SOCK_RAW (line 9) | SOCK_RAW = unix.SOCK_RAW constant SOCK_STREAM (line 10) | SOCK_STREAM = unix.SOCK_STREAM constant AF_INET (line 11) | AF_INET = unix.AF_INET constant AF_INET6 (line 12) | AF_INET6 = unix.AF_INET6 constant IPPROTO_TCP (line 13) | IPPROTO_TCP = unix.IPPROTO_TCP constant EAGAIN (line 14) | EAGAIN = unix.EAGAIN constant EWOULDBLOCK (line 15) | EWOULDBLOCK = unix.EWOULDBLOCK FILE: internal/pmtud/constants/syscall_windows.go constant SOCK_RAW (line 6) | SOCK_RAW = windows.SOCK_RAW constant SOCK_STREAM (line 7) | SOCK_STREAM = windows.SOCK_STREAM constant AF_INET (line 8) | AF_INET = windows.AF_INET constant AF_INET6 (line 9) | AF_INET6 = windows.AF_INET6 constant IPPROTO_TCP (line 10) | IPPROTO_TCP = windows.IPPROTO_TCP constant EAGAIN (line 11) | EAGAIN = windows.WSAEWOULDBLOCK constant EWOULDBLOCK (line 12) | EWOULDBLOCK = windows.WSAEWOULDBLOCK FILE: internal/pmtud/icmp/apple_ipv4.go type ipv4Wrapper (line 14) | type ipv4Wrapper struct method ReadFrom (line 22) | func (i *ipv4Wrapper) ReadFrom(p []byte) (n int, addr net.Addr, err er... method WriteTo (line 27) | func (i *ipv4Wrapper) WriteTo(p []byte, addr net.Addr) (n int, err err... method Close (line 31) | func (i *ipv4Wrapper) Close() error { method LocalAddr (line 35) | func (i *ipv4Wrapper) LocalAddr() net.Addr { method SetDeadline (line 39) | func (i *ipv4Wrapper) SetDeadline(t time.Time) error { method SetReadDeadline (line 43) | func (i *ipv4Wrapper) SetReadDeadline(t time.Time) error { method SetWriteDeadline (line 47) | func (i *ipv4Wrapper) SetWriteDeadline(t time.Time) error { function ipv4ToNetPacketConn (line 18) | func ipv4ToNetPacketConn(ipv4 *ipv4.PacketConn) *ipv4Wrapper { FILE: internal/pmtud/icmp/check.go function checkMTU (line 16) | func checkMTU(mtu, minMTU, physicalLinkMTU uint32) (err error) { function checkInvokingReplyIDMatch (line 28) | func checkInvokingReplyIDMatch(icmpProtocol int, received []byte, function checkEchoReply (line 45) | func checkEchoReply(icmpProtocol int, received []byte, function checkEchoBodies (line 70) | func checkEchoBodies(sent, received []byte, receivedTruncated bool) (err... FILE: internal/pmtud/icmp/df_linux.go function setDontFragment (line 7) | func setDontFragment(fd uintptr, ipv4 bool) (err error) { FILE: internal/pmtud/icmp/df_unspecified.go function setDontFragment (line 8) | func setDontFragment(fd uintptr, ipv4 bool) (err error) { FILE: internal/pmtud/icmp/df_windows.go function setDontFragment (line 7) | func setDontFragment(fd uintptr, ipv4 bool) (err error) { FILE: internal/pmtud/icmp/errors.go function wrapConnErr (line 20) | func wrapConnErr(err error, timedCtx context.Context, pingTimeout time.D... FILE: internal/pmtud/icmp/icmp.go function PathMTUDiscover (line 19) | func PathMTUDiscover(ctx context.Context, ip netip.Addr, FILE: internal/pmtud/icmp/interfaces.go type Logger (line 3) | type Logger interface FILE: internal/pmtud/icmp/ipv4.go constant icmpv4Protocol (line 20) | icmpv4Protocol = 1 function listenICMPv4 (line 23) | func listenICMPv4(ctx context.Context) (conn net.PacketConn, err error) { function findIPv4NextHopMTU (line 53) | func findIPv4NextHopMTU(ctx context.Context, ip netip.Addr, FILE: internal/pmtud/icmp/ipv6.go constant icmpv6Protocol (line 18) | icmpv6Protocol = 58 function listenICMPv6 (line 21) | func listenICMPv6(ctx context.Context) (conn net.PacketConn, err error) { function getIPv6PacketTooBig (line 45) | func getIPv6PacketTooBig(ctx context.Context, ip netip.Addr, FILE: internal/pmtud/icmp/message.go function buildMessageToSend (line 14) | func buildMessageToSend(ipVersion string, mtu uint32) (id uint16, messag... FILE: internal/pmtud/icmp/multi.go type icmpTestUnit (line 16) | type icmpTestUnit struct function pmtudMultiSizes (line 23) | func pmtudMultiSizes(ctx context.Context, ip netip.Addr, constant maxPossibleMTU (line 112) | maxPossibleMTU = 9196 function collectReplies (line 114) | func collectReplies(conn net.PacketConn, ipVersion string, FILE: internal/pmtud/interfaces.go type Logger (line 3) | type Logger interface FILE: internal/pmtud/ip/family.go function GetFamilies (line 10) | func GetFamilies(dsts []netip.AddrPort) (families []int) { function GetFamily (line 22) | func GetFamily(dst netip.AddrPort) int { FILE: internal/pmtud/ip/ipheader.go function HeaderLength (line 10) | func HeaderLength(ipv4 bool) uint32 { function HeaderV4 (line 17) | func HeaderV4(srcIP, dstIP netip.Addr, payloadLength uint32) []byte { function ipChecksum (line 44) | func ipChecksum(header []byte) uint16 { function HeaderV6 (line 61) | func HeaderV6(srcIP, dstIP netip.Addr, FILE: internal/pmtud/ip/ipheader_darwin.go function putUint16 (line 7) | func putUint16(b []byte, v uint16) { FILE: internal/pmtud/ip/ipheader_unspecified.go function putUint16 (line 7) | func putUint16(b []byte, v uint16) { FILE: internal/pmtud/ip/ipv4_unix.go function SetIPv4HeaderIncluded (line 7) | func SetIPv4HeaderIncluded(fd int) error { FILE: internal/pmtud/ip/ipv4_unspecified.go function SetIPv4HeaderIncluded (line 5) | func SetIPv4HeaderIncluded(fd int) error { FILE: internal/pmtud/ip/ipv4_windows.go function SetIPv4HeaderIncluded (line 7) | func SetIPv4HeaderIncluded(handle windows.Handle) error { FILE: internal/pmtud/ip/source.go function SrcAddr (line 17) | func SrcAddr(dst netip.AddrPort, proto int) (src netip.AddrPort, cleanup... function srcIP (line 36) | func srcIP(dst netip.Addr) (netip.Addr, error) { function srcPort (line 82) | func srcPort(srcAddr netip.Addr, proto int) (srcPort uint16, cleanup fun... FILE: internal/pmtud/ip/source_unix.go function socket (line 12) | func socket(domain int, typ int, proto int) (fd int, err error) { function closeSocket (line 16) | func closeSocket(fd int) error { function bind (line 20) | func bind(fd int, addr unix.Sockaddr) error { function makeSockAddr (line 24) | func makeSockAddr(ip netip.Addr, port uint16) unix.Sockaddr { function extractPortFromFD (line 37) | func extractPortFromFD(fd int) (uint16, error) { FILE: internal/pmtud/ip/source_windows.go function socket (line 10) | func socket(domain int, typ int, proto int) (fd windows.Handle, err erro... function closeSocket (line 14) | func closeSocket(fd windows.Handle) error { function bind (line 18) | func bind(fd windows.Handle, addr windows.Sockaddr) error { function makeSockAddr (line 22) | func makeSockAddr(ip netip.Addr, port uint16) windows.Sockaddr { function extractPortFromFD (line 35) | func extractPortFromFD(fd windows.Handle) (uint16, error) { FILE: internal/pmtud/nooplogger.go type noopLogger (line 3) | type noopLogger struct method Debug (line 5) | func (noopLogger) Debug(_ string) {} method Debugf (line 6) | func (noopLogger) Debugf(_ string, _ ...any) {} method Warnf (line 7) | func (noopLogger) Warnf(_ string, _ ...any) {} FILE: internal/pmtud/pmtud.go function PathMTUDiscover (line 31) | func PathMTUDiscover(ctx context.Context, icmpAddrs []netip.Addr, tcpAdd... FILE: internal/pmtud/pmtud_integration_test.go function Test_PathMTUDiscover (line 14) | func Test_PathMTUDiscover(t *testing.T) { FILE: internal/pmtud/tcp/helpers_test.go function getFirewall (line 31) | func getFirewall(t *testing.T) *firewall.Config { type noopLogger (line 50) | type noopLogger struct method Patch (line 52) | func (l *noopLogger) Patch(_ ...log.Option) {} method Debug (line 53) | func (l *noopLogger) Debug(_ string) {} method Debugf (line 54) | func (l *noopLogger) Debugf(_ string, _ ...any) {} method Info (line 55) | func (l *noopLogger) Info(_ string) {} method Warn (line 56) | func (l *noopLogger) Warn(_ string) {} method Warnf (line 57) | func (l *noopLogger) Warnf(_ string, _ ...any) {} method Error (line 58) | func (l *noopLogger) Error(_ string) {} function findLoopbackMTU (line 62) | func findLoopbackMTU(netlinker *netlink.NetLink) (mtu uint32, err error) { function findDefaultRouteMTU (line 82) | func findDefaultRouteMTU(netlinker *netlink.NetLink) (mtu uint32, err er... function reserveClosedPort (line 108) | func reserveClosedPort(t *testing.T) (port uint16) { FILE: internal/pmtud/tcp/interfaces.go type Firewall (line 8) | type Firewall interface type Logger (line 13) | type Logger interface FILE: internal/pmtud/tcp/mocks_test.go type MockLogger (line 14) | type MockLogger struct method EXPECT (line 32) | func (m *MockLogger) EXPECT() *MockLoggerMockRecorder { method Debug (line 37) | func (m *MockLogger) Debug(arg0 string) { method Debugf (line 49) | func (m *MockLogger) Debugf(arg0 string, arg1 ...interface{}) { method Warnf (line 66) | func (m *MockLogger) Warnf(arg0 string, arg1 ...interface{}) { type MockLoggerMockRecorder (line 20) | type MockLoggerMockRecorder struct method Debug (line 43) | func (mr *MockLoggerMockRecorder) Debug(arg0 interface{}) *gomock.Call { method Debugf (line 59) | func (mr *MockLoggerMockRecorder) Debugf(arg0 interface{}, arg1 ...int... method Warnf (line 76) | func (mr *MockLoggerMockRecorder) Warnf(arg0 interface{}, arg1 ...inte... function NewMockLogger (line 25) | func NewMockLogger(ctrl *gomock.Controller) *MockLogger { FILE: internal/pmtud/tcp/mss.go function findHighestMSSDestination (line 19) | func findHighestMSSDestination(ctx context.Context, familyToFD map[int]f... function findMSS (line 82) | func findMSS(ctx context.Context, fd fileDescriptor, dst netip.AddrPort, FILE: internal/pmtud/tcp/mss_test.go function Test_findHighestMSSDestination (line 17) | func Test_findHighestMSSDestination(t *testing.T) { FILE: internal/pmtud/tcp/multi.go type testUnit (line 20) | type testUnit struct constant excludeMark (line 25) | excludeMark = 4545 function PathMTUDiscover (line 35) | func PathMTUDiscover(ctx context.Context, dsts []netip.AddrPort, function pathMTUDiscover (line 119) | func pathMTUDiscover(ctx context.Context, fd fileDescriptor, FILE: internal/pmtud/tcp/packet.go function createSYNPacket (line 17) | func createSYNPacket(src, dst netip.AddrPort, mtu uint32) (packet []byte... function createACKPacket (line 30) | func createACKPacket(src, dst netip.AddrPort, seq, ack uint32, mtu uint3... function createRSTPacket (line 39) | func createRSTPacket(src, dst netip.AddrPort, seq, ack uint32) []byte { function getPayloadLength (line 44) | func getPayloadLength(mtu uint32, dst netip.AddrPort) uint32 { function createPacket (line 57) | func createPacket(src, dst netip.AddrPort, function generatePayload (line 107) | func generatePayload(length uint16) []byte { function makeRandom (line 162) | func makeRandom(b []byte) { FILE: internal/pmtud/tcp/tcp.go function startRawSockets (line 13) | func startRawSockets(families []int, excludeMark int) (familyToSocket ma... function startRawSocket (line 36) | func startRawSocket(family, excludeMark int) (fd fileDescriptor, stop fu... function runTest (line 88) | func runTest(ctx context.Context, dst netip.AddrPort, mtu uint32, function handleRSTReply (line 203) | func handleRSTReply(ctx context.Context, fd fileDescriptor, ch <-chan []... function sendRST (line 231) | func sendRST(fd fileDescriptor, src, dst netip.AddrPort, FILE: internal/pmtud/tcp/tcp_darwin.go function stripIPv4Header (line 3) | func stripIPv4Header(reply []byte) (result []byte, ok bool) { FILE: internal/pmtud/tcp/tcp_integration_test.go function Test_PathMTUDiscover (line 19) | func Test_PathMTUDiscover(t *testing.T) { FILE: internal/pmtud/tcp/tcp_linux.go function setMark (line 12) | func setMark(fd, excludeMark int) error { function setMTUDiscovery (line 16) | func setMTUDiscovery(fd int, ipv4 bool) error { FILE: internal/pmtud/tcp/tcp_notdarwin.go function stripIPv4Header (line 9) | func stripIPv4Header(reply []byte) (result []byte, ok bool) { FILE: internal/pmtud/tcp/tcp_test.go function Test_runTest (line 18) | func Test_runTest(t *testing.T) { FILE: internal/pmtud/tcp/tcp_unix.go type fileDescriptor (line 13) | type fileDescriptor function socket (line 15) | func socket(domain int, typ int, proto int) (fd int, err error) { function closeSocket (line 19) | func closeSocket(fd int) error { function sendTo (line 23) | func sendTo(fd fileDescriptor, p []byte, flags int, to unix.Sockaddr) (e... function setSocketTimeout (line 27) | func setSocketTimeout(fd fileDescriptor, timeout time.Duration) (err err... function recvFrom (line 32) | func recvFrom(fd fileDescriptor, p []byte, flags int) (n int, from unix.... function setNonBlock (line 36) | func setNonBlock(fd int) error { function makeSockAddr (line 40) | func makeSockAddr(addr netip.AddrPort) unix.Sockaddr { FILE: internal/pmtud/tcp/tcp_unspecified.go function setMark (line 5) | func setMark(fd, excludeMark int) error { function setMTUDiscovery (line 9) | func setMTUDiscovery(fd int, ipv4 bool) error { FILE: internal/pmtud/tcp/tcp_windows.go type fileDescriptor (line 11) | type fileDescriptor function socket (line 13) | func socket(domain int, typ int, proto int) (fd windows.Handle, err erro... function closeSocket (line 17) | func closeSocket(fd windows.Handle) error { function sendTo (line 21) | func sendTo(fd fileDescriptor, p []byte, flags int, to windows.Sockaddr)... function setSocketTimeout (line 25) | func setSocketTimeout(fd fileDescriptor, timeout time.Duration) (err err... function recvFrom (line 30) | func recvFrom(fd fileDescriptor, p []byte, flags int) (n int, from windo... function setMark (line 34) | func setMark(fd windows.Handle, _ int) error { function setMTUDiscovery (line 38) | func setMTUDiscovery(fd windows.Handle, ipv4 bool) error { function setNonBlock (line 42) | func setNonBlock(fd windows.Handle) error { function makeSockAddr (line 51) | func makeSockAddr(addr netip.AddrPort) windows.Sockaddr { FILE: internal/pmtud/tcp/tcpheader.go function makeTCPHeader (line 13) | func makeTCPHeader(srcPort, dstPort uint16, seq, ack uint32, flags byte)... function tcpChecksum (line 31) | func tcpChecksum(ipHeader, tcpHeader, payload []byte) uint16 { constant finFlag (line 66) | finFlag byte = 0x01 constant synFlag (line 67) | synFlag byte = 0x02 constant rstFlag (line 68) | rstFlag byte = 0x04 constant pshFlag (line 69) | pshFlag byte = 0x08 constant ackFlag (line 70) | ackFlag byte = 0x10 type packetType (line 73) | type packetType method String (line 86) | func (p packetType) String() string { constant packetTypeSYN (line 76) | packetTypeSYN packetType = iota + 1 constant packetTypeSYNACK (line 77) | packetTypeSYNACK constant packetTypeFIN (line 78) | packetTypeFIN constant packetTypeFINACK (line 79) | packetTypeFINACK constant packetTypeRST (line 80) | packetTypeRST constant packetTypeRSTACK (line 81) | packetTypeRSTACK constant packetTypePSHACK (line 82) | packetTypePSHACK constant packetTypeACK (line 83) | packetTypeACK type tcpHeader (line 109) | type tcpHeader struct function parseTCPHeader (line 131) | func parseTCPHeader(b []byte) (header tcpHeader, err error) { type options (line 197) | type options struct type optionTimestamps (line 204) | type optionTimestamps struct function parseTCPOptions (line 218) | func parseTCPOptions(b []byte) (parsed options, err error) { FILE: internal/pmtud/tcp/tracker.go type tracker (line 14) | type tracker struct method constructKey (line 32) | func (t *tracker) constructKey(localPort, remotePort uint16) uint32 { method register (line 39) | func (t *tracker) register(localPort, remotePort uint16, method unregister (line 51) | func (t *tracker) unregister(localPort, remotePort uint16) { method listen (line 58) | func (t *tracker) listen(ctx context.Context) (err error) { method listenFD (line 87) | func (t *tracker) listenFD(ctx context.Context, fd fileDescriptor, ipv... type dispatch (line 20) | type dispatch struct function newTracker (line 25) | func newTracker(familyToFD map[int]fileDescriptor) *tracker { function pollSleep (line 147) | func pollSleep(ctx context.Context) { FILE: internal/pmtud/test/mtu.go function MakeMTUsToTest (line 18) | func MakeMTUsToTest(minMTU, maxMTU uint32) (mtus []uint32) { FILE: internal/pmtud/test/mtu_test.go function Test_MakeMTUsToTest (line 9) | func Test_MakeMTUsToTest(t *testing.T) { FILE: internal/pmtud/vpn.go function MaxTheoreticalVPNMTU (line 15) | func MaxTheoreticalVPNMTU(vpnType, network string, vpnGateway netip.Addr... FILE: internal/portforward/interfaces.go type Service (line 11) | type Service interface type Routing (line 18) | type Routing interface type PortAllower (line 23) | type PortAllower interface type Logger (line 30) | type Logger interface type Cmder (line 37) | type Cmder interface FILE: internal/portforward/loop.go type Loop (line 14) | type Loop struct method String (line 62) | func (l *Loop) String() string { method Start (line 66) | func (l *Loop) Start(_ context.Context) (runError <-chan error, _ erro... method run (line 82) | func (l *Loop) run(runCtx context.Context, runDone chan<- struct{}, method UpdateWith (line 138) | func (l *Loop) UpdateWith(partialUpdate Settings) (err error) { method Stop (line 153) | func (l *Loop) Stop() (err error) { method GetPortsForwarded (line 163) | func (l *Loop) GetPortsForwarded() (ports []uint16) { method SetPortsForwarded (line 172) | func (l *Loop) SetPortsForwarded(ports []uint16) (err error) { function NewLoop (line 37) | func NewLoop(settings settings.PortForwarding, routing Routing, function ptrTo (line 180) | func ptrTo[T any](value T) *T { FILE: internal/portforward/service/command.go function runCommand (line 9) | func runCommand(ctx context.Context, cmder Cmder, logger Logger, FILE: internal/portforward/service/command_test.go function Test_Service_runCommand (line 14) | func Test_Service_runCommand(t *testing.T) { FILE: internal/portforward/service/fs.go method writePortForwardedFile (line 9) | func (s *Service) writePortForwardedFile(ports []uint16) (err error) { FILE: internal/portforward/service/helpers.go function portsToString (line 8) | func portsToString(ports []uint16) (s string) { FILE: internal/portforward/service/helpers_test.go function Test_portsToString (line 9) | func Test_portsToString(t *testing.T) { FILE: internal/portforward/service/interfaces.go type PortAllower (line 11) | type PortAllower interface type Routing (line 18) | type Routing interface type Logger (line 23) | type Logger interface type PortForwarder (line 30) | type PortForwarder interface type Cmder (line 37) | type Cmder interface FILE: internal/portforward/service/mocks_test.go type MockLogger (line 14) | type MockLogger struct method EXPECT (line 32) | func (m *MockLogger) EXPECT() *MockLoggerMockRecorder { method Debug (line 37) | func (m *MockLogger) Debug(arg0 string) { method Error (line 49) | func (m *MockLogger) Error(arg0 string) { method Info (line 61) | func (m *MockLogger) Info(arg0 string) { method Warn (line 73) | func (m *MockLogger) Warn(arg0 string) { type MockLoggerMockRecorder (line 20) | type MockLoggerMockRecorder struct method Debug (line 43) | func (mr *MockLoggerMockRecorder) Debug(arg0 interface{}) *gomock.Call { method Error (line 55) | func (mr *MockLoggerMockRecorder) Error(arg0 interface{}) *gomock.Call { method Info (line 67) | func (mr *MockLoggerMockRecorder) Info(arg0 interface{}) *gomock.Call { method Warn (line 79) | func (mr *MockLoggerMockRecorder) Warn(arg0 interface{}) *gomock.Call { function NewMockLogger (line 25) | func NewMockLogger(ctrl *gomock.Controller) *MockLogger { FILE: internal/portforward/service/service.go type Service (line 11) | type Service struct method GetPortsForwarded (line 48) | func (s *Service) GetPortsForwarded() (ports []uint16) { method SetPortsForwarded (line 56) | func (s *Service) SetPortsForwarded(ctx context.Context, ports []uint1... function New (line 31) | func New(settings Settings, routing Routing, client *http.Client, FILE: internal/portforward/service/settings.go type Settings (line 11) | type Settings struct method Copy (line 25) | func (s Settings) Copy() (copied Settings) { method OverrideWith (line 40) | func (s *Settings) OverrideWith(update Settings) { method Validate (line 63) | func (s *Settings) Validate(forStartup bool) (err error) { FILE: internal/portforward/service/start.go method Start (line 12) | func (s *Service) Start(ctx context.Context) (runError <-chan error, err... method onNewPorts (line 89) | func (s *Service) onNewPorts(ctx context.Context, ports []uint16) (err e... FILE: internal/portforward/service/stop.go method Stop (line 9) | func (s *Service) Stop() (err error) { method cleanup (line 29) | func (s *Service) cleanup() (err error) { FILE: internal/portforward/settings.go type Settings (line 8) | type Settings struct method updateWith (line 20) | func (s Settings) updateWith(partialUpdate Settings, method copy (line 32) | func (s Settings) copy() (copied Settings) { method overrideWith (line 38) | func (s *Settings) overrideWith(update Settings) { method validate (line 43) | func (s Settings) validate(forStartup bool) (err error) { FILE: internal/pprof/helpers_test.go function boolPtr (line 9) | func boolPtr(b bool) *bool { return &b } function intPtr (line 11) | func intPtr(n int) *int { return &n } type regexMatcher (line 15) | type regexMatcher struct method Matches (line 19) | func (r *regexMatcher) Matches(x interface{}) bool { method String (line 27) | func (r *regexMatcher) String() string { function newRegexMatcher (line 31) | func newRegexMatcher(regex string) *regexMatcher { FILE: internal/pprof/logger_mock_test.go type MockLogger (line 14) | type MockLogger struct method EXPECT (line 32) | func (m *MockLogger) EXPECT() *MockLoggerMockRecorder { method Error (line 37) | func (m *MockLogger) Error(arg0 string) { method Info (line 49) | func (m *MockLogger) Info(arg0 string) { method Warn (line 61) | func (m *MockLogger) Warn(arg0 string) { type MockLoggerMockRecorder (line 20) | type MockLoggerMockRecorder struct method Error (line 43) | func (mr *MockLoggerMockRecorder) Error(arg0 interface{}) *gomock.Call { method Info (line 55) | func (mr *MockLoggerMockRecorder) Info(arg0 interface{}) *gomock.Call { method Warn (line 67) | func (mr *MockLoggerMockRecorder) Warn(arg0 interface{}) *gomock.Call { function NewMockLogger (line 25) | func NewMockLogger(ctrl *gomock.Controller) *MockLogger { FILE: internal/pprof/server.go function New (line 15) | func New(settings Settings) (server *httpserver.Server, err error) { FILE: internal/pprof/server_test.go function Test_Server (line 18) | func Test_Server(t *testing.T) { function Test_Server_BadSettings (line 113) | func Test_Server_BadSettings(t *testing.T) { FILE: internal/pprof/settings.go type Settings (line 15) | type Settings struct method SetDefaults (line 30) | func (s *Settings) SetDefaults() { method Copy (line 38) | func (s Settings) Copy() (copied Settings) { method OverrideWith (line 47) | func (s *Settings) OverrideWith(other Settings) { method Validate (line 59) | func (s Settings) Validate() (err error) { method ToLinesNode (line 71) | func (s Settings) ToLinesNode() (node *gotree.Node) { method String (line 91) | func (s Settings) String() string { method Read (line 95) | func (s *Settings) Read(r *reader.Reader) (err error) { FILE: internal/pprof/settings_test.go function Test_Settings_SetDefaults (line 13) | func Test_Settings_SetDefaults(t *testing.T) { function Test_Settings_Copy (line 68) | func Test_Settings_Copy(t *testing.T) { function Test_Settings_OverrideWith (line 109) | func Test_Settings_OverrideWith(t *testing.T) { function Test_Settings_Validate (line 193) | func Test_Settings_Validate(t *testing.T) { function Test_Settings_String (line 258) | func Test_Settings_String(t *testing.T) { FILE: internal/provider/airvpn/connection.go method GetConnection (line 9) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/airvpn/openvpnconf.go method OpenVPNConfig (line 12) | func (p *Provider) OpenVPNConfig(connection models.Connection, FILE: internal/provider/airvpn/provider.go type Provider (line 12) | type Provider struct method Name (line 28) | func (p *Provider) Name() string { function New (line 18) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/airvpn/updater/api.go type apiData (line 13) | type apiData struct type apiServer (line 17) | type apiServer struct function fetchAPI (line 34) | func fetchAPI(ctx context.Context, client *http.Client) ( FILE: internal/provider/airvpn/updater/servers.go method FetchServers (line 15) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( FILE: internal/provider/airvpn/updater/updater.go type Updater (line 7) | type Updater struct function New (line 11) | func New(client *http.Client) *Updater { FILE: internal/provider/common/mocks.go type MockParallelResolver (line 19) | type MockParallelResolver struct method EXPECT (line 37) | func (m *MockParallelResolver) EXPECT() *MockParallelResolverMockRecor... method Resolve (line 42) | func (m *MockParallelResolver) Resolve(arg0 context.Context, arg1 reso... type MockParallelResolverMockRecorder (line 25) | type MockParallelResolverMockRecorder struct method Resolve (line 52) | func (mr *MockParallelResolverMockRecorder) Resolve(arg0, arg1 interfa... function NewMockParallelResolver (line 30) | func NewMockParallelResolver(ctrl *gomock.Controller) *MockParallelResol... type MockStorage (line 58) | type MockStorage struct method EXPECT (line 76) | func (m *MockStorage) EXPECT() *MockStorageMockRecorder { method FilterServers (line 81) | func (m *MockStorage) FilterServers(arg0 string, arg1 settings.ServerS... type MockStorageMockRecorder (line 64) | type MockStorageMockRecorder struct method FilterServers (line 90) | func (mr *MockStorageMockRecorder) FilterServers(arg0, arg1 interface{... function NewMockStorage (line 69) | func NewMockStorage(ctrl *gomock.Controller) *MockStorage { type MockUnzipper (line 96) | type MockUnzipper struct method EXPECT (line 114) | func (m *MockUnzipper) EXPECT() *MockUnzipperMockRecorder { method FetchAndExtract (line 119) | func (m *MockUnzipper) FetchAndExtract(arg0 context.Context, arg1 stri... type MockUnzipperMockRecorder (line 102) | type MockUnzipperMockRecorder struct method FetchAndExtract (line 128) | func (mr *MockUnzipperMockRecorder) FetchAndExtract(arg0, arg1 interfa... function NewMockUnzipper (line 107) | func NewMockUnzipper(ctrl *gomock.Controller) *MockUnzipper { type MockWarner (line 134) | type MockWarner struct method EXPECT (line 152) | func (m *MockWarner) EXPECT() *MockWarnerMockRecorder { method Warn (line 157) | func (m *MockWarner) Warn(arg0 string) { type MockWarnerMockRecorder (line 140) | type MockWarnerMockRecorder struct method Warn (line 163) | func (mr *MockWarnerMockRecorder) Warn(arg0 interface{}) *gomock.Call { function NewMockWarner (line 145) | func NewMockWarner(ctrl *gomock.Controller) *MockWarner { FILE: internal/provider/common/storage.go type Storage (line 8) | type Storage interface FILE: internal/provider/common/updater.go type Fetcher (line 19) | type Fetcher interface type ParallelResolver (line 23) | type ParallelResolver interface type Unzipper (line 28) | type Unzipper interface type Warner (line 33) | type Warner interface type IPFetcher (line 37) | type IPFetcher interface FILE: internal/provider/custom/connection.go method GetConnection (line 16) | func (p *Provider) GetConnection(selection settings.ServerSelection, _ b... function getOpenVPNConnection (line 29) | func getOpenVPNConnection(extractor Extractor, function getWireguardConnection (line 54) | func getWireguardConnection(selection settings.ServerSelection) ( FILE: internal/provider/custom/interfaces.go type Extractor (line 5) | type Extractor interface FILE: internal/provider/custom/openvpnconf.go method OpenVPNConfig (line 17) | func (p *Provider) OpenVPNConfig(connection models.Connection, function modifyConfig (line 33) | func modifyConfig(lines []string, connection models.Connection, function hasPrefixOneOf (line 107) | func hasPrefixOneOf(s string, prefixes ...string) bool { FILE: internal/provider/custom/openvpnconf_test.go function intPtr (line 14) | func intPtr(n int) *int { return &n } function uint16Ptr (line 15) | func uint16Ptr(n uint16) *uint16 { return &n } function stringPtr (line 16) | func stringPtr(s string) *string { return &s } function Test_modifyConfig (line 18) | func Test_modifyConfig(t *testing.T) { FILE: internal/provider/custom/provider.go type Provider (line 9) | type Provider struct method Name (line 21) | func (p *Provider) Name() string { function New (line 14) | func New(extractor Extractor) *Provider { FILE: internal/provider/cyberghost/connection.go method GetConnection (line 9) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/cyberghost/openvpnconf.go method OpenVPNConfig (line 10) | func (p *Provider) OpenVPNConfig(connection models.Connection, FILE: internal/provider/cyberghost/provider.go type Provider (line 11) | type Provider struct method Name (line 27) | func (p *Provider) Name() string { function New (line 17) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/cyberghost/updater/constants.go function getGroupIDToProtocol (line 5) | func getGroupIDToProtocol() map[string]string { function getSubdomainToRegion (line 16) | func getSubdomainToRegion() map[string]string { FILE: internal/provider/cyberghost/updater/countries.go function mergeCountryCodes (line 3) | func mergeCountryCodes(base, extend map[string]string) (merged map[strin... FILE: internal/provider/cyberghost/updater/hosttoserver.go type hostToServer (line 11) | type hostToServer method hostsSlice (line 42) | func (hts hostToServer) hostsSlice() (hosts []string) { method adaptWithIPs (line 50) | func (hts hostToServer) adaptWithIPs(hostToIPs map[string][]netip.Addr) { method toSlice (line 63) | func (hts hostToServer) toSlice() (servers []models.Server) { function getPossibleServers (line 13) | func getPossibleServers() (possibleServers hostToServer) { FILE: internal/provider/cyberghost/updater/resolve.go function parallelResolverSettings (line 9) | func parallelResolverSettings(hosts []string) (settings resolver.Paralle... FILE: internal/provider/cyberghost/updater/servers.go method FetchServers (line 13) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( FILE: internal/provider/cyberghost/updater/updater.go type Updater (line 7) | type Updater struct function New (line 12) | func New(parallelResolver common.ParallelResolver, warner common.Warner)... FILE: internal/provider/example/connection.go method GetConnection (line 9) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/example/openvpnconf.go method OpenVPNConfig (line 10) | func (p *Provider) OpenVPNConfig(connection models.Connection, FILE: internal/provider/example/provider.go type Provider (line 12) | type Provider struct method Name (line 30) | func (p *Provider) Name() string { function New (line 19) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/example/updater/api.go type apiData (line 13) | type apiData struct type apiServer (line 17) | type apiServer struct function fetchAPI (line 26) | func fetchAPI(ctx context.Context, client *http.Client) ( FILE: internal/provider/example/updater/resolve.go function parallelResolverSettings (line 11) | func parallelResolverSettings(hosts []string) (settings resolver.Paralle... FILE: internal/provider/example/updater/servers.go method FetchServers (line 13) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( FILE: internal/provider/example/updater/updater.go type Updater (line 9) | type Updater struct function New (line 17) | func New(warner common.Warner, unzipper common.Unzipper, FILE: internal/provider/expressvpn/connection.go method GetConnection (line 9) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/expressvpn/connection_test.go function Test_Provider_GetConnection (line 19) | func Test_Provider_GetConnection(t *testing.T) { FILE: internal/provider/expressvpn/openvpnconf.go method OpenVPNConfig (line 10) | func (p *Provider) OpenVPNConfig(connection models.Connection, FILE: internal/provider/expressvpn/provider.go type Provider (line 11) | type Provider struct method Name (line 28) | func (p *Provider) Name() string { function New (line 17) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/expressvpn/updater/hardcoded.go function hardcodedServers (line 7) | func hardcodedServers() (servers []models.Server) { FILE: internal/provider/expressvpn/updater/resolve.go function parallelResolverSettings (line 9) | func parallelResolverSettings(hosts []string) (settings resolver.Paralle... FILE: internal/provider/expressvpn/updater/servers.go method FetchServers (line 13) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( FILE: internal/provider/expressvpn/updater/updater.go type Updater (line 7) | type Updater struct function New (line 13) | func New(unzipper common.Unzipper, warner common.Warner, FILE: internal/provider/fastestvpn/connection.go method GetConnection (line 9) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/fastestvpn/openvpnconf.go method OpenVPNConfig (line 10) | func (p *Provider) OpenVPNConfig(connection models.Connection, FILE: internal/provider/fastestvpn/provider.go type Provider (line 12) | type Provider struct method Name (line 29) | func (p *Provider) Name() string { function New (line 18) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/fastestvpn/updater/api.go type apiServer (line 16) | type apiServer struct constant apiURL (line 24) | apiURL = "https://support.fastestvpn.com/wp-admin/admin-ajax.php" function fetchAPIServers (line 28) | func fetchAPIServers(ctx context.Context, client *http.Client, protocol ... function getNextTRBlock (line 105) | func getNextTRBlock(data []byte) (trBlock []byte) { function getNextTDBlock (line 110) | func getNextTDBlock(data []byte) (tdBlock []byte) { function getNextBlock (line 115) | func getNextBlock(data []byte, startToken, endToken string) (nextBlock [... FILE: internal/provider/fastestvpn/updater/api_test.go type roundTripFunc (line 15) | type roundTripFunc method RoundTrip (line 17) | func (f roundTripFunc) RoundTrip(r *http.Request) (*http.Response, err... function Test_fechAPIServers (line 21) | func Test_fechAPIServers(t *testing.T) { function Test_getNextBlock (line 122) | func Test_getNextBlock(t *testing.T) { FILE: internal/provider/fastestvpn/updater/hosttoserver.go type hostToServerData (line 10) | type hostToServerData method add (line 22) | func (hts hostToServerData) add(host, vpnType, country, city string, t... method toHostsSlice (line 48) | func (hts hostToServerData) toHostsSlice() (hosts []string) { method adaptWithIPs (line 56) | func (hts hostToServerData) adaptWithIPs(hostToIPs map[string][]netip.... method toServersSlice (line 68) | func (hts hostToServerData) toServersSlice() (servers []models.Server) { type serverData (line 12) | type serverData struct FILE: internal/provider/fastestvpn/updater/resolve.go function parallelResolverSettings (line 9) | func parallelResolverSettings(hosts []string) (settings resolver.Paralle... FILE: internal/provider/fastestvpn/updater/servers.go method FetchServers (line 13) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( FILE: internal/provider/fastestvpn/updater/updater.go type Updater (line 9) | type Updater struct function New (line 15) | func New(client *http.Client, warner common.Warner, FILE: internal/provider/giganews/connection.go method GetConnection (line 9) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/giganews/openvpnconf.go method OpenVPNConfig (line 10) | func (p *Provider) OpenVPNConfig(connection models.Connection, FILE: internal/provider/giganews/provider.go type Provider (line 11) | type Provider struct method Name (line 28) | func (p *Provider) Name() string { function New (line 17) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/giganews/updater/filename.go function parseFilename (line 11) | func parseFilename(fileName string) ( FILE: internal/provider/giganews/updater/hosttoserver.go type hostToServer (line 10) | type hostToServer method add (line 12) | func (hts hostToServer) add(host, region string, tcp, udp bool) { method toHostsSlice (line 28) | func (hts hostToServer) toHostsSlice() (hosts []string) { method adaptWithIPs (line 36) | func (hts hostToServer) adaptWithIPs(hostToIPs map[string][]netip.Addr) { method toServersSlice (line 49) | func (hts hostToServer) toServersSlice() (servers []models.Server) { FILE: internal/provider/giganews/updater/resolve.go function parallelResolverSettings (line 9) | func parallelResolverSettings(hosts []string) (settings resolver.Paralle... FILE: internal/provider/giganews/updater/servers.go method FetchServers (line 14) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( FILE: internal/provider/giganews/updater/updater.go type Updater (line 7) | type Updater struct function New (line 13) | func New(unzipper common.Unzipper, warner common.Warner, FILE: internal/provider/hidemyass/connection.go method GetConnection (line 9) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/hidemyass/openvpnconf.go method OpenVPNConfig (line 10) | func (p *Provider) OpenVPNConfig(connection models.Connection, FILE: internal/provider/hidemyass/provider.go type Provider (line 12) | type Provider struct method Name (line 29) | func (p *Provider) Name() string { function New (line 18) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/hidemyass/updater/hosts.go function getUniqueHosts (line 3) | func getUniqueHosts(tcpHostToURL, udpHostToURL map[string]string) ( FILE: internal/provider/hidemyass/updater/hosttourl.go function getAllHostToURL (line 11) | func getAllHostToURL(ctx context.Context, client *http.Client) ( function getHostToURL (line 27) | func getHostToURL(ctx context.Context, client *http.Client, protocol str... FILE: internal/provider/hidemyass/updater/index.go function fetchIndex (line 13) | func fetchIndex(ctx context.Context, client *http.Client, indexURL strin... FILE: internal/provider/hidemyass/updater/resolve.go function parallelResolverSettings (line 9) | func parallelResolverSettings(hosts []string) (settings resolver.Paralle... FILE: internal/provider/hidemyass/updater/servers.go method FetchServers (line 13) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( FILE: internal/provider/hidemyass/updater/updater.go type Updater (line 9) | type Updater struct function New (line 15) | func New(client *http.Client, warner common.Warner, FILE: internal/provider/hidemyass/updater/url.go function parseOpenvpnURL (line 8) | func parseOpenvpnURL(url, protocol string) (country, region, city string) { function camelCaseToWords (line 39) | func camelCaseToWords(camelCase string) (words string) { function mutateSpecialCountryCases (line 51) | func mutateSpecialCountryCases(country string) string { FILE: internal/provider/ipvanish/connection.go method GetConnection (line 9) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/ipvanish/openvpnconf.go method OpenVPNConfig (line 10) | func (p *Provider) OpenVPNConfig(connection models.Connection, FILE: internal/provider/ipvanish/provider.go type Provider (line 11) | type Provider struct method Name (line 28) | func (p *Provider) Name() string { function New (line 17) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/ipvanish/updater/filename.go function parseFilename (line 14) | func parseFilename(fileName, hostname string, titleCaser cases.Caser) ( FILE: internal/provider/ipvanish/updater/filename_test.go function Test_parseFilename (line 13) | func Test_parseFilename(t *testing.T) { FILE: internal/provider/ipvanish/updater/hosttoserver.go type hostToServer (line 11) | type hostToServer method add (line 13) | func (hts hostToServer) add(host, country, city string, tcp, udp bool) { method toHostsSlice (line 30) | func (hts hostToServer) toHostsSlice() (hosts []string) { method adaptWithIPs (line 41) | func (hts hostToServer) adaptWithIPs(hostToIPs map[string][]netip.Addr) { method toServersSlice (line 54) | func (hts hostToServer) toServersSlice() (servers []models.Server) { FILE: internal/provider/ipvanish/updater/hosttoserver_test.go function Test_hostToServer_add (line 12) | func Test_hostToServer_add(t *testing.T) { function Test_hostToServer_toHostsSlice (line 98) | func Test_hostToServer_toHostsSlice(t *testing.T) { function Test_hostToServer_adaptWithIPs (line 131) | func Test_hostToServer_adaptWithIPs(t *testing.T) { function Test_hostToServer_toServersSlice (line 184) | func Test_hostToServer_toServersSlice(t *testing.T) { FILE: internal/provider/ipvanish/updater/resolve.go function parallelResolverSettings (line 9) | func parallelResolverSettings(hosts []string) (settings resolver.Paralle... FILE: internal/provider/ipvanish/updater/servers.go method FetchServers (line 16) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( FILE: internal/provider/ipvanish/updater/servers_test.go function Test_Updater_GetServers (line 19) | func Test_Updater_GetServers(t *testing.T) { FILE: internal/provider/ipvanish/updater/updater.go type Updater (line 7) | type Updater struct function New (line 13) | func New(unzipper common.Unzipper, warner common.Warner, FILE: internal/provider/ivpn/connection.go method GetConnection (line 9) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/ivpn/connection_test.go function Test_Provider_GetConnection (line 20) | func Test_Provider_GetConnection(t *testing.T) { FILE: internal/provider/ivpn/openvpnconf.go method OpenVPNConfig (line 10) | func (p *Provider) OpenVPNConfig(connection models.Connection, FILE: internal/provider/ivpn/provider.go type Provider (line 12) | type Provider struct method Name (line 29) | func (p *Provider) Name() string { function New (line 18) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/ivpn/updater/api.go type apiData (line 13) | type apiData struct type apiServer (line 17) | type apiServer struct type apiHostnames (line 26) | type apiHostnames struct function fetchAPI (line 31) | func fetchAPI(ctx context.Context, client *http.Client) ( FILE: internal/provider/ivpn/updater/api_test.go function Test_fetchAPI (line 15) | func Test_fetchAPI(t *testing.T) { FILE: internal/provider/ivpn/updater/resolve.go function parallelResolverSettings (line 9) | func parallelResolverSettings(hosts []string) (settings resolver.Paralle... FILE: internal/provider/ivpn/updater/roundtrip_test.go type roundTripFunc (line 5) | type roundTripFunc method RoundTrip (line 7) | func (f roundTripFunc) RoundTrip(r *http.Request) (*http.Response, err... FILE: internal/provider/ivpn/updater/servers.go method FetchServers (line 14) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( function parseCity (line 104) | func parseCity(city string) (parsedCity, region string) { FILE: internal/provider/ivpn/updater/servers_test.go function Test_Updater_GetServers (line 22) | func Test_Updater_GetServers(t *testing.T) { FILE: internal/provider/ivpn/updater/updater.go type Updater (line 9) | type Updater struct function New (line 15) | func New(client *http.Client, warner common.Warner, FILE: internal/provider/mullvad/connection.go method GetConnection (line 9) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/mullvad/connection_test.go function Test_Provider_GetConnection (line 20) | func Test_Provider_GetConnection(t *testing.T) { FILE: internal/provider/mullvad/openvpnconf.go method OpenVPNConfig (line 8) | func (p *Provider) OpenVPNConfig(_ models.Connection, _ settings.OpenVPN... FILE: internal/provider/mullvad/provider.go type Provider (line 12) | type Provider struct method Name (line 28) | func (p *Provider) Name() string { function New (line 18) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/mullvad/updater/api.go type serverData (line 16) | type serverData struct function fetchAPI (line 29) | func fetchAPI(ctx context.Context, client *http.Client) (data []serverDa... FILE: internal/provider/mullvad/updater/hosttoserver.go type hostToServer (line 13) | type hostToServer method add (line 22) | func (hts hostToServer) add(data serverData) (err error) { method toServersSlice (line 78) | func (hts hostToServer) toServersSlice() (servers []models.Server) { FILE: internal/provider/mullvad/updater/ips.go function uniqueSortedIPs (line 8) | func uniqueSortedIPs(ips []netip.Addr) []netip.Addr { FILE: internal/provider/mullvad/updater/ips_test.go function Test_uniqueSortedIPs (line 10) | func Test_uniqueSortedIPs(t *testing.T) { FILE: internal/provider/mullvad/updater/servers.go method FetchServers (line 12) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( FILE: internal/provider/mullvad/updater/updater.go type Updater (line 7) | type Updater struct function New (line 11) | func New(client *http.Client) *Updater { FILE: internal/provider/nordvpn/connection.go method GetConnection (line 9) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/nordvpn/openvpnconf.go method OpenVPNConfig (line 10) | func (p *Provider) OpenVPNConfig(connection models.Connection, FILE: internal/provider/nordvpn/provider.go type Provider (line 12) | type Provider struct method Name (line 28) | func (p *Provider) Name() string { function New (line 18) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/nordvpn/updater/api.go function fetchAPI (line 13) | func fetchAPI(ctx context.Context, client *http.Client, FILE: internal/provider/nordvpn/updater/models.go type serversData (line 12) | type serversData struct method idToData (line 88) | func (s serversData) idToData() ( type serverData (line 20) | type serverData struct method region (line 120) | func (s *serverData) region(groups map[uint32]groupData) (region strin... method hasVPNService (line 133) | func (s *serverData) hasVPNService(services map[uint32]serviceData) (o... method categories (line 147) | func (s *serverData) categories(groups map[uint32]groupData) (categori... method ips (line 160) | func (s *serverData) ips() (ips []netip.Addr) { method wireguardPublicKey (line 177) | func (s *serverData) wireguardPublicKey(technologies map[uint32]techno... type groupData (line 57) | type groupData struct type serviceData (line 65) | type serviceData struct type locationData (line 70) | type locationData struct type technologyData (line 80) | type technologyData struct FILE: internal/provider/nordvpn/updater/name.go function parseServerName (line 15) | func parseServerName(serverName string) (number uint16, err error) { FILE: internal/provider/nordvpn/updater/servers.go method FetchServers (line 16) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( function extractServers (line 46) | func extractServers(jsonServer serverData, groups map[uint32]groupData, FILE: internal/provider/nordvpn/updater/updater.go type Updater (line 9) | type Updater struct function New (line 14) | func New(client *http.Client, warner common.Warner) *Updater { FILE: internal/provider/perfectprivacy/connection.go method GetConnection (line 9) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/perfectprivacy/openvpnconf.go method OpenVPNConfig (line 10) | func (p *Provider) OpenVPNConfig(connection models.Connection, FILE: internal/provider/perfectprivacy/portforward.go method PortForward (line 11) | func (p *Provider) PortForward(_ context.Context, method KeepPortForward (line 21) | func (p *Provider) KeepPortForward(ctx context.Context, function internalIPToPorts (line 30) | func internalIPToPorts(internalIP netip.Addr) (ports []uint16) { FILE: internal/provider/perfectprivacy/portforward_test.go function Test_internalIPToPorts (line 10) | func Test_internalIPToPorts(t *testing.T) { FILE: internal/provider/perfectprivacy/provider.go type Provider (line 11) | type Provider struct method Name (line 27) | func (p *Provider) Name() string { function New (line 17) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/perfectprivacy/updater/citytoserver.go type cityToServer (line 10) | type cityToServer method add (line 12) | func (cts cityToServer) add(city string, ips []netip.Addr) { method toServersSlice (line 41) | func (cts cityToServer) toServersSlice() (servers []models.Server) { FILE: internal/provider/perfectprivacy/updater/filename.go function parseFilename (line 8) | func parseFilename(fileName string) (city string) { FILE: internal/provider/perfectprivacy/updater/servers.go method FetchServers (line 15) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( function addServerFromOvpn (line 56) | func addServerFromOvpn(cts cityToServer, FILE: internal/provider/perfectprivacy/updater/updater.go type Updater (line 7) | type Updater struct function New (line 12) | func New(unzipper common.Unzipper, warner common.Warner) *Updater { FILE: internal/provider/privado/connection.go method GetConnection (line 9) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/privado/openvpnconf.go method OpenVPNConfig (line 10) | func (p *Provider) OpenVPNConfig(connection models.Connection, FILE: internal/provider/privado/provider.go type Provider (line 12) | type Provider struct method Name (line 28) | func (p *Provider) Name() string { function New (line 18) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/privado/updater/servers.go method FetchServers (line 16) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( FILE: internal/provider/privado/updater/updater.go type Updater (line 9) | type Updater struct function New (line 14) | func New(client *http.Client, warner common.Warner) *Updater { FILE: internal/provider/privateinternetaccess/connection.go method GetConnection (line 10) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/privateinternetaccess/httpclient.go function newHTTPClient (line 15) | func newHTTPClient(serverName string) (client *http.Client, err error) { FILE: internal/provider/privateinternetaccess/httpclient_test.go function Test_newHTTPClient (line 14) | func Test_newHTTPClient(t *testing.T) { FILE: internal/provider/privateinternetaccess/openvpnconf.go method OpenVPNConfig (line 11) | func (p *Provider) OpenVPNConfig(connection models.Connection, FILE: internal/provider/privateinternetaccess/portforward.go method PortForward (line 27) | func (p *Provider) PortForward(ctx context.Context, method KeepPortForward (line 92) | func (p *Provider) KeepPortForward(ctx context.Context, function buildAPIIPAddress (line 143) | func buildAPIIPAddress(gateway netip.Addr) (api netip.Addr) { function refreshPIAPortForwardData (line 154) | func refreshPIAPortForwardData(ctx context.Context, client, privateIPCli... type piaPayload (line 174) | type piaPayload struct type piaPortForwardData (line 180) | type piaPortForwardData struct function readPIAPortForwardData (line 187) | func readPIAPortForwardData(portForwardPath string) (data piaPortForward... function writePIAPortForwardData (line 204) | func writePIAPortForwardData(portForwardPath string, data piaPortForward... function unpackPayload (line 221) | func unpackPayload(payload string) (port uint16, token string, expiratio... function packPayload (line 237) | func packPayload(port uint16, token string, expiration time.Time) (paylo... function fetchToken (line 255) | func fetchToken(ctx context.Context, client *http.Client, function fetchPortForwardData (line 308) | func fetchPortForwardData(ctx context.Context, client *http.Client, apiI... function bindPort (line 366) | func bindPort(ctx context.Context, client *http.Client, apiIPAddress net... function replaceInErr (line 425) | func replaceInErr(err error, substitutions map[string]string) error { function replaceInString (line 431) | func replaceInString(s string, substitutions map[string]string) string { function makeNOKStatusError (line 440) | func makeNOKStatusError(response *http.Response, substitutions map[strin... FILE: internal/provider/privateinternetaccess/portforward_test.go function Test_unpackPayload (line 14) | func Test_unpackPayload(t *testing.T) { function makePIAPayload (line 64) | func makePIAPayload(t *testing.T, token string, port uint16, expiration ... function Test_replaceInString (line 79) | func Test_replaceInString(t *testing.T) { FILE: internal/provider/privateinternetaccess/presets/presets.go constant None (line 4) | None = "none" constant Normal (line 5) | Normal = "normal" constant Strong (line 6) | Strong = "strong" FILE: internal/provider/privateinternetaccess/provider.go type Provider (line 13) | type Provider struct method Name (line 35) | func (p *Provider) Name() string { function New (line 22) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/privateinternetaccess/updater/api.go type apiData (line 16) | type apiData struct type regionData (line 20) | type regionData struct type serverData (line 31) | type serverData struct function fetchAPI (line 36) | func fetchAPI(ctx context.Context, client *http.Client) ( FILE: internal/provider/privateinternetaccess/updater/hosttoserver.go type nameToServer (line 10) | type nameToServer method add (line 12) | func (nts nameToServer) add(name, hostname, region string, method toServersSlice (line 52) | func (nts nameToServer) toServersSlice() (servers []models.Server) { FILE: internal/provider/privateinternetaccess/updater/servers.go method FetchServers (line 13) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( function addData (line 78) | func addData(regions []regionData, nts nameToServer) (change bool) { FILE: internal/provider/privateinternetaccess/updater/updater.go type Updater (line 7) | type Updater struct function New (line 11) | func New(client *http.Client) *Updater { FILE: internal/provider/privatevpn/connection.go method GetConnection (line 9) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/privatevpn/openvpnconf.go method OpenVPNConfig (line 10) | func (p *Provider) OpenVPNConfig(connection models.Connection, FILE: internal/provider/privatevpn/portforward.go method PortForward (line 24) | func (p *Provider) PortForward(ctx context.Context, objects utils.PortFo... method KeepPortForward (line 81) | func (p *Provider) KeepPortForward(ctx context.Context, FILE: internal/provider/privatevpn/portforward_test.go type roundTripFunc (line 16) | type roundTripFunc method RoundTrip (line 18) | func (s roundTripFunc) RoundTrip(r *http.Request) (*http.Response, err... function Test_Provider_PortForward (line 22) | func Test_Provider_PortForward(t *testing.T) { FILE: internal/provider/privatevpn/provider.go type Provider (line 11) | type Provider struct method Name (line 28) | func (p *Provider) Name() string { function New (line 17) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/privatevpn/updater/countries.go function codeToCountry (line 5) | func codeToCountry(countryCode string, countryCodes map[string]string) ( FILE: internal/provider/privatevpn/updater/filename.go function parseFilename (line 18) | func parseFilename(fileName string) ( FILE: internal/provider/privatevpn/updater/hosttoserver.go type hostToServer (line 10) | type hostToServer method add (line 13) | func (hts hostToServer) add(host, country, city string) { method toHostsSlice (line 27) | func (hts hostToServer) toHostsSlice() (hosts []string) { method adaptWithIPs (line 35) | func (hts hostToServer) adaptWithIPs(hostToIPs map[string][]netip.Addr) { method toServersSlice (line 48) | func (hts hostToServer) toServersSlice() (servers []models.Server) { FILE: internal/provider/privatevpn/updater/resolve.go function parallelResolverSettings (line 9) | func parallelResolverSettings(hosts []string) (settings resolver.Paralle... FILE: internal/provider/privatevpn/updater/servers.go method FetchServers (line 16) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( FILE: internal/provider/privatevpn/updater/updater.go type Updater (line 7) | type Updater struct function New (line 13) | func New(unzipper common.Unzipper, warner common.Warner, FILE: internal/provider/protonvpn/connection.go method GetConnection (line 9) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/protonvpn/openvpnconf.go method OpenVPNConfig (line 10) | func (p *Provider) OpenVPNConfig(connection models.Connection, FILE: internal/provider/protonvpn/portforward.go method PortForward (line 17) | func (p *Provider) PortForward(ctx context.Context, objects utils.PortFo... function checkLifetime (line 66) | func checkLifetime(logger utils.Logger, protocol string, function checkExternalPorts (line 76) | func checkExternalPorts(logger utils.Logger, udpPort, tcpPort uint16) { method KeepPortForward (line 85) | func (p *Provider) KeepPortForward(ctx context.Context, FILE: internal/provider/protonvpn/provider.go type Provider (line 12) | type Provider struct method Name (line 30) | func (p *Provider) Name() string { function New (line 19) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/protonvpn/updater/api.go type apiClient (line 24) | type apiClient struct method setHeaders (line 69) | func (c *apiClient) setHeaders(request *http.Request, cookie cookie) { method authenticate (line 79) | func (c *apiClient) authenticate(ctx context.Context, email, password ... method getSessionID (line 131) | func (c *apiClient) getSessionID(ctx context.Context) (sessionID strin... method getUnauthSession (line 158) | func (c *apiClient) getUnauthSession(ctx context.Context, sessionID st... method cookieToken (line 219) | func (c *apiClient) cookieToken(ctx context.Context, sessionID, tokenT... method authInfo (line 305) | func (c *apiClient) authInfo(ctx context.Context, email string, unauth... method auth (line 410) | func (c *apiClient) auth(ctx context.Context, unauthCookie cookie, method fetchServers (line 583) | func (c *apiClient) fetchServers(ctx context.Context, cookie cookie) ( function newAPIClient (line 34) | func newAPIClient(ctx context.Context, httpClient *http.Client) (client ... type cookie (line 381) | type cookie struct method String (line 387) | func (c *cookie) String() string { function generateLettersDigits (line 531) | func generateLettersDigits(rng *rand.ChaCha8, length uint) string { function generateFromCharset (line 536) | func generateFromCharset(rng *rand.ChaCha8, length uint, charset string)... function httpHeadersToString (line 546) | func httpHeadersToString(headers http.Header) string { type apiData (line 561) | type apiData struct type logicalServer (line 565) | type logicalServer struct type physicalServer (line 575) | type physicalServer struct function buildError (line 614) | func buildError(httpCode int, body []byte) error { FILE: internal/provider/protonvpn/updater/countries.go function codeToCountry (line 5) | func codeToCountry(countryCode string, countryCodes map[string]string) ( FILE: internal/provider/protonvpn/updater/iptoserver.go type ipToServers (line 10) | type ipToServers method add (line 19) | func (its ipToServers) add(country, region, city, name, hostname, wgPu... method toServersSlice (line 54) | func (its ipToServers) toServersSlice() (serversSlice []models.Server) { method numberOfServers (line 63) | func (its ipToServers) numberOfServers() int { type features (line 12) | type features struct FILE: internal/provider/protonvpn/updater/servers.go method FetchServers (line 13) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( function getStringValue (line 112) | func getStringValue(ptr *string) string { FILE: internal/provider/protonvpn/updater/updater.go type Updater (line 9) | type Updater struct function New (line 16) | func New(client *http.Client, warner common.Warner, email, password stri... FILE: internal/provider/protonvpn/updater/version.go function getMostRecentStableTag (line 18) | func getMostRecentStableTag(ctx context.Context, client *http.Client) (v... FILE: internal/provider/provider.go type Provider (line 11) | type Provider interface FILE: internal/provider/providers.go type Providers (line 39) | type Providers struct method Get (line 100) | func (p *Providers) Get(providerName string) (provider Provider) { //n... type Storage (line 43) | type Storage interface type Extractor (line 48) | type Extractor interface function NewProviders (line 53) | func NewProviders(storage Storage, timeNow func() time.Time, FILE: internal/provider/purevpn/connection.go method GetConnection (line 9) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/purevpn/openvpnconf.go method OpenVPNConfig (line 10) | func (p *Provider) OpenVPNConfig(connection models.Connection, FILE: internal/provider/purevpn/provider.go type Provider (line 11) | type Provider struct method Name (line 28) | func (p *Provider) Name() string { function New (line 17) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/purevpn/updater/compare.go function comparePlaceNames (line 14) | func comparePlaceNames(a, b string) bool { function normalize (line 21) | func normalize(s string) string { function levenshteinDistance (line 32) | func levenshteinDistance(a, b string) int { FILE: internal/provider/purevpn/updater/compare_test.go function Test_comparePlaceNames (line 9) | func Test_comparePlaceNames(t *testing.T) { FILE: internal/provider/purevpn/updater/hosttoserver.go type hostToServer (line 10) | type hostToServer method add (line 12) | func (hts hostToServer) add(host string, tcp, udp bool) { method toHostsSlice (line 27) | func (hts hostToServer) toHostsSlice() (hosts []string) { method adaptWithIPs (line 35) | func (hts hostToServer) adaptWithIPs(hostToIPs map[string][]netip.Addr) { method toServersSlice (line 48) | func (hts hostToServer) toServersSlice() (servers []models.Server) { FILE: internal/provider/purevpn/updater/parse.go function parseHostname (line 35) | func parseHostname(hostname string) (country, city string, warnings []st... FILE: internal/provider/purevpn/updater/resolve.go function parallelResolverSettings (line 9) | func parallelResolverSettings(hosts []string) (settings resolver.Paralle... FILE: internal/provider/purevpn/updater/servers.go method FetchServers (line 16) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( FILE: internal/provider/purevpn/updater/updater.go type Updater (line 7) | type Updater struct function New (line 14) | func New(ipFetcher common.IPFetcher, unzipper common.Unzipper, FILE: internal/provider/slickvpn/connection.go method GetConnection (line 9) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/slickvpn/openvpnconf.go method OpenVPNConfig (line 10) | func (p *Provider) OpenVPNConfig(connection models.Connection, FILE: internal/provider/slickvpn/provider.go type Provider (line 12) | type Provider struct method Name (line 29) | func (p *Provider) Name() string { function New (line 18) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/slickvpn/updater/resolve.go function parallelResolverSettings (line 9) | func parallelResolverSettings(hosts []string) (settings resolver.Paralle... FILE: internal/provider/slickvpn/updater/servers.go method FetchServers (line 13) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( FILE: internal/provider/slickvpn/updater/updater.go type Updater (line 9) | type Updater struct function New (line 15) | func New(client *http.Client, warner common.Warner, FILE: internal/provider/surfshark/connection.go method GetConnection (line 9) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/surfshark/openvpnconf.go method OpenVPNConfig (line 10) | func (p *Provider) OpenVPNConfig(connection models.Connection, FILE: internal/provider/surfshark/provider.go type Provider (line 12) | type Provider struct method Name (line 29) | func (p *Provider) Name() string { function New (line 18) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/surfshark/servers/locationdata.go type ServerLocation (line 5) | type ServerLocation struct function LocationData (line 15) | func LocationData() (data []ServerLocation) { FILE: internal/provider/surfshark/updater/api.go function addServersFromAPI (line 13) | func addServersFromAPI(ctx context.Context, client *http.Client, type serverData (line 43) | type serverData struct function fetchAPI (line 51) | func fetchAPI(ctx context.Context, client *http.Client) ( FILE: internal/provider/surfshark/updater/api_test.go type httpExchange (line 17) | type httpExchange struct function Test_addServersFromAPI (line 23) | func Test_addServersFromAPI(t *testing.T) { function Test_fetchAPI (line 129) | func Test_fetchAPI(t *testing.T) { FILE: internal/provider/surfshark/updater/hosttoserver.go type hostToServers (line 10) | type hostToServers method addOpenVPN (line 12) | func (hts hostToServers) addOpenVPN(host, region, country, city, method addWireguard (line 46) | func (hts hostToServers) addWireguard(host, region, country, city, ret... method toHostsSlice (line 71) | func (hts hostToServers) toHostsSlice() (hosts []string) { method adaptWithIPs (line 80) | func (hts hostToServers) adaptWithIPs(hostToIPs map[string][]netip.Add... method toServersSlice (line 95) | func (hts hostToServers) toServersSlice() (servers []models.Server) { FILE: internal/provider/surfshark/updater/location.go function getHostInformation (line 12) | func getHostInformation(host string, hostnameToLocation map[string]serve... function hostToLocation (line 23) | func hostToLocation(locationData []servers.ServerLocation) ( FILE: internal/provider/surfshark/updater/remaining.go function getRemainingServers (line 8) | func getRemainingServers(hts hostToServers) { FILE: internal/provider/surfshark/updater/resolve.go function parallelResolverSettings (line 9) | func parallelResolverSettings(hosts []string) (settings resolver.Paralle... FILE: internal/provider/surfshark/updater/roundtrip_test.go type roundTripFunc (line 5) | type roundTripFunc method RoundTrip (line 7) | func (f roundTripFunc) RoundTrip(r *http.Request) (*http.Response, err... FILE: internal/provider/surfshark/updater/servers.go method FetchServers (line 12) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( FILE: internal/provider/surfshark/updater/updater.go type Updater (line 9) | type Updater struct function New (line 16) | func New(client *http.Client, unzipper common.Unzipper, FILE: internal/provider/surfshark/updater/zip.go function addOpenVPNServersFromZip (line 12) | func addOpenVPNServersFromZip(ctx context.Context, FILE: internal/provider/torguard/connection.go method GetConnection (line 9) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/torguard/openvpnconf.go method OpenVPNConfig (line 10) | func (p *Provider) OpenVPNConfig(connection models.Connection, FILE: internal/provider/torguard/provider.go type Provider (line 11) | type Provider struct method Name (line 28) | func (p *Provider) Name() string { function New (line 17) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/torguard/updater/filename.go function parseFilename (line 9) | func parseFilename(fileName string, titleCaser cases.Caser) (country, ci... FILE: internal/provider/torguard/updater/hosttoserver.go type hostToServer (line 10) | type hostToServer method add (line 12) | func (hts hostToServer) add(host, country, city string, method toHostsSlice (line 35) | func (hts hostToServer) toHostsSlice() (hosts []string) { method adaptWithIPs (line 43) | func (hts hostToServer) adaptWithIPs(hostToIPs map[string][]netip.Addr) { method toServersSlice (line 56) | func (hts hostToServer) toServersSlice() (servers []models.Server) { FILE: internal/provider/torguard/updater/resolve.go function parallelResolverSettings (line 9) | func parallelResolverSettings(hosts []string) (settings resolver.Paralle... FILE: internal/provider/torguard/updater/servers.go method FetchServers (line 16) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( function addServerFromOvpn (line 78) | func addServerFromOvpn(fileName string, content []byte, method warnWarnings (line 110) | func (u *Updater) warnWarnings(warnings []string) { FILE: internal/provider/torguard/updater/updater.go type Updater (line 7) | type Updater struct function New (line 13) | func New(unzipper common.Unzipper, warner common.Warner, FILE: internal/provider/utils/cipher.go function CipherLines (line 7) | func CipherLines(ciphers []string) (lines []string) { FILE: internal/provider/utils/cipher_test.go function Test_CipherLines (line 9) | func Test_CipherLines(t *testing.T) { FILE: internal/provider/utils/connection.go type ConnectionDefaults (line 12) | type ConnectionDefaults struct function NewConnectionDefaults (line 18) | func NewConnectionDefaults(openvpnTCPPort, openvpnUDPPort, type Storage (line 28) | type Storage interface function GetConnection (line 33) | func GetConnection(provider string, FILE: internal/provider/utils/connection_test.go function Test_GetConnection (line 19) | func Test_GetConnection(t *testing.T) { FILE: internal/provider/utils/filtering.go function filterServers (line 11) | func filterServers(servers []models.Server, function filterServer (line 25) | func filterServer(server models.Server, function filterByPossibilities (line 107) | func filterByPossibilities[T string | uint16](value T, possibilities []T... function filterAnyByPossibilities (line 119) | func filterAnyByPossibilities(values, possibilities []string) (filtered ... FILE: internal/provider/utils/filtering_test.go function Test_FilterServers (line 14) | func Test_FilterServers(t *testing.T) { function Test_filterByPossibilities (line 287) | func Test_filterByPossibilities(t *testing.T) { FILE: internal/provider/utils/logger.go type Logger (line 3) | type Logger interface FILE: internal/provider/utils/nofetcher.go type NoFetcher (line 11) | type NoFetcher struct method FetchServers (line 23) | func (n *NoFetcher) FetchServers(context.Context, int) ( function NewNoFetcher (line 15) | func NewNoFetcher(providerName string) *NoFetcher { FILE: internal/provider/utils/openvpn.go type OpenVPNProviderSettings (line 14) | type OpenVPNProviderSettings struct function OpenVPNConfig (line 53) | func OpenVPNConfig(provider OpenVPNProviderSettings, type openvpnConfigLines (line 231) | type openvpnConfigLines method add (line 233) | func (o *openvpnConfigLines) add(words ...string) { method addLines (line 237) | func (o *openvpnConfigLines) addLines(lines []string) { function defaultString (line 243) | func defaultString(value, defaultValue string) string { function defaultUint16 (line 250) | func defaultUint16(value, defaultValue uint16) uint16 { function defaultStringSlice (line 257) | func defaultStringSlice(value, defaultValue []string) ( function WrapOpenvpnCA (line 270) | func WrapOpenvpnCA(certificate string) (lines []string) { function WrapOpenvpnCert (line 280) | func WrapOpenvpnCert(clientCertificate string) (lines []string) { function WrapOpenvpnCRLVerify (line 290) | func WrapOpenvpnCRLVerify(x509CRL string) (lines []string) { function WrapOpenvpnKey (line 300) | func WrapOpenvpnKey(clientKey string) (lines []string) { function WrapOpenvpnEncryptedKey (line 310) | func WrapOpenvpnEncryptedKey(encryptedKey string) (lines []string) { function WrapOpenvpnRSAKey (line 320) | func WrapOpenvpnRSAKey(rsaPrivateKey string) (lines []string) { function WrapOpenvpnTLSAuth (line 330) | func WrapOpenvpnTLSAuth(staticKeyV1 string) (lines []string) { function WrapOpenvpnTLSCrypt (line 340) | func WrapOpenvpnTLSCrypt(staticKeyV1 string) (lines []string) { FILE: internal/provider/utils/pick.go function pickConnection (line 21) | func pickConnection(connections []models.Connection, function pickRandomConnection (line 53) | func pickRandomConnection(connections []models.Connection, function getTargetIPConnection (line 61) | func getTargetIPConnection(connections []models.Connection, FILE: internal/provider/utils/pick_test.go function Test_pickRandomConnection (line 11) | func Test_pickRandomConnection(t *testing.T) { FILE: internal/provider/utils/port.go function getPort (line 11) | func getPort(selection settings.ServerSelection, function checkDefined (line 37) | func checkDefined(portName string, port uint16) { FILE: internal/provider/utils/port_test.go function boolPtr (line 12) | func boolPtr(b bool) *bool { return &b } function uint16Ptr (line 13) | func uint16Ptr(n uint16) *uint16 { return &n } function Test_GetPort (line 15) | func Test_GetPort(t *testing.T) { FILE: internal/provider/utils/portforward.go type PortForwardObjects (line 10) | type PortForwardObjects struct type Routing (line 30) | type Routing interface FILE: internal/provider/utils/protocol.go function getProtocol (line 9) | func getProtocol(selection settings.ServerSelection) (protocol string) { function filterByProtocol (line 16) | func filterByProtocol(selection settings.ServerSelection, FILE: internal/provider/utils/protocol_test.go function Test_getProtocol (line 12) | func Test_getProtocol(t *testing.T) { function Test_filterByProtocol (line 59) | func Test_filterByProtocol(t *testing.T) { FILE: internal/provider/vpnsecure/connection.go method GetConnection (line 9) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/vpnsecure/openvpnconf.go method OpenVPNConfig (line 10) | func (p *Provider) OpenVPNConfig(connection models.Connection, FILE: internal/provider/vpnsecure/provider.go type Provider (line 12) | type Provider struct method Name (line 29) | func (p *Provider) Name() string { function New (line 18) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/vpnsecure/updater/helpers_test.go function parseTestHTML (line 12) | func parseTestHTML(t *testing.T, htmlString string) *html.Node { function parseTestDataIndexHTML (line 19) | func parseTestDataIndexHTML(t *testing.T) *html.Node { FILE: internal/provider/vpnsecure/updater/hosttoserver.go type hostToServer (line 9) | type hostToServer method toHostsSlice (line 11) | func (hts hostToServer) toHostsSlice() (hosts []string) { method adaptWithIPs (line 19) | func (hts hostToServer) adaptWithIPs(hostToIPs map[string][]netip.Addr) { method toServersSlice (line 32) | func (hts hostToServer) toServersSlice() (servers []models.Server) { FILE: internal/provider/vpnsecure/updater/resolve.go function parallelResolverSettings (line 9) | func parallelResolverSettings(hosts []string) (settings resolver.Paralle... FILE: internal/provider/vpnsecure/updater/servers.go method FetchServers (line 13) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( FILE: internal/provider/vpnsecure/updater/updater.go type Updater (line 9) | type Updater struct function New (line 15) | func New(client *http.Client, warner common.Warner, FILE: internal/provider/vpnsecure/updater/website.go function fetchServers (line 16) | func fetchServers(ctx context.Context, client *http.Client, constant divString (line 38) | divString = "div" function parseHTML (line 40) | func parseHTML(rootNode *html.Node) (servers []models.Server, function parseHTMLGridItem (line 88) | func parseHTMLGridItem(gridItem *html.Node) ( function naToEmpty (line 143) | func naToEmpty(current string) (output string) { function findCountry (line 150) | func findCountry(countryNode *html.Node) (country string) { function findServersDiv (line 165) | func findServersDiv(rootNode *html.Node) (serversDiv *html.Node) { function findHost (line 174) | func findHost(gridItemDT *html.Node) (host string) { function matchText (line 179) | func matchText(node *html.Node) (match bool) { function findStatus (line 187) | func findStatus(gridItemDT *html.Node) (status string) { function matchServersDiv (line 192) | func matchServersDiv(node *html.Node) (match bool) { function matchLocationsListDiv (line 197) | func matchLocationsListDiv(node *html.Node) (match bool) { function matchGridDiv (line 202) | func matchGridDiv(node *html.Node) (match bool) { function matchGridItem (line 207) | func matchGridItem(node *html.Node) (match bool) { function matchDT (line 212) | func matchDT(node *html.Node) (match bool) { function matchDD (line 216) | func matchDD(node *html.Node) (match bool) { function matchStatusSpan (line 220) | func matchStatusSpan(node *html.Node) (match bool) { function findSpanStrong (line 224) | func findSpanStrong(gridItemDD *html.Node, spanData string) ( FILE: internal/provider/vpnsecure/updater/website_test.go type roundTripFunc (line 17) | type roundTripFunc method RoundTrip (line 19) | func (f roundTripFunc) RoundTrip(r *http.Request) (*http.Response, err... function Test_fetchServers (line 23) | func Test_fetchServers(t *testing.T) { function Test_parseHTML (line 117) | func Test_parseHTML(t *testing.T) { FILE: internal/provider/vpnunlimited/connection.go method GetConnection (line 9) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/vpnunlimited/openvpnconf.go method OpenVPNConfig (line 10) | func (p *Provider) OpenVPNConfig(connection models.Connection, FILE: internal/provider/vpnunlimited/provider.go type Provider (line 11) | type Provider struct method Name (line 28) | func (p *Provider) Name() string { function New (line 17) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/vpnunlimited/updater/constants.go function getHostToServer (line 11) | func getHostToServer() (hts hostToServer, warnings []string) { FILE: internal/provider/vpnunlimited/updater/hosttoserver.go type hostToServer (line 9) | type hostToServer method toHostsSlice (line 11) | func (hts hostToServer) toHostsSlice() (hosts []string) { method adaptWithIPs (line 19) | func (hts hostToServer) adaptWithIPs(hostToIPs map[string][]netip.Addr) { method toServersSlice (line 32) | func (hts hostToServer) toServersSlice() (servers []models.Server) { FILE: internal/provider/vpnunlimited/updater/resolve.go function parallelResolverSettings (line 9) | func parallelResolverSettings(hosts []string) (settings resolver.Paralle... FILE: internal/provider/vpnunlimited/updater/servers.go method FetchServers (line 12) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( FILE: internal/provider/vpnunlimited/updater/updater.go type Updater (line 7) | type Updater struct function New (line 13) | func New(unzipper common.Unzipper, warner common.Warner, FILE: internal/provider/vyprvpn/connection.go method GetConnection (line 9) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/vyprvpn/openvpnconf.go method OpenVPNConfig (line 10) | func (p *Provider) OpenVPNConfig(connection models.Connection, FILE: internal/provider/vyprvpn/provider.go type Provider (line 11) | type Provider struct method Name (line 28) | func (p *Provider) Name() string { function New (line 17) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/vyprvpn/updater/filename.go function parseFilename (line 11) | func parseFilename(fileName string) ( FILE: internal/provider/vyprvpn/updater/hosttoserver.go type hostToServer (line 10) | type hostToServer method add (line 12) | func (hts hostToServer) add(host, region string, tcp, udp bool) { method toHostsSlice (line 28) | func (hts hostToServer) toHostsSlice() (hosts []string) { method adaptWithIPs (line 36) | func (hts hostToServer) adaptWithIPs(hostToIPs map[string][]netip.Addr) { method toServersSlice (line 49) | func (hts hostToServer) toServersSlice() (servers []models.Server) { FILE: internal/provider/vyprvpn/updater/resolve.go function parallelResolverSettings (line 9) | func parallelResolverSettings(hosts []string) (settings resolver.Paralle... FILE: internal/provider/vyprvpn/updater/servers.go method FetchServers (line 14) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( FILE: internal/provider/vyprvpn/updater/updater.go type Updater (line 7) | type Updater struct function New (line 13) | func New(unzipper common.Unzipper, warner common.Warner, FILE: internal/provider/windscribe/connection.go method GetConnection (line 9) | func (p *Provider) GetConnection(selection settings.ServerSelection, ipv... FILE: internal/provider/windscribe/connection_test.go function Test_Provider_GetConnection (line 20) | func Test_Provider_GetConnection(t *testing.T) { FILE: internal/provider/windscribe/openvpnconf.go method OpenVPNConfig (line 10) | func (p *Provider) OpenVPNConfig(connection models.Connection, FILE: internal/provider/windscribe/provider.go type Provider (line 12) | type Provider struct method Name (line 28) | func (p *Provider) Name() string { function New (line 18) | func New(storage common.Storage, randSource rand.Source, FILE: internal/provider/windscribe/updater/api.go type apiData (line 16) | type apiData struct type regionData (line 20) | type regionData struct type groupData (line 25) | type groupData struct type serverData (line 32) | type serverData struct function fetchAPI (line 39) | func fetchAPI(ctx context.Context, client *http.Client) ( FILE: internal/provider/windscribe/updater/servers.go method FetchServers (line 17) | func (u *Updater) FetchServers(ctx context.Context, minServers int) ( FILE: internal/provider/windscribe/updater/updater.go type Updater (line 9) | type Updater struct function New (line 14) | func New(client *http.Client, warner common.Warner) *Updater { FILE: internal/publicip/api/api.go type Provider (line 14) | type Provider constant Cloudflare (line 17) | Cloudflare Provider = "cloudflare" constant IfConfigCo (line 18) | IfConfigCo Provider = "ifconfigco" constant IPInfo (line 19) | IPInfo Provider = "ipinfo" constant IP2Location (line 20) | IP2Location Provider = "ip2location" constant echoipPrefix (line 23) | echoipPrefix = "echoip#" type NameToken (line 25) | type NameToken struct function New (line 30) | func New(nameTokenPairs []NameToken, client *http.Client) ( function ParseProvider (line 63) | func ParseProvider(s string) (provider Provider, err error) { function checkCustomURL (line 106) | func checkCustomURL(s, prefix string, regex *regexp.Regexp) (match bool,... function orStrings (line 124) | func orStrings(strings []string) (result string) { function joinStrings (line 128) | func joinStrings(strings []string, lastJoin string) (result string) { FILE: internal/publicip/api/api_test.go function Test_ParseProvider (line 9) | func Test_ParseProvider(t *testing.T) { FILE: internal/publicip/api/cloudflare.go type cloudflare (line 16) | type cloudflare struct method String (line 26) | func (c *cloudflare) String() string { method CanFetchAnyIP (line 30) | func (c *cloudflare) CanFetchAnyIP() bool { method Token (line 34) | func (c *cloudflare) Token() (token string) { method FetchInfo (line 41) | func (c *cloudflare) FetchInfo(ctx context.Context, ip netip.Addr) ( function newCloudflare (line 20) | func newCloudflare(client *http.Client) *cloudflare { FILE: internal/publicip/api/echoip.go type echoip (line 15) | type echoip struct method String (line 27) | func (e *echoip) String() string { method CanFetchAnyIP (line 34) | func (e *echoip) CanFetchAnyIP() bool { method Token (line 38) | func (e *echoip) Token() string { method FetchInfo (line 45) | func (e *echoip) FetchInfo(ctx context.Context, ip netip.Addr) ( function newEchoip (line 20) | func newEchoip(client *http.Client, url string) *echoip { FILE: internal/publicip/api/interfaces.go type Fetcher (line 10) | type Fetcher interface type InfoFetcher (line 17) | type InfoFetcher interface type Warner (line 22) | type Warner interface FILE: internal/publicip/api/ip2location.go type ip2Location (line 16) | type ip2Location struct method String (line 30) | func (i *ip2Location) String() string { method CanFetchAnyIP (line 34) | func (i *ip2Location) CanFetchAnyIP() bool { method Token (line 38) | func (i *ip2Location) Token() string { method FetchInfo (line 45) | func (i *ip2Location) FetchInfo(ctx context.Context, ip netip.Addr) ( function newIP2Location (line 22) | func newIP2Location(client *http.Client, token string) *ip2Location { FILE: internal/publicip/api/ipinfo.go type ipInfo (line 16) | type ipInfo struct method String (line 28) | func (i *ipInfo) String() string { method CanFetchAnyIP (line 32) | func (i *ipInfo) CanFetchAnyIP() bool { method Token (line 36) | func (i *ipInfo) Token() string { method FetchInfo (line 43) | func (i *ipInfo) FetchInfo(ctx context.Context, ip netip.Addr) ( function newIPInfo (line 21) | func newIPInfo(client *http.Client, token string) *ipInfo { FILE: internal/publicip/api/multi.go function FetchMultiInfo (line 16) | func FetchMultiInfo(ctx context.Context, fetcher InfoFetcher, ips []neti... FILE: internal/publicip/api/resilient.go type ResilientFetcher (line 24) | type ResilientFetcher struct method setBanned (line 43) | func (r *ResilientFetcher) setBanned(fetcher Fetcher) { method isBanned (line 49) | func (r *ResilientFetcher) isBanned(fetcher Fetcher) (banned bool) { method String (line 66) | func (r *ResilientFetcher) String() string { method Token (line 82) | func (r *ResilientFetcher) Token() string { method CanFetchAnyIP (line 88) | func (r *ResilientFetcher) CanFetchAnyIP() bool { method FetchInfo (line 106) | func (r *ResilientFetcher) FetchInfo(ctx context.Context, ip netip.Add... method UpdateFetchers (line 258) | func (r *ResilientFetcher) UpdateFetchers(fetchers []Fetcher) { function NewResilient (line 34) | func NewResilient(fetchers []Fetcher, logger Warner) *ResilientFetcher { function getMostPopularResult (line 170) | func getMostPopularResult(results []models.PublicIP) models.PublicIP { function filterInPlace (line 202) | func filterInPlace(results []models.PublicIP, indices []int) []models.Pu... function getMostPopularString (line 211) | func getMostPopularString(values []string) (winnerIdx int, memberIdxs []... function normalize (line 285) | func normalize(s string) string { function levenshteinDistance (line 300) | func levenshteinDistance(a, b string) int { FILE: internal/publicip/api/resilient_test.go function Test_GetMostPopularResult (line 10) | func Test_GetMostPopularResult(t *testing.T) { FILE: internal/publicip/data.go method GetData (line 7) | func (l *Loop) GetData() (data models.PublicIP) { method ClearData (line 15) | func (l *Loop) ClearData() (err error) { FILE: internal/publicip/fs.go function persistPublicIP (line 8) | func persistPublicIP(path string, content string, puid, pgid int) error { FILE: internal/publicip/interfaces.go type Logger (line 3) | type Logger interface FILE: internal/publicip/loop.go type Loop (line 16) | type Loop struct method String (line 73) | func (l *Loop) String() string { method Start (line 77) | func (l *Loop) Start(_ context.Context) (_ <-chan error, err error) { method run (line 95) | func (l *Loop) run(runCtx context.Context, runDone chan<- struct{}, method RunOnce (line 148) | func (l *Loop) RunOnce(ctx context.Context) (err error) { method UpdateWith (line 168) | func (l *Loop) UpdateWith(partialUpdate settings.PublicIP) (err error) { method Stop (line 183) | func (l *Loop) Stop() (err error) { method Fetcher (line 189) | func (l *Loop) Fetcher() (fetcher *api.ResilientFetcher) { function NewLoop (line 43) | func NewLoop(settings settings.PublicIP, puid, pgid int, function makeNameTokenPairs (line 62) | func makeNameTokenPairs(apis []settings.PublicIPAPI) (nameTokenPairs []a... FILE: internal/publicip/update.go method update (line 12) | func (l *Loop) update(partialUpdate settings.PublicIP) (err error) { FILE: internal/routing/conversion.go function netIPToNetipAddress (line 9) | func netIPToNetipAddress(ip net.IP) (address netip.Addr) { FILE: internal/routing/conversion_test.go function Test_netIPToNetipAddress (line 11) | func Test_netIPToNetipAddress(t *testing.T) { FILE: internal/routing/default.go type DefaultRoute (line 13) | type DefaultRoute struct method String (line 20) | func (d DefaultRoute) String() string { method DefaultRoutes (line 25) | func (r *Routing) DefaultRoutes() (defaultRoutes []DefaultRoute, err err... function DefaultRoutesInterfaces (line 69) | func DefaultRoutesInterfaces(defaultRoutes []DefaultRoute) (interfaces [... FILE: internal/routing/enable.go method Setup (line 7) | func (r *Routing) Setup() (err error) { method TearDown (line 39) | func (r *Routing) TearDown() error { FILE: internal/routing/inbound.go constant inboundTable (line 11) | inboundTable uint32 = 200 constant inboundPriority (line 12) | inboundPriority uint32 = 100 method routeInboundFromDefault (line 15) | func (r *Routing) routeInboundFromDefault(defaultRoutes []DefaultRoute) ... method unrouteInboundFromDefault (line 39) | func (r *Routing) unrouteInboundFromDefault(defaultRoutes []DefaultRoute... method addRuleInboundFromDefault (line 63) | func (r *Routing) addRuleInboundFromDefault(table uint32, defaultRoutes ... method delRuleInboundFromDefault (line 81) | func (r *Routing) delRuleInboundFromDefault(table uint32, defaultRoutes ... FILE: internal/routing/ip.go function ipIsPrivate (line 12) | func ipIsPrivate(ip netip.Addr) bool { function ipMatchesFamily (line 19) | func ipMatchesFamily(ip netip.Addr, family uint8) bool { method AssignedIP (line 24) | func (r *Routing) AssignedIP(interfaceName string, family uint8) (ip net... FILE: internal/routing/ip_test.go function Test_ipIsPrivate (line 11) | func Test_ipIsPrivate(t *testing.T) { FILE: internal/routing/local.go type LocalNetwork (line 17) | type LocalNetwork struct method LocalNetworks (line 23) | func (r *Routing) LocalNetworks() (localNetworks []LocalNetwork, err err... method AddLocalRules (line 91) | func (r *Routing) AddLocalRules(subnets []LocalNetwork) (err error) { FILE: internal/routing/logger.go type Logger (line 3) | type Logger interface FILE: internal/routing/mocks_test.go type MockNetLinker (line 16) | type MockNetLinker struct method EXPECT (line 34) | func (m *MockNetLinker) EXPECT() *MockNetLinkerMockRecorder { method AddrList (line 39) | func (m *MockNetLinker) AddrList(arg0 uint32, arg1 byte) ([]netip.Pref... method AddrReplace (line 54) | func (m *MockNetLinker) AddrReplace(arg0 uint32, arg1 netip.Prefix) er... method LinkAdd (line 68) | func (m *MockNetLinker) LinkAdd(arg0 netlink.Link) (uint32, error) { method LinkByIndex (line 83) | func (m *MockNetLinker) LinkByIndex(arg0 uint32) (netlink.Link, error) { method LinkByName (line 98) | func (m *MockNetLinker) LinkByName(arg0 string) (netlink.Link, error) { method LinkDel (line 113) | func (m *MockNetLinker) LinkDel(arg0 uint32) error { method LinkList (line 127) | func (m *MockNetLinker) LinkList() ([]netlink.Link, error) { method LinkSetDown (line 142) | func (m *MockNetLinker) LinkSetDown(arg0 uint32) error { method LinkSetUp (line 156) | func (m *MockNetLinker) LinkSetUp(arg0 uint32) error { method RouteAdd (line 170) | func (m *MockNetLinker) RouteAdd(arg0 netlink.Route) error { method RouteDel (line 184) | func (m *MockNetLinker) RouteDel(arg0 netlink.Route) error { method RouteList (line 198) | func (m *MockNetLinker) RouteList(arg0 byte) ([]netlink.Route, error) { method RouteReplace (line 213) | func (m *MockNetLinker) RouteReplace(arg0 netlink.Route) error { method RuleAdd (line 227) | func (m *MockNetLinker) RuleAdd(arg0 netlink.Rule) error { method RuleDel (line 241) | func (m *MockNetLinker) RuleDel(arg0 netlink.Rule) error { method RuleList (line 255) | func (m *MockNetLinker) RuleList(arg0 byte) ([]netlink.Rule, error) { type MockNetLinkerMockRecorder (line 22) | type MockNetLinkerMockRecorder struct method AddrList (line 48) | func (mr *MockNetLinkerMockRecorder) AddrList(arg0, arg1 interface{}) ... method AddrReplace (line 62) | func (mr *MockNetLinkerMockRecorder) AddrReplace(arg0, arg1 interface{... method LinkAdd (line 77) | func (mr *MockNetLinkerMockRecorder) LinkAdd(arg0 interface{}) *gomock... method LinkByIndex (line 92) | func (mr *MockNetLinkerMockRecorder) LinkByIndex(arg0 interface{}) *go... method LinkByName (line 107) | func (mr *MockNetLinkerMockRecorder) LinkByName(arg0 interface{}) *gom... method LinkDel (line 121) | func (mr *MockNetLinkerMockRecorder) LinkDel(arg0 interface{}) *gomock... method LinkList (line 136) | func (mr *MockNetLinkerMockRecorder) LinkList() *gomock.Call { method LinkSetDown (line 150) | func (mr *MockNetLinkerMockRecorder) LinkSetDown(arg0 interface{}) *go... method LinkSetUp (line 164) | func (mr *MockNetLinkerMockRecorder) LinkSetUp(arg0 interface{}) *gomo... method RouteAdd (line 178) | func (mr *MockNetLinkerMockRecorder) RouteAdd(arg0 interface{}) *gomoc... method RouteDel (line 192) | func (mr *MockNetLinkerMockRecorder) RouteDel(arg0 interface{}) *gomoc... method RouteList (line 207) | func (mr *MockNetLinkerMockRecorder) RouteList(arg0 interface{}) *gomo... method RouteReplace (line 221) | func (mr *MockNetLinkerMockRecorder) RouteReplace(arg0 interface{}) *g... method RuleAdd (line 235) | func (mr *MockNetLinkerMockRecorder) RuleAdd(arg0 interface{}) *gomock... method RuleDel (line 249) | func (mr *MockNetLinkerMockRecorder) RuleDel(arg0 interface{}) *gomock... method RuleList (line 264) | func (mr *MockNetLinkerMockRecorder) RuleList(arg0 interface{}) *gomoc... function NewMockNetLinker (line 27) | func NewMockNetLinker(ctrl *gomock.Controller) *MockNetLinker { FILE: internal/routing/outbound.go constant outboundTable (line 12) | outboundTable uint32 = 199 constant outboundPriority (line 13) | outboundPriority uint32 = 99 method SetOutboundRoutes (line 16) | func (r *Routing) SetOutboundRoutes(outboundSubnets []netip.Prefix) error { method setOutboundRoutes (line 24) | func (r *Routing) setOutboundRoutes(outboundSubnets []netip.Prefix, method removeOutboundSubnets (line 50) | func (r *Routing) removeOutboundSubnets(subnets []netip.Prefix, method addOutboundSubnets (line 77) | func (r *Routing) addOutboundSubnets(subnets []netip.Prefix, FILE: internal/routing/routes.go method addRouteVia (line 11) | func (r *Routing) addRouteVia(destination netip.Prefix, gateway netip.Addr, method deleteRouteVia (line 48) | func (r *Routing) deleteRouteVia(destination netip.Prefix, gateway netip... FILE: internal/routing/routing.go type NetLinker (line 10) | type NetLinker interface type Addresser (line 17) | type Addresser interface type Router (line 23) | type Router interface type Ruler (line 30) | type Ruler interface type Linker (line 36) | type Linker interface type Routing (line 46) | type Routing struct function New (line 54) | func New(netLinker NetLinker, logger Logger) *Routing { FILE: internal/routing/rules.go method addIPRule (line 10) | func (r *Routing) addIPRule(src, dst netip.Prefix, table, priority uint3... method deleteIPRule (line 41) | func (r *Routing) deleteIPRule(src, dst netip.Prefix, table uint32, prio... function rulesAreEqual (line 72) | func rulesAreEqual(a, b netlink.Rule) bool { function ipPrefixesAreEqual (line 79) | func ipPrefixesAreEqual(a, b netip.Prefix) bool { function ptrsEqual (line 90) | func ptrsEqual(a, b *uint32) bool { FILE: internal/routing/rules_test.go function makeNetipPrefix (line 14) | func makeNetipPrefix(n byte) netip.Prefix { function makeIPRule (line 19) | func makeIPRule(src, dst netip.Prefix, function Test_Routing_addIPRule (line 36) | func Test_Routing_addIPRule(t *testing.T) { function Test_Routing_deleteIPRule (line 139) | func Test_Routing_deleteIPRule(t *testing.T) { function ptrTo (line 247) | func ptrTo[T any](v T) *T { return &v } function Test_rulesAreEqual (line 249) | func Test_rulesAreEqual(t *testing.T) { function Test_ipPrefixesAreEqual (line 344) | func Test_ipPrefixesAreEqual(t *testing.T) { FILE: internal/routing/tables_linux.go constant tableMain (line 6) | tableMain = unix.RT_TABLE_MAIN constant tableLocal (line 7) | tableLocal = unix.RT_TABLE_LOCAL FILE: internal/routing/tables_unspecified.go constant tableMain (line 6) | tableMain = 0 constant tableLocal (line 7) | tableLocal = 0 FILE: internal/routing/vpn.go method VPNLocalGatewayIP (line 16) | func (r *Routing) VPNLocalGatewayIP(vpnIntf string) (ip netip.Addr, err ... method VPNRoutes (line 55) | func (r *Routing) VPNRoutes(vpnIntf string) (routes []netlink.Route, err... FILE: internal/server/dns.go function newDNSHandler (line 10) | func newDNSHandler(ctx context.Context, loop DNSLoop, type dnsHandler (line 20) | type dnsHandler struct method ServeHTTP (line 26) | func (h *dnsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { method getStatus (line 43) | func (h *dnsHandler) getStatus(w http.ResponseWriter) { method setStatus (line 54) | func (h *dnsHandler) setStatus(w http.ResponseWriter, r *http.Request) { FILE: internal/server/handler.go function newHandler (line 14) | func newHandler(ctx context.Context, logger Logger, logging bool, type handler (line 53) | type handler struct method ServeHTTP (line 58) | func (h *handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { FILE: internal/server/handlerv0.go function newHandlerV0 (line 10) | func newHandlerV0(ctx context.Context, logger infoWarner, type handlerV0 (line 22) | type handlerV0 struct method ServeHTTP (line 30) | func (h *handlerV0) ServeHTTP(w http.ResponseWriter, r *http.Request) { FILE: internal/server/handlerv1.go function newHandlerV1 (line 12) | func newHandlerV1(w warner, buildInfo models.BuildInformation, type handlerV1 (line 27) | type handlerV1 struct method ServeHTTP (line 38) | func (h *handlerV1) ServeHTTP(w http.ResponseWriter, r *http.Request) { method getVersion (line 60) | func (h *handlerV1) getVersion(w http.ResponseWriter) { FILE: internal/server/helpers.go function errMethodNotSupported (line 7) | func errMethodNotSupported(w http.ResponseWriter, method string) { function errRouteNotSupported (line 11) | func errRouteNotSupported(w http.ResponseWriter, route string) { FILE: internal/server/interfaces.go type VPNLooper (line 10) | type VPNLooper interface type DNSLoop (line 18) | type DNSLoop interface type PortForwarding (line 24) | type PortForwarding interface type PublicIPLoop (line 29) | type PublicIPLoop interface type Storage (line 33) | type Storage interface FILE: internal/server/logger.go type Logger (line 3) | type Logger interface type infoWarner (line 11) | type infoWarner interface type infoer (line 16) | type infoer interface type warner (line 21) | type warner interface type errorer (line 25) | type errorer interface FILE: internal/server/middlewares/auth/apikey.go type apiKeyMethod (line 9) | type apiKeyMethod struct method equal (line 21) | func (a *apiKeyMethod) equal(other authorizationChecker) bool { method isAuthorized (line 29) | func (a *apiKeyMethod) isAuthorized(_ http.Header, request *http.Reque... function newAPIKeyMethod (line 13) | func newAPIKeyMethod(apiKey string) *apiKeyMethod { FILE: internal/server/middlewares/auth/basic.go type basicAuthMethod (line 9) | type basicAuthMethod struct method equal (line 21) | func (a *basicAuthMethod) equal(other authorizationChecker) bool { method isAuthorized (line 29) | func (a *basicAuthMethod) isAuthorized(headers http.Header, request *h... function newBasicAuthMethod (line 13) | func newBasicAuthMethod(username, password string) *basicAuthMethod { FILE: internal/server/middlewares/auth/configfile.go function Read (line 13) | func Read(filepath string) (settings Settings, err error) { FILE: internal/server/middlewares/auth/configfile_test.go function Test_Read (line 13) | func Test_Read(t *testing.T) { FILE: internal/server/middlewares/auth/format.go function andStrings (line 3) | func andStrings(strings []string) (result string) { function joinStrings (line 7) | func joinStrings(strings []string, lastJoin string) (result string) { FILE: internal/server/middlewares/auth/interfaces.go type DebugLogger (line 3) | type DebugLogger interface FILE: internal/server/middlewares/auth/interfaces_local.go type authorizationChecker (line 5) | type authorizationChecker interface FILE: internal/server/middlewares/auth/lookup.go type internalRole (line 7) | type internalRole struct function settingsToLookupMap (line 12) | func settingsToLookupMap(settings Settings) (routeToRoles map[string][]i... FILE: internal/server/middlewares/auth/lookup_test.go function Test_settingsToLookupMap (line 10) | func Test_settingsToLookupMap(t *testing.T) { FILE: internal/server/middlewares/auth/middleware.go function New (line 8) | func New(settings Settings, debugLogger DebugLogger) ( type authHandler (line 26) | type authHandler struct method ServeHTTP (line 32) | func (h *authHandler) ServeHTTP(writer http.ResponseWriter, request *h... FILE: internal/server/middlewares/auth/middleware_test.go function Test_authHandler_ServeHTTP (line 16) | func Test_authHandler_ServeHTTP(t *testing.T) { FILE: internal/server/middlewares/auth/mocks_test.go type MockDebugLogger (line 14) | type MockDebugLogger struct method EXPECT (line 32) | func (m *MockDebugLogger) EXPECT() *MockDebugLoggerMockRecorder { method Debugf (line 37) | func (m *MockDebugLogger) Debugf(arg0 string, arg1 ...interface{}) { method Warnf (line 54) | func (m *MockDebugLogger) Warnf(arg0 string, arg1 ...interface{}) { type MockDebugLoggerMockRecorder (line 20) | type MockDebugLoggerMockRecorder struct method Debugf (line 47) | func (mr *MockDebugLoggerMockRecorder) Debugf(arg0 interface{}, arg1 .... method Warnf (line 64) | func (mr *MockDebugLoggerMockRecorder) Warnf(arg0 interface{}, arg1 ..... function NewMockDebugLogger (line 25) | func NewMockDebugLogger(ctrl *gomock.Controller) *MockDebugLogger { FILE: internal/server/middlewares/auth/none.go type noneMethod (line 5) | type noneMethod struct method equal (line 13) | func (n *noneMethod) equal(other authorizationChecker) bool { method isAuthorized (line 18) | func (n *noneMethod) isAuthorized(_ http.Header, _ *http.Request) bool { function newNoneMethod (line 7) | func newNoneMethod() *noneMethod { FILE: internal/server/middlewares/auth/settings.go type Settings (line 16) | type Settings struct method SetDefaultRole (line 25) | func (s *Settings) SetDefaultRole(jsonRole string) error { method Validate (line 66) | func (s Settings) Validate() (err error) { constant AuthNone (line 79) | AuthNone = "none" constant AuthAPIKey (line 80) | AuthAPIKey = "apikey" constant AuthBasic (line 81) | AuthBasic = "basic" type Role (line 86) | type Role struct method Validate (line 111) | func (r Role) Validate() (err error) { method ToLinesNode (line 162) | func (r Role) ToLinesNode() (node *gotree.Node) { FILE: internal/server/middlewares/log/interfaces.go type Logger (line 3) | type Logger interface FILE: internal/server/middlewares/log/middleware.go function New (line 10) | func New(logger Logger, enabled bool) ( type logMiddleware (line 23) | type logMiddleware struct method ServeHTTP (line 31) | func (m *logMiddleware) ServeHTTP(w http.ResponseWriter, r *http.Reque... method SetEnabled (line 46) | func (m *logMiddleware) SetEnabled(enabled bool) { method isEnabled (line 52) | func (m *logMiddleware) isEnabled() (enabled bool) { type statefulResponseWriter (line 58) | type statefulResponseWriter struct method Write (line 64) | func (w *statefulResponseWriter) Write(b []byte) (n int, err error) { method WriteHeader (line 73) | func (w *statefulResponseWriter) WriteHeader(statusCode int) { method Header (line 78) | func (w *statefulResponseWriter) Header() http.Header { FILE: internal/server/openvpn.go function newOpenvpnHandler (line 13) | func newOpenvpnHandler(ctx context.Context, looper VPNLooper, w warner) ... type openvpnHandler (line 21) | type openvpnHandler struct method ServeHTTP (line 27) | func (h *openvpnHandler) ServeHTTP(w http.ResponseWriter, r *http.Requ... method getStatus (line 58) | func (h *openvpnHandler) getStatus(w http.ResponseWriter) { method setStatus (line 76) | func (h *openvpnHandler) setStatus(w http.ResponseWriter, r *http.Requ... method getSettings (line 111) | func (h *openvpnHandler) getSettings(w http.ResponseWriter) { FILE: internal/server/portforward.go function newPortForwardHandler (line 10) | func newPortForwardHandler(ctx context.Context, type portForwardHandler (line 20) | type portForwardHandler struct method ServeHTTP (line 26) | func (h *portForwardHandler) ServeHTTP(w http.ResponseWriter, r *http.... method getPortForwarded (line 37) | func (h *portForwardHandler) getPortForwarded(w http.ResponseWriter) { method setPortForwarded (line 57) | func (h *portForwardHandler) setPortForwarded(w http.ResponseWriter, r... FILE: internal/server/publicip.go function newPublicIPHandler (line 9) | func newPublicIPHandler(loop PublicIPLoop, w warner) http.Handler { type publicIPHandler (line 16) | type publicIPHandler struct method ServeHTTP (line 21) | func (h *publicIPHandler) ServeHTTP(w http.ResponseWriter, r *http.Req... method getPublicIP (line 36) | func (h *publicIPHandler) getPublicIP(w http.ResponseWriter) { FILE: internal/server/server.go function New (line 15) | func New(ctx context.Context, settings settings.ControlServer, logger Lo... function setupAuthMiddleware (line 48) | func setupAuthMiddleware(authPath, jsonDefaultRole string, logger Logger) ( FILE: internal/server/updater.go type UpdaterLooper (line 13) | type UpdaterLooper interface function newUpdaterHandler (line 20) | func newUpdaterHandler( type updaterHandler (line 32) | type updaterHandler struct method ServeHTTP (line 38) | func (h *updaterHandler) ServeHTTP(w http.ResponseWriter, r *http.Requ... method getStatus (line 55) | func (h *updaterHandler) getStatus(w http.ResponseWriter) { method setStatus (line 66) | func (h *updaterHandler) setStatus(w http.ResponseWriter, r *http.Requ... FILE: internal/server/vpn.go function newVPNHandler (line 12) | func newVPNHandler(ctx context.Context, looper VPNLooper, type vpnHandler (line 24) | type vpnHandler struct method ServeHTTP (line 32) | func (h *vpnHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { method getStatus (line 58) | func (h *vpnHandler) getStatus(w http.ResponseWriter) { method setStatus (line 69) | func (h *vpnHandler) setStatus(w http.ResponseWriter, r *http.Request) { method getSettings (line 94) | func (h *vpnHandler) getSettings(w http.ResponseWriter) { method patchSettings (line 104) | func (h *vpnHandler) patchSettings(w http.ResponseWriter, r *http.Requ... FILE: internal/server/wrappers.go type statusWrapper (line 11) | type statusWrapper struct method getStatus (line 17) | func (sw *statusWrapper) getStatus() (status models.LoopStatus, err er... type portWrapper (line 28) | type portWrapper struct type portsWrapper (line 32) | type portsWrapper struct type outcomeWrapper (line 36) | type outcomeWrapper struct FILE: internal/shadowsocks/logger.go type Logger (line 3) | type Logger interface type debuger (line 9) | type debuger interface type infoer (line 13) | type infoer interface type errorer (line 17) | type errorer interface FILE: internal/shadowsocks/loop.go type Loop (line 14) | type Loop struct method logAndWait (line 26) | func (l *Loop) logAndWait(ctx context.Context, err error) { method Run (line 59) | func (l *Loop) Run(ctx context.Context, done chan<- struct{}) { constant defaultBackoffTime (line 42) | defaultBackoffTime = 10 * time.Second function NewLoop (line 44) | func NewLoop(settings settings.Shadowsocks, logger Logger) *Loop { FILE: internal/shadowsocks/state.go type state (line 15) | type state struct method setStatusWithLock (line 22) | func (s *state) setStatusWithLock(status models.LoopStatus) { method GetStatus (line 28) | func (l *Loop) GetStatus() (status models.LoopStatus) { method SetStatus (line 36) | func (l *Loop) SetStatus(ctx context.Context, status models.LoopStatus) ( method GetSettings (line 88) | func (l *Loop) GetSettings() (settings settings.Shadowsocks) { method SetSettings (line 94) | func (l *Loop) SetSettings(ctx context.Context, settings settings.Shadow... FILE: internal/storage/choices.go method GetFilterChoices (line 9) | func (s *Storage) GetFilterChoices(provider string) models.FilterChoices { FILE: internal/storage/copy.go function copyServer (line 9) | func copyServer(server models.Server) (serverCopy models.Server) { function copyIPs (line 15) | func copyIPs(toCopy []netip.Addr) (copied []netip.Addr) { FILE: internal/storage/copy_test.go function Test_copyServer (line 11) | func Test_copyServer(t *testing.T) { function Test_copyIPs (line 27) | func Test_copyIPs(t *testing.T) { FILE: internal/storage/filter.go method FilterServers (line 17) | func (s *Storage) FilterServers(provider string, selection settings.Serv... function filterServer (line 50) | func filterServer(server models.Server, function filterByPossibilities (line 129) | func filterByPossibilities[T string | uint16](value T, possibilities []T... function filterAnyByPossibilities (line 141) | func filterAnyByPossibilities(values, possibilities []string) (filtered ... function filterByProtocol (line 155) | func filterByProtocol(selection settings.ServerSelection, FILE: internal/storage/flush.go method FlushToFile (line 14) | func (s *Storage) FlushToFile(path string) error { method flushToFile (line 23) | func (s *Storage) flushToFile(path string) error { FILE: internal/storage/formatting.go function commaJoin (line 14) | func commaJoin(slice []string) string { function noServerFoundError (line 20) | func noServerFoundError(selection settings.ServerSelection) (err error) { FILE: internal/storage/hardcoded.go function parseHardcodedServers (line 13) | func parseHardcodedServers() (allServers models.AllServers, err error) { FILE: internal/storage/hardcoded_test.go function Test_parseHardcodedServers (line 11) | func Test_parseHardcodedServers(t *testing.T) { FILE: internal/storage/helpers.go function panicOnProviderMissingHardcoded (line 5) | func panicOnProviderMissingHardcoded(provider string) { FILE: internal/storage/merge.go method mergeServers (line 13) | func (s *Storage) mergeServers(hardcoded, persisted models.AllServers) m... method mergeProviderServers (line 30) | func (s *Storage) mergeProviderServers(provider string, FILE: internal/storage/mocks_test.go type MockLogger (line 14) | type MockLogger struct method EXPECT (line 32) | func (m *MockLogger) EXPECT() *MockLoggerMockRecorder { method Info (line 37) | func (m *MockLogger) Info(arg0 string) { method Warn (line 49) | func (m *MockLogger) Warn(arg0 string) { type MockLoggerMockRecorder (line 20) | type MockLoggerMockRecorder struct method Info (line 43) | func (mr *MockLoggerMockRecorder) Info(arg0 interface{}) *gomock.Call { method Warn (line 55) | func (mr *MockLoggerMockRecorder) Warn(arg0 interface{}) *gomock.Call { function NewMockLogger (line 25) | func NewMockLogger(ctrl *gomock.Controller) *MockLogger { FILE: internal/storage/read.go method readFromFile (line 18) | func (s *Storage) readFromFile(filepath string, hardcodedVersions map[st... method extractServersFromBytes (line 40) | func (s *Storage) extractServersFromBytes(b []byte, hardcodedVersions ma... method readServers (line 83) | func (s *Storage) readServers(provider string, hardcodedVersion uint16, FILE: internal/storage/read_test.go function populateProviderToVersion (line 14) | func populateProviderToVersion(providerToVersion map[string]uint16) map[... function Test_extractServersFromBytes (line 27) | func Test_extractServersFromBytes(t *testing.T) { FILE: internal/storage/servers.go method SetServers (line 16) | func (s *Storage) SetServers(provider string, servers []models.Server) (... method GetServersCount (line 37) | func (s *Storage) GetServersCount(provider string) (count int) { method Format (line 51) | func (s *Storage) Format(provider, format string) (formatted string, err... method ServersAreEqual (line 65) | func (s *Storage) ServersAreEqual(provider string, servers []models.Serv... method getMergedServersObject (line 89) | func (s *Storage) getMergedServersObject(provider string) (serversObject... FILE: internal/storage/storage.go type Storage (line 9) | type Storage struct type Logger (line 20) | type Logger interface function New (line 29) | func New(logger Logger, filepath string) (storage *Storage, err error) { FILE: internal/storage/sync.go function countServers (line 10) | func countServers(allServers models.AllServers) (count int) { method syncServers (line 18) | func (s *Storage) syncServers() (err error) { FILE: internal/subnet/subsets.go function FindSubnetsToChange (line 7) | func FindSubnetsToChange(oldSubnets, newSubnets []netip.Prefix) (subnets... function findSubnetsToAdd (line 13) | func findSubnetsToAdd(oldSubnets, newSubnets []netip.Prefix) (subnetsToA... function findSubnetsToRemove (line 29) | func findSubnetsToRemove(oldSubnets, newSubnets []netip.Prefix) (subnets... function RemoveSubnetFromSubnets (line 45) | func RemoveSubnetFromSubnets(subnets []netip.Prefix, subnet netip.Prefix... FILE: internal/tun/check.go method Check (line 18) | func (t *Tun) Check(path string) error { FILE: internal/tun/check_unspecified.go method Check (line 5) | func (t *Tun) Check(path string) error { FILE: internal/tun/create.go method Create (line 15) | func (t *Tun) Create(path string) (err error) { FILE: internal/tun/create_unspecified.go method Create (line 6) | func (t *Tun) Create(path string) error { FILE: internal/tun/tun.go type Tun (line 3) | type Tun struct function New (line 5) | func New() *Tun { FILE: internal/tun/tun_test.go function Test_Tun (line 13) | func Test_Tun(t *testing.T) { function getTempPath (line 65) | func getTempPath(t *testing.T) (path string) { FILE: internal/updater/html/attribute.go function Attribute (line 5) | func Attribute(node *html.Node, key string) (value string) { FILE: internal/updater/html/bfs.go function BFS (line 12) | func BFS(rootNode *html.Node, match MatchFunc) (node *html.Node) { FILE: internal/updater/html/css.go function HasClassStrings (line 9) | func HasClassStrings(node *html.Node, classStrings ...string) (match boo... FILE: internal/updater/html/errors.go function WrapError (line 10) | func WrapError(sentinelError error, node *html.Node) error { function WrapWarning (line 15) | func WrapWarning(warning string, node *html.Node) string { function mustRenderHTML (line 20) | func mustRenderHTML(node *html.Node) (rendered string) { FILE: internal/updater/html/fetch.go function Fetch (line 14) | func Fetch(ctx context.Context, client *http.Client, url string) ( FILE: internal/updater/html/fetch_test.go function parseTestHTML (line 15) | func parseTestHTML(t *testing.T, htmlString string) *html.Node { type roundTripFunc (line 22) | type roundTripFunc method RoundTrip (line 24) | func (f roundTripFunc) RoundTrip(r *http.Request) (*http.Response, err... function Test_Fetch (line 28) | func Test_Fetch(t *testing.T) { FILE: internal/updater/html/match.go type MatchFunc (line 7) | type MatchFunc function MatchID (line 9) | func MatchID(id string) MatchFunc { function MatchData (line 19) | func MatchData(data string) MatchFunc { function DirectChild (line 25) | func DirectChild(parent *html.Node, function DirectChildren (line 36) | func DirectChildren(parent *html.Node, FILE: internal/updater/interfaces.go type Providers (line 11) | type Providers interface type Storage (line 15) | type Storage interface type Unzipper (line 23) | type Unzipper interface type Logger (line 28) | type Logger interface FILE: internal/updater/loop/loop.go type Updater (line 15) | type Updater interface type Loop (line 19) | type Loop struct method logAndWait (line 66) | func (l *Loop) logAndWait(ctx context.Context, err error) { method Run (line 82) | func (l *Loop) Run(ctx context.Context, done chan<- struct{}) { method RunRestartTicker (line 150) | func (l *Loop) RunRestartTicker(ctx context.Context, done chan<- struc... constant defaultBackoffTime (line 37) | defaultBackoffTime = 5 * time.Second type Logger (line 39) | type Logger interface function NewLoop (line 45) | func NewLoop(settings settings.Updater, providers updater.Providers, FILE: internal/updater/loop/state.go type state (line 15) | type state struct method setStatusWithLock (line 22) | func (s *state) setStatusWithLock(status models.LoopStatus) { method GetStatus (line 28) | func (l *Loop) GetStatus() (status models.LoopStatus) { method SetStatus (line 36) | func (l *Loop) SetStatus(ctx context.Context, status models.LoopStatus) ... method GetSettings (line 87) | func (l *Loop) GetSettings() (settings settings.Updater) { method SetSettings (line 93) | func (l *Loop) SetSettings(settings settings.Updater) (outcome string) { FILE: internal/updater/openvpn/extract.go function ExtractProto (line 17) | func ExtractProto(b []byte) (tcp, udp bool, err error) { function ExtractHost (line 41) | func ExtractHost(b []byte) (host, warning string, err error) { function ExtractIPs (line 57) | func ExtractIPs(b []byte) (ips []netip.Addr, err error) { function extractRemoteHosts (line 79) | func extractRemoteHosts(content []byte, rejectIP, rejectDomain bool) (ho... FILE: internal/updater/openvpn/fetch.go function FetchFile (line 10) | func FetchFile(ctx context.Context, client *http.Client, url string) ( function fetchData (line 28) | func fetchData(ctx context.Context, client *http.Client, url string) ( FILE: internal/updater/openvpn/multifetch.go function FetchMultiFiles (line 11) | func FetchMultiFiles(ctx context.Context, client *http.Client, urls []st... FILE: internal/updater/providers.go type Provider (line 13) | type Provider interface method updateProvider (line 20) | func (u *Updater) updateProvider(ctx context.Context, provider Provider, FILE: internal/updater/resolver/interfaces.go type Dialer (line 8) | type Dialer interface FILE: internal/updater/resolver/ips.go function uniqueIPsToSlice (line 7) | func uniqueIPsToSlice(uniqueIPs map[string]struct{}) (ips []netip.Addr) { FILE: internal/updater/resolver/ips_test.go function Test_uniqueIPsToSlice (line 10) | func Test_uniqueIPsToSlice(t *testing.T) { FILE: internal/updater/resolver/net.go function newResolver (line 7) | func newResolver(d Dialer) *net.Resolver { FILE: internal/updater/resolver/parallel.go type Parallel (line 10) | type Parallel struct method Resolve (line 42) | func (pr *Parallel) Resolve(ctx context.Context, settings ParallelSett... method resolveAsync (line 99) | func (pr *Parallel) resolveAsync(ctx context.Context, host string, function NewParallelResolver (line 14) | func NewParallelResolver(dialer Dialer) *Parallel { type ParallelSettings (line 20) | type ParallelSettings struct type parallelResult (line 32) | type parallelResult struct FILE: internal/updater/resolver/repeat.go type Repeat (line 13) | type Repeat struct method Resolve (line 33) | func (r *Repeat) Resolve(ctx context.Context, host string, settings Re... method resolveOnce (line 70) | func (r *Repeat) resolveOnce(ctx, timedCtx context.Context, host string, method lookupIPs (line 126) | func (r *Repeat) lookupIPs(ctx context.Context, host string) (ips []ne... function NewRepeat (line 17) | func NewRepeat(dialer Dialer) *Repeat { type RepeatSettings (line 23) | type RepeatSettings struct FILE: internal/updater/unzip/extract.go function zipExtractAll (line 11) | func zipExtractAll(zipBytes []byte) (contents map[string][]byte, err err... FILE: internal/updater/unzip/fetch.go method FetchAndExtract (line 13) | func (u *Unzipper) FetchAndExtract(ctx context.Context, url string) ( FILE: internal/updater/unzip/unzip.go type Unzipper (line 7) | type Unzipper struct function New (line 11) | func New(client *http.Client) *Unzipper { FILE: internal/updater/updater.go type Updater (line 15) | type Updater struct method UpdateServers (line 42) | func (u *Updater) UpdateServers(ctx context.Context, providers []string, function New (line 28) | func New(httpClient *http.Client, storage Storage, FILE: internal/version/github.go type githubRelease (line 12) | type githubRelease struct type githubCommit (line 19) | type githubCommit struct function getGithubReleases (line 30) | func getGithubReleases(ctx context.Context, client *http.Client) (releas... function getGithubCommits (line 61) | func getGithubCommits(ctx context.Context, client *http.Client) (commits... FILE: internal/version/version.go function GetMessage (line 17) | func GetMessage(ctx context.Context, buildInfo models.BuildInformation, function getLatestRelease (line 49) | func getLatestRelease(ctx context.Context, client *http.Client) (tagName... function getCommitsSince (line 69) | func getCommitsSince(ctx context.Context, client *http.Client, commitSho... FILE: internal/vpn/amneziawg.go function setupAmneziaWg (line 16) | func setupAmneziaWg(ctx context.Context, netlinker NetLinker, function buildAmneziaWgSettings (line 45) | func buildAmneziaWgSettings(connection models.Connection, FILE: internal/vpn/cleanup.go method cleanup (line 12) | func (l *Loop) cleanup() { function getVPNInterface (line 50) | func getVPNInterface(settings settings.VPN) string { FILE: internal/vpn/helpers.go function ptrTo (line 11) | func ptrTo[T any](value T) *T { return &value } method waitForError (line 14) | func (l *Loop) waitForError(ctx context.Context, method crashed (line 36) | func (l *Loop) crashed(ctx context.Context, err error) { method signalOrSetStatus (line 41) | func (l *Loop) signalOrSetStatus(status models.LoopStatus) { method logAndWait (line 53) | func (l *Loop) logAndWait(ctx context.Context, err error) { FILE: internal/vpn/interfaces.go type Firewall (line 18) | type Firewall interface type Routing (line 25) | type Routing interface type PortForward (line 30) | type PortForward interface type OpenVPN (line 34) | type OpenVPN interface type Providers (line 40) | type Providers interface type Provider (line 44) | type Provider interface type PortForwarder (line 52) | type PortForwarder interface type Storage (line 59) | type Storage interface type NetLinker (line 63) | type NetLinker interface type Router (line 71) | type Router interface type Ruler (line 77) | type Ruler interface type Linker (line 82) | type Linker interface type DNSLoop (line 92) | type DNSLoop interface type PublicIPLoop (line 98) | type PublicIPLoop interface type Cmder (line 103) | type Cmder interface type HealthChecker (line 111) | type HealthChecker interface type HealthServer (line 118) | type HealthServer interface type Service (line 122) | type Service interface FILE: internal/vpn/loop.go type Loop (line 15) | type Loop struct constant defaultBackoffTime (line 52) | defaultBackoffTime = 15 * time.Second function NewLoop (line 55) | func NewLoop(vpnSettings settings.VPN, ipv6Supported bool, vpnInputPorts... FILE: internal/vpn/openvpn.go function setupOpenVPN (line 15) | func setupOpenVPN(ctx context.Context, fw Firewall, FILE: internal/vpn/portforward.go function getPortForwarder (line 13) | func getPortForwarder(provider Provider, providers Providers, //nolint:i... method startPortForwarding (line 26) | func (l *Loop) startPortForwarding(data tunnelUpData) (err error) { method stopPortForwarding (line 41) | func (l *Loop) stopPortForwarding() (err error) { type noPortForwarder (line 48) | type noPortForwarder struct method Name (line 60) | func (n *noPortForwarder) Name() string { method PortForward (line 64) | func (n *noPortForwarder) PortForward(context.Context, pfutils.PortFor... method KeepPortForward (line 70) | func (n *noPortForwarder) KeepPortForward(context.Context, pfutils.Por... function newNoPortForwarder (line 52) | func newNoPortForwarder(providerName string) *noPortForwarder { FILE: internal/vpn/run.go method Run (line 12) | func (l *Loop) Run(ctx context.Context, done chan<- struct{}) { FILE: internal/vpn/settings.go method GetSettings (line 9) | func (l *Loop) GetSettings() (settings settings.VPN) { method SetSettings (line 13) | func (l *Loop) SetSettings(ctx context.Context, FILE: internal/vpn/state/state.go function New (line 11) | func New(statusApplier StatusApplier, vpn settings.VPN) *State { type State (line 18) | type State struct type StatusApplier (line 25) | type StatusApplier interface FILE: internal/vpn/state/vpn.go method GetSettings (line 11) | func (s *State) GetSettings() (vpn settings.VPN) { method SetSettings (line 18) | func (s *State) SetSettings(ctx context.Context, vpn settings.VPN) ( FILE: internal/vpn/status.go method GetStatus (line 9) | func (l *Loop) GetStatus() (status models.LoopStatus) { method ApplyStatus (line 13) | func (l *Loop) ApplyStatus(ctx context.Context, status models.LoopStatus) ( FILE: internal/vpn/tunnelup.go type tunnelUpData (line 20) | type tunnelUpData struct type tunnelUpPMTUDData (line 34) | type tunnelUpPMTUDData struct method onTunnelUp (line 51) | func (l *Loop) onTunnelUp(ctx, loopCtx context.Context, data tunnelUpDat... method collectHealthErrors (line 140) | func (l *Loop) collectHealthErrors(ctx, loopCtx context.Context, healthE... method restartVPN (line 167) | func (l *Loop) restartVPN(ctx context.Context, healthErr error) { function updateToMaxMTU (line 175) | func updateToMaxMTU(ctx context.Context, vpnInterface string, function setTCPMSSOnVPNRoutes (line 236) | func setTCPMSSOnVPNRoutes(mtu uint32, routes []netlink.Route, netlinker ... FILE: internal/vpn/wireguard.go function setupWireguard (line 17) | func setupWireguard(ctx context.Context, netlinker NetLinker, function buildWireguardSettings (line 46) | func buildWireguardSettings(connection models.Connection, FILE: internal/vpn/wireguard_test.go function Test_buildWireguardSettings (line 14) | func Test_buildWireguardSettings(t *testing.T) { FILE: internal/wireguard/address.go function AddAddresses (line 8) | func AddAddresses(linkIndex uint32, FILE: internal/wireguard/address_test.go function Test_AddAddresses (line 13) | func Test_AddAddresses(t *testing.T) { FILE: internal/wireguard/config.go function ConfigureDevice (line 13) | func ConfigureDevice(client *wgctrl.Client, settings Settings) (err erro... function makeDeviceConfig (line 27) | func makeDeviceConfig(settings Settings) (config wgtypes.Config, err err... function allIPv4 (line 86) | func allIPv4() (prefix netip.Prefix) { function allIPv6 (line 91) | func allIPv6() (prefix netip.Prefix) { FILE: internal/wireguard/config_test.go function Test_makeDeviceConfig (line 14) | func Test_makeDeviceConfig(t *testing.T) { function Test_allIPv4 (line 113) | func Test_allIPv4(t *testing.T) { function Test_allIPv6 (line 119) | func Test_allIPv6(t *testing.T) { FILE: internal/wireguard/constructor.go type Wireguard (line 3) | type Wireguard struct function New (line 9) | func New(settings Settings, netlink NetLinker, FILE: internal/wireguard/constructor_test.go function Test_New (line 12) | func Test_New(t *testing.T) { FILE: internal/wireguard/helpers_test.go function ptrTo (line 10) | func ptrTo[T any](x T) *T { return &x } function makeLinkName (line 14) | func makeLinkName() string { function rulesAreEqual (line 23) | func rulesAreEqual(a, b netlink.Rule) bool { function ipPrefixesAreEqual (line 34) | func ipPrefixesAreEqual(a, b netip.Prefix) bool { function ptrsEqual (line 45) | func ptrsEqual(a, b *uint32) bool { FILE: internal/wireguard/log.go type Logger (line 9) | type Logger interface type Erroer (line 17) | type Erroer interface function makeDeviceLogger (line 21) | func makeDeviceLogger(logger Logger) (deviceLogger *device.Logger) { FILE: internal/wireguard/log_mock_test.go type MockLogger (line 14) | type MockLogger struct method EXPECT (line 32) | func (m *MockLogger) EXPECT() *MockLoggerMockRecorder { method Debug (line 37) | func (m *MockLogger) Debug(arg0 string) { method Debugf (line 49) | func (m *MockLogger) Debugf(arg0 string, arg1 ...interface{}) { method Error (line 66) | func (m *MockLogger) Error(arg0 string) { method Errorf (line 78) | func (m *MockLogger) Errorf(arg0 string, arg1 ...interface{}) { method Info (line 95) | func (m *MockLogger) Info(arg0 string) { type MockLoggerMockRecorder (line 20) | type MockLoggerMockRecorder struct method Debug (line 43) | func (mr *MockLoggerMockRecorder) Debug(arg0 interface{}) *gomock.Call { method Debugf (line 59) | func (mr *MockLoggerMockRecorder) Debugf(arg0 interface{}, arg1 ...int... method Error (line 72) | func (mr *MockLoggerMockRecorder) Error(arg0 interface{}) *gomock.Call { method Errorf (line 88) | func (mr *MockLoggerMockRecorder) Errorf(arg0 interface{}, arg1 ...int... method Info (line 101) | func (mr *MockLoggerMockRecorder) Info(arg0 interface{}) *gomock.Call { function NewMockLogger (line 25) | func NewMockLogger(ctrl *gomock.Controller) *MockLogger { FILE: internal/wireguard/log_test.go function Test_makeDeviceLogger (line 9) | func Test_makeDeviceLogger(t *testing.T) { FILE: internal/wireguard/netlink_integration_test.go type noopDebugLogger (line 15) | type noopDebugLogger struct method Debug (line 17) | func (n noopDebugLogger) Debug(_ string) {} method Debugf (line 18) | func (n noopDebugLogger) Debugf(_ string, _ ...any) {} method Info (line 19) | func (n noopDebugLogger) Info(_ string) {} method Error (line 20) | func (n noopDebugLogger) Error(_ string) {} method Errorf (line 21) | func (n noopDebugLogger) Errorf(_ string, _ ...any) {} method Patch (line 22) | func (n noopDebugLogger) Patch(_ ...log.Option) {} function Test_AddAddresses_Integration (line 24) | func Test_AddAddresses_Integration(t *testing.T) { function Test_AddRule_Integration (line 70) | func Test_AddRule_Integration(t *testing.T) { FILE: internal/wireguard/netlinker.go type NetLinker (line 11) | type NetLinker interface type Router (line 19) | type Router interface type Ruler (line 24) | type Ruler interface type Linker (line 29) | type Linker interface FILE: internal/wireguard/netlinker_mock_test.go type MockNetLinker (line 16) | type MockNetLinker struct method EXPECT (line 34) | func (m *MockNetLinker) EXPECT() *MockNetLinkerMockRecorder { method AddrReplace (line 39) | func (m *MockNetLinker) AddrReplace(arg0 uint32, arg1 netip.Prefix) er... method IsWireguardSupported (line 53) | func (m *MockNetLinker) IsWireguardSupported() (bool, error) { method LinkAdd (line 68) | func (m *MockNetLinker) LinkAdd(arg0 netlink.Link) (uint32, error) { method LinkByName (line 83) | func (m *MockNetLinker) LinkByName(arg0 string) (netlink.Link, error) { method LinkDel (line 98) | func (m *MockNetLinker) LinkDel(arg0 uint32) error { method LinkList (line 112) | func (m *MockNetLinker) LinkList() ([]netlink.Link, error) { method LinkSetDown (line 127) | func (m *MockNetLinker) LinkSetDown(arg0 uint32) error { method LinkSetUp (line 141) | func (m *MockNetLinker) LinkSetUp(arg0 uint32) error { method RouteAdd (line 155) | func (m *MockNetLinker) RouteAdd(arg0 netlink.Route) error { method RouteList (line 169) | func (m *MockNetLinker) RouteList(arg0 byte) ([]netlink.Route, error) { method RuleAdd (line 184) | func (m *MockNetLinker) RuleAdd(arg0 netlink.Rule) error { method RuleDel (line 198) | func (m *MockNetLinker) RuleDel(arg0 netlink.Rule) error { type MockNetLinkerMockRecorder (line 22) | type MockNetLinkerMockRecorder struct method AddrReplace (line 47) | func (mr *MockNetLinkerMockRecorder) AddrReplace(arg0, arg1 interface{... method IsWireguardSupported (line 62) | func (mr *MockNetLinkerMockRecorder) IsWireguardSupported() *gomock.Ca... method LinkAdd (line 77) | func (mr *MockNetLinkerMockRecorder) LinkAdd(arg0 interface{}) *gomock... method LinkByName (line 92) | func (mr *MockNetLinkerMockRecorder) LinkByName(arg0 interface{}) *gom... method LinkDel (line 106) | func (mr *MockNetLinkerMockRecorder) LinkDel(arg0 interface{}) *gomock... method LinkList (line 121) | func (mr *MockNetLinkerMockRecorder) LinkList() *gomock.Call { method LinkSetDown (line 135) | func (mr *MockNetLinkerMockRecorder) LinkSetDown(arg0 interface{}) *go... method LinkSetUp (line 149) | func (mr *MockNetLinkerMockRecorder) LinkSetUp(arg0 interface{}) *gomo... method RouteAdd (line 163) | func (mr *MockNetLinkerMockRecorder) RouteAdd(arg0 interface{}) *gomoc... method RouteList (line 178) | func (mr *MockNetLinkerMockRecorder) RouteList(arg0 interface{}) *gomo... method RuleAdd (line 192) | func (mr *MockNetLinkerMockRecorder) RuleAdd(arg0 interface{}) *gomock... method RuleDel (line 206) | func (mr *MockNetLinkerMockRecorder) RuleDel(arg0 interface{}) *gomock... function NewMockNetLinker (line 27) | func NewMockNetLinker(ctrl *gomock.Controller) *MockNetLinker { FILE: internal/wireguard/route.go function AddRoutes (line 11) | func AddRoutes(linkIndex uint32, destinations []netip.Prefix, function addRoute (line 32) | func addRoute(linkIndex uint32, dst netip.Prefix, FILE: internal/wireguard/route_test.go function Test_addRoute (line 14) | func Test_addRoute(t *testing.T) { FILE: internal/wireguard/rule.go function AddRule (line 10) | func AddRule(rulePriority, firewallMark uint32, family uint8, FILE: internal/wireguard/rule_test.go function Test_AddRule (line 13) | func Test_AddRule(t *testing.T) { FILE: internal/wireguard/run.go method Run (line 28) | func (w *Wireguard) Run(ctx context.Context, waitError chan<- error, rea... function Run (line 65) | func Run(ctx context.Context, waitError chan<- error, ready chan<- struc... function setupKernelSpace (line 142) | func setupKernelSpace(ctx context.Context, function setupUserSpace (line 186) | func setupUserSpace(ctx context.Context, function acceptAndHandle (line 263) | func acceptAndHandle(uapi net.Listener, device *device.Device, FILE: internal/wireguard/settings.go type Settings (line 15) | type Settings struct method SetDefaults (line 53) | func (s *Settings) SetDefaults() { method Check (line 113) | func (s *Settings) Check() (err error) { method String (line 189) | func (s Settings) String() string { method ToLines (line 217) | func (s Settings) ToLines(settings ToLinesSettings) (lines []string) { type ToLinesSettings (line 194) | type ToLinesSettings struct method setDefaults (line 203) | func (settings *ToLinesSettings) setDefaults() { FILE: internal/wireguard/settings_test.go function ptr (line 11) | func ptr[T any](v T) *T { return &v } function Test_Settings_SetDefaults (line 13) | func Test_Settings_SetDefaults(t *testing.T) { function Test_Settings_Check (line 77) | func Test_Settings_Check(t *testing.T) { function toStringPtr (line 308) | func toStringPtr(s string) *string { return &s } function Test_ToLinesSettings_setDefaults (line 310) | func Test_ToLinesSettings_setDefaults(t *testing.T) { function Test_Settings_String (line 334) | func Test_Settings_String(t *testing.T) { function Test_Settings_Lines (line 353) | func Test_Settings_Lines(t *testing.T) { FILE: internal/wireguard/wireguard_linux.go function UAPIOpen (line 10) | func UAPIOpen(name string) (*os.File, error) { function UAPIListen (line 14) | func UAPIListen(interfaceName string, uapiFile *os.File) (net.Listener, ... FILE: internal/wireguard/wireguard_unspecified.go function UAPIOpen (line 10) | func UAPIOpen(name string) (*os.File, error) { function UAPIListen (line 14) | func UAPIListen(interfaceName string, uapiFile *os.File) (net.Listener, ...