mirror of
https://github.com/Control-D-Inc/ctrld.git
synced 2026-07-04 01:07:49 +02:00
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:
committed by
Cuong Manh Le
parent
cebfd12d5c
commit
e92619620d
+2
-16
@@ -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 {
|
||||||
|
|||||||
+20
-22
@@ -14,28 +14,26 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
configPath string
|
configPath string
|
||||||
configBase64 string
|
configBase64 string
|
||||||
daemon bool
|
daemon bool
|
||||||
listenAddress string
|
listenAddress string
|
||||||
primaryUpstream string
|
primaryUpstream string
|
||||||
secondaryUpstream string
|
secondaryUpstream string
|
||||||
domains []string
|
domains []string
|
||||||
logPath string
|
logPath string
|
||||||
homedir string
|
homedir string
|
||||||
cacheSize int
|
cacheSize int
|
||||||
cfg ctrld.Config
|
cfg ctrld.Config
|
||||||
verbose int
|
verbose int
|
||||||
silent bool
|
silent bool
|
||||||
cdUID string
|
cdUID string
|
||||||
cdOrg string
|
cdOrg string
|
||||||
cdDev bool
|
cdDev bool
|
||||||
iface string
|
iface string
|
||||||
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
|
||||||
|
|||||||
Reference in New Issue
Block a user