From 64d808ee63a146733403a1388e6709afe6923628 Mon Sep 17 00:00:00 2001 From: Viktor Liu Date: Thu, 27 Aug 2026 18:36:12 +0200 Subject: [PATCH] Split the VNC, routing and metrics flag copying out of the config request builders --- client/cmd/up.go | 60 +++++++++++++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 23 deletions(-) diff --git a/client/cmd/up.go b/client/cmd/up.go index d6d8773c5..125676410 100644 --- a/client/cmd/up.go +++ b/client/cmd/up.go @@ -405,12 +405,6 @@ func setSSHSetConfigFields(req *proto.SetConfigRequest, cmd *cobra.Command) { if cmd.Flag(serverSSHAllowedFlag).Changed { req.ServerSSHAllowed = &serverSSHAllowed } - if cmd.Flag(serverVNCAllowedFlag).Changed { - req.ServerVNCAllowed = &serverVNCAllowed - } - if cmd.Flag(disableVNCApprovalFlag).Changed { - req.DisableVNCApproval = &disableVNCApproval - } if cmd.Flag(enableSSHRootFlag).Changed { req.EnableSSHRoot = &enableSSHRoot } @@ -432,6 +426,16 @@ func setSSHSetConfigFields(req *proto.SetConfigRequest, cmd *cobra.Command) { } } +// setVNCSetConfigFields is setSSHSetConfigFields for the VNC server flags. +func setVNCSetConfigFields(req *proto.SetConfigRequest, cmd *cobra.Command) { + if cmd.Flag(serverVNCAllowedFlag).Changed { + req.ServerVNCAllowed = &serverVNCAllowed + } + if cmd.Flag(disableVNCApprovalFlag).Changed { + req.DisableVNCApproval = &disableVNCApproval + } +} + func setupSetConfigReq(customDNSAddressConverted []byte, cmd *cobra.Command, profileName, username string) *proto.SetConfigRequest { var req proto.SetConfigRequest req.ProfileName = profileName @@ -453,6 +457,7 @@ func setupSetConfigReq(customDNSAddressConverted []byte, cmd *cobra.Command, pro req.RosenpassPermissive = &rosenpassPermissive } setSSHSetConfigFields(&req, cmd) + setVNCSetConfigFields(&req, cmd) if cmd.Flag(interfaceNameFlag).Changed { if err := parseInterfaceName(interfaceName); err != nil { @@ -481,46 +486,50 @@ func setupSetConfigReq(customDNSAddressConverted []byte, cmd *cobra.Command, pro req.DisableAutoConnect = &autoConnectDisabled } + setNetworkSetConfigFields(&req, cmd) + setLocalMetricsSetConfigFields(&req, cmd) + + return &req +} + +// setNetworkSetConfigFields copies the routing, DNS and firewall toggles the +// user actually passed into req. +func setNetworkSetConfigFields(req *proto.SetConfigRequest, cmd *cobra.Command) { if cmd.Flag(dnsRouteIntervalFlag).Changed { req.DnsRouteInterval = durationpb.New(dnsRouteInterval) } - if cmd.Flag(disableClientRoutesFlag).Changed { req.DisableClientRoutes = &disableClientRoutes } - if cmd.Flag(disableServerRoutesFlag).Changed { req.DisableServerRoutes = &disableServerRoutes } - if cmd.Flag(disableDNSFlag).Changed { req.DisableDns = &disableDNS } - if cmd.Flag(disableFirewallFlag).Changed { req.DisableFirewall = &disableFirewall } - if cmd.Flag(blockLANAccessFlag).Changed { req.BlockLanAccess = &blockLANAccess } - if cmd.Flag(blockInboundFlag).Changed { req.BlockInbound = &blockInbound } - if cmd.Flag(disableIPv6Flag).Changed { req.DisableIpv6 = &disableIPv6 } +} +// setLocalMetricsSetConfigFields copies the local metrics endpoint flags the +// user actually passed into req. +func setLocalMetricsSetConfigFields(req *proto.SetConfigRequest, cmd *cobra.Command) { if cmd.Flag(enableLocalMetricsFlag).Changed { req.EnableLocalMetrics = &localMetricsEnabled } if cmd.Flag(localMetricsAddressFlag).Changed { req.LocalMetricsAddress = &localMetricsAddr } - - return &req } func setupConfig(customDNSAddressConverted []byte, cmd *cobra.Command, configFilePath string) (*profilemanager.ConfigInput, error) { @@ -653,19 +662,13 @@ func applySSHFlagsToConfig(cmd *cobra.Command, ic *profilemanager.ConfigInput) { } } -// setSSHLoginFields copies the SSH and VNC server flags the user actually -// passed into req, leaving the rest unset so the daemon keeps the persisted +// setSSHLoginFields copies the SSH server flags the user actually passed +// into req, leaving the rest unset so the daemon keeps the persisted // values. func setSSHLoginFields(req *proto.LoginRequest, cmd *cobra.Command) { if cmd.Flag(serverSSHAllowedFlag).Changed { req.ServerSSHAllowed = &serverSSHAllowed } - if cmd.Flag(serverVNCAllowedFlag).Changed { - req.ServerVNCAllowed = &serverVNCAllowed - } - if cmd.Flag(disableVNCApprovalFlag).Changed { - req.DisableVNCApproval = &disableVNCApproval - } if cmd.Flag(enableSSHRootFlag).Changed { req.EnableSSHRoot = &enableSSHRoot } @@ -687,6 +690,16 @@ func setSSHLoginFields(req *proto.LoginRequest, cmd *cobra.Command) { } } +// setVNCLoginFields is setSSHLoginFields for the VNC server flags. +func setVNCLoginFields(req *proto.LoginRequest, cmd *cobra.Command) { + if cmd.Flag(serverVNCAllowedFlag).Changed { + req.ServerVNCAllowed = &serverVNCAllowed + } + if cmd.Flag(disableVNCApprovalFlag).Changed { + req.DisableVNCApproval = &disableVNCApproval + } +} + func setupLoginRequest(providedSetupKey string, customDNSAddressConverted []byte, cmd *cobra.Command) (*proto.LoginRequest, error) { loginRequest := proto.LoginRequest{ SetupKey: providedSetupKey, @@ -714,6 +727,7 @@ func setupLoginRequest(providedSetupKey string, customDNSAddressConverted []byte } setSSHLoginFields(&loginRequest, cmd) + setVNCLoginFields(&loginRequest, cmd) if cmd.Flag(disableAutoConnectFlag).Changed { loginRequest.DisableAutoConnect = &autoConnectDisabled