From 66cb7cc21dc3ffc285281af0ff6f71fcc7acca3c Mon Sep 17 00:00:00 2001 From: Cuong Manh Le Date: Mon, 17 Jul 2023 18:25:40 +0000 Subject: [PATCH] cmd/ctrld: general UX improvement --- cmd/ctrld/cli.go | 46 ++++++++++++++++++++++++++++++++++++++++++ cmd/ctrld/dns_proxy.go | 6 +++++- 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/cmd/ctrld/cli.go b/cmd/ctrld/cli.go index f043605..6370488 100644 --- a/cmd/ctrld/cli.go +++ b/cmd/ctrld/cli.go @@ -704,6 +704,52 @@ NOTE: Uninstalling will set DNS to values provided by DHCP.`, stopCmdAlias.Flags().StringVarP(&ifaceStartStop, "iface", "", "auto", `Reset DNS setting for iface, "auto" means the default interface gateway`) stopCmdAlias.Flags().AddFlagSet(stopCmd.Flags()) rootCmd.AddCommand(stopCmdAlias) + + restartCmdAlias := &cobra.Command{ + PreRun: func(cmd *cobra.Command, args []string) { + initConsoleLogging() + checkHasElevatedPrivilege() + }, + Use: "restart", + Short: "Restart the ctrld service", + Run: func(cmd *cobra.Command, args []string) { + restartCmd.Run(cmd, args) + }, + } + rootCmd.AddCommand(restartCmdAlias) + + statusCmdAlias := &cobra.Command{ + Use: "status", + Short: "Show status of the ctrld service", + Args: cobra.NoArgs, + PreRun: func(cmd *cobra.Command, args []string) { + initConsoleLogging() + }, + Run: statusCmd.Run, + } + rootCmd.AddCommand(statusCmdAlias) + + uninstallCmdAlias := &cobra.Command{ + PreRun: func(cmd *cobra.Command, args []string) { + initConsoleLogging() + checkHasElevatedPrivilege() + }, + Use: "uninstall", + Short: "Stop and uninstall the ctrld service", + Long: `Stop and uninstall the ctrld service. + +NOTE: Uninstalling will set DNS to values provided by DHCP.`, + Run: func(cmd *cobra.Command, args []string) { + if !cmd.Flags().Changed("iface") { + os.Args = append(os.Args, "--iface="+ifaceStartStop) + } + iface = ifaceStartStop + uninstallCmd.Run(cmd, args) + }, + } + uninstallCmdAlias.Flags().StringVarP(&ifaceStartStop, "iface", "", "auto", `Reset DNS setting for iface, "auto" means the default interface gateway`) + uninstallCmdAlias.Flags().AddFlagSet(stopCmd.Flags()) + rootCmd.AddCommand(uninstallCmdAlias) } func writeConfigFile() error { diff --git a/cmd/ctrld/dns_proxy.go b/cmd/ctrld/dns_proxy.go index 0df6e61..abacd85 100644 --- a/cmd/ctrld/dns_proxy.go +++ b/cmd/ctrld/dns_proxy.go @@ -168,7 +168,11 @@ func (p *prog) upstreamFor(ctx context.Context, defaultUpstreamNum string, lc *c ctrld.Log(ctx, mainLog.Info(), "query refused, %s does not match any network policy", addr.String()) return } - ctrld.Log(ctx, mainLog.Info(), "%s, %s, %s -> %v", matchedPolicy, matchedNetwork, matchedRule, upstreams) + if matched { + ctrld.Log(ctx, mainLog.Info(), "%s, %s, %s -> %v", matchedPolicy, matchedNetwork, matchedRule, upstreams) + } else { + ctrld.Log(ctx, mainLog.Info(), "no explicit policy matched, using default routing -> %v", upstreams) + } }() if lc.Policy == nil {