cmd/cli: doing router setup based on "--iface" flag

Solving downgrading issue from newer version to v1.3.1, and also easier
to explain the logic: either doing "magic stuff" or do nothing.
This commit is contained in:
Cuong Manh Le
2023-12-08 23:04:15 +07:00
committed by Cuong Manh Le
parent cebfd12d5c
commit e92619620d
2 changed files with 22 additions and 38 deletions
+2 -16
View File
@@ -144,8 +144,6 @@ func initCLI() {
_ = runCmd.Flags().MarkHidden("homedir") _ = runCmd.Flags().MarkHidden("homedir")
runCmd.Flags().StringVarP(&iface, "iface", "", "", `Update DNS setting for iface, "auto" means the default interface gateway`) runCmd.Flags().StringVarP(&iface, "iface", "", "", `Update DNS setting for iface, "auto" means the default interface gateway`)
_ = runCmd.Flags().MarkHidden("iface") _ = runCmd.Flags().MarkHidden("iface")
runCmd.Flags().BoolVarP(&setupRouter, "router", "", false, "Do setup router")
_ = runCmd.Flags().MarkHidden("router")
runCmd.Flags().StringVarP(&cdUpstreamProto, "proto", "", ctrld.ResolverTypeDOH, `Control D upstream type, either "doh" or "doh3"`) runCmd.Flags().StringVarP(&cdUpstreamProto, "proto", "", ctrld.ResolverTypeDOH, `Control D upstream type, either "doh" or "doh3"`)
rootCmd.AddCommand(runCmd) rootCmd.AddCommand(runCmd)
@@ -255,7 +253,7 @@ func initCLI() {
return return
} }
if router.Name() != "" && setupRouter { if router.Name() != "" && iface != "" {
mainLog.Load().Debug().Msg("cleaning up router before installing") mainLog.Load().Debug().Msg("cleaning up router before installing")
_ = p.router.Cleanup() _ = p.router.Cleanup()
} }
@@ -312,8 +310,6 @@ func initCLI() {
startCmd.Flags().StringVarP(&iface, "iface", "", "", `Update DNS setting for iface, "auto" means the default interface gateway`) startCmd.Flags().StringVarP(&iface, "iface", "", "", `Update DNS setting for iface, "auto" means the default interface gateway`)
startCmd.Flags().StringVarP(&nextdns, nextdnsFlagName, "", "", "NextDNS resolver id") startCmd.Flags().StringVarP(&nextdns, nextdnsFlagName, "", "", "NextDNS resolver id")
startCmd.Flags().StringVarP(&cdUpstreamProto, "proto", "", ctrld.ResolverTypeDOH, `Control D upstream type, either "doh" or "doh3"`) startCmd.Flags().StringVarP(&cdUpstreamProto, "proto", "", ctrld.ResolverTypeDOH, `Control D upstream type, either "doh" or "doh3"`)
startCmd.Flags().BoolVarP(&setupRouter, "router", "", false, "Do router setup")
_ = startCmd.Flags().MarkHidden("router")
routerCmd := &cobra.Command{ routerCmd := &cobra.Command{
Use: "setup", Use: "setup",
@@ -598,16 +594,11 @@ NOTE: Uninstalling will set DNS to values provided by DHCP.`,
if !cmd.Flags().Changed("iface") { if !cmd.Flags().Changed("iface") {
os.Args = append(os.Args, "--iface="+ifaceStartStop) os.Args = append(os.Args, "--iface="+ifaceStartStop)
} }
if !cmd.Flags().Changed("router") {
os.Args = append(os.Args, fmt.Sprintf("--router=%v", setupRouterStartStop))
}
iface = ifaceStartStop iface = ifaceStartStop
setupRouter = setupRouterStartStop
startCmd.Run(cmd, args) startCmd.Run(cmd, args)
}, },
} }
startCmdAlias.Flags().StringVarP(&ifaceStartStop, "iface", "", "auto", `Update DNS setting for iface, "auto" means the default interface gateway`) startCmdAlias.Flags().StringVarP(&ifaceStartStop, "iface", "", "auto", `Update DNS setting for iface, "auto" means the default interface gateway`)
startCmdAlias.Flags().BoolVarP(&setupRouterStartStop, "router", "", true, "Do router setup")
startCmdAlias.Flags().AddFlagSet(startCmd.Flags()) startCmdAlias.Flags().AddFlagSet(startCmd.Flags())
rootCmd.AddCommand(startCmdAlias) rootCmd.AddCommand(startCmdAlias)
stopCmdAlias := &cobra.Command{ stopCmdAlias := &cobra.Command{
@@ -621,16 +612,11 @@ NOTE: Uninstalling will set DNS to values provided by DHCP.`,
if !cmd.Flags().Changed("iface") { if !cmd.Flags().Changed("iface") {
os.Args = append(os.Args, "--iface="+ifaceStartStop) os.Args = append(os.Args, "--iface="+ifaceStartStop)
} }
if !cmd.Flags().Changed("router") {
os.Args = append(os.Args, fmt.Sprintf("--router=%v", setupRouterStartStop))
}
iface = ifaceStartStop iface = ifaceStartStop
setupRouter = setupRouterStartStop
stopCmd.Run(cmd, args) stopCmd.Run(cmd, args)
}, },
} }
stopCmdAlias.Flags().StringVarP(&ifaceStartStop, "iface", "", "auto", `Reset DNS setting for iface, "auto" means the default interface gateway`) stopCmdAlias.Flags().StringVarP(&ifaceStartStop, "iface", "", "auto", `Reset DNS setting for iface, "auto" means the default interface gateway`)
stopCmdAlias.Flags().BoolVarP(&setupRouterStartStop, "router", "", true, "Do router setup")
stopCmdAlias.Flags().AddFlagSet(stopCmd.Flags()) stopCmdAlias.Flags().AddFlagSet(stopCmd.Flags())
rootCmd.AddCommand(stopCmdAlias) rootCmd.AddCommand(stopCmdAlias)
@@ -991,7 +977,7 @@ func run(appCallback *AppCallback, stopCh chan struct{}) {
if cp := router.CertPool(); cp != nil { if cp := router.CertPool(); cp != nil {
rootCertPool = cp rootCertPool = cp
} }
if setupRouter { if iface != "" {
p.onStarted = append(p.onStarted, func() { p.onStarted = append(p.onStarted, func() {
mainLog.Load().Debug().Msg("router setup on start") mainLog.Load().Debug().Msg("router setup on start")
if err := p.router.Setup(); err != nil { if err := p.router.Setup(); err != nil {
-2
View File
@@ -34,8 +34,6 @@ var (
ifaceStartStop string ifaceStartStop string
nextdns string nextdns string
cdUpstreamProto string cdUpstreamProto string
setupRouter bool
setupRouterStartStop bool
mainLog atomic.Pointer[zerolog.Logger] mainLog atomic.Pointer[zerolog.Logger]
consoleWriter zerolog.ConsoleWriter consoleWriter zerolog.ConsoleWriter