From a744ebac84e2e44e618d03d277378a44e4f2fd5d Mon Sep 17 00:00:00 2001 From: Bartosz Oleaczek Date: Thu, 19 Dec 2024 16:22:32 +0100 Subject: [PATCH] Add autocomplete --- daemon/jobs.go | 21 ++++++--------------- daemon/rpc_is_quench_enabled.go | 17 ++++++++--------- daemon/rpc_settings.go | 12 +++++++++--- 3 files changed, 23 insertions(+), 27 deletions(-) diff --git a/daemon/jobs.go b/daemon/jobs.go index 1257ccda..ddedd1ca 100644 --- a/daemon/jobs.go +++ b/daemon/jobs.go @@ -15,7 +15,6 @@ import ( "github.com/NordSecurity/nordvpn-linux/daemon/pb" "github.com/NordSecurity/nordvpn-linux/daemon/state" "github.com/NordSecurity/nordvpn-linux/events" - "github.com/NordSecurity/nordvpn-linux/features" "github.com/NordSecurity/nordvpn-linux/internal" "github.com/NordSecurity/nordvpn-linux/meshnet" @@ -234,21 +233,13 @@ func (r *RPC) StartAutoConnect(timeoutFn GetTimeoutFunc) error { return err } - if cfg.Technology == config.Technology_NORDWHISPER { - nordWhisperEnabled, err := r.remoteConfigGetter.GetNordWhisperEnabled(r.version) + if cfg.Technology == config.Technology_NORDWHISPER && !r.isNordWhisperEnabled() { + err := r.cm.SaveWith(func(c config.Config) config.Config { + c.Technology = config.Technology_NORDLYNX + return c + }) if err != nil { - log.Println("failed to determine if NordWhisper is enabled:", err) - } - - // fallback to Nordlynx if NordWhisper was enabled in previous installation and is disabled now - if features.NordWhisperEnabled || !nordWhisperEnabled { - err := r.cm.SaveWith(func(c config.Config) config.Config { - c.Technology = config.Technology_NORDLYNX - return c - }) - if err != nil { - log.Println(internal.ErrorPrefix, "failed to fallback to Nordlynx tech:", err) - } + log.Println(internal.ErrorPrefix, "failed to fallback to Nordlynx tech:", err) } } diff --git a/daemon/rpc_is_quench_enabled.go b/daemon/rpc_is_quench_enabled.go index fc87611e..8af0028b 100644 --- a/daemon/rpc_is_quench_enabled.go +++ b/daemon/rpc_is_quench_enabled.go @@ -6,19 +6,18 @@ import ( "github.com/NordSecurity/nordvpn-linux/daemon/pb" "github.com/NordSecurity/nordvpn-linux/features" - "github.com/NordSecurity/nordvpn-linux/internal" ) -func (r *RPC) IsNordWhisperEnabled(ctx context.Context, in *pb.Empty) (*pb.NordWhisperEnabled, error) { - if !features.NordWhisperEnabled { - return &pb.NordWhisperEnabled{Enabled: false}, nil - } +func (r *RPC) isNordWhisperEnabled() bool { nordWhisperEnabled, err := r.remoteConfigGetter.GetNordWhisperEnabled(r.version) if err != nil { - log.Println(internal.ErrorPrefix, - "failed to determine if NordWhisper is enabled based on firebase config:", err) - return &pb.NordWhisperEnabled{Enabled: false}, nil + log.Println("failed to determine if NordWhisper is enabled:", err) + return false } - return &pb.NordWhisperEnabled{Enabled: nordWhisperEnabled}, nil + return features.NordWhisperEnabled && nordWhisperEnabled +} + +func (r *RPC) IsNordWhisperEnabled(ctx context.Context, in *pb.Empty) (*pb.NordWhisperEnabled, error) { + return &pb.NordWhisperEnabled{Enabled: r.isNordWhisperEnabled()}, nil } diff --git a/daemon/rpc_settings.go b/daemon/rpc_settings.go index 44e930f8..87088191 100644 --- a/daemon/rpc_settings.go +++ b/daemon/rpc_settings.go @@ -114,10 +114,16 @@ func (r *RPC) SettingsProtocols(ctx context.Context, _ *pb.Empty) (*pb.Payload, } func (r *RPC) SettingsTechnologies(ctx context.Context, _ *pb.Empty) (*pb.Payload, error) { + technologies := []string{ + config.Technology_OPENVPN.String(), config.Technology_NORDLYNX.String(), + } + + if r.isNordWhisperEnabled() { + technologies = append(technologies, config.Technology_NORDWHISPER.String()) + } + return &pb.Payload{ Type: internal.CodeSuccess, - Data: []string{ - config.Technology_OPENVPN.String(), config.Technology_NORDLYNX.String(), - }, + Data: technologies, }, nil }