mirror of
https://github.com/Control-D-Inc/ctrld.git
synced 2026-02-03 22:18:39 +00:00
all: make router setup/cleanup works more generally
This commit is contained in:
committed by
Cuong Manh Le
parent
66cb7cc21d
commit
9ed8e49a08
@@ -58,6 +58,9 @@ func (d *Ddwrt) PreRun() error {
|
||||
}
|
||||
|
||||
func (d *Ddwrt) Setup() error {
|
||||
if d.cfg.FirstListener().IsDirectDnsListener() {
|
||||
return nil
|
||||
}
|
||||
// Already setup.
|
||||
if val, _ := nvram.Run("get", nvram.CtrldSetupKey); val == "1" {
|
||||
return nil
|
||||
@@ -81,6 +84,9 @@ func (d *Ddwrt) Setup() error {
|
||||
}
|
||||
|
||||
func (d *Ddwrt) Cleanup() error {
|
||||
if d.cfg.FirstListener().IsDirectDnsListener() {
|
||||
return nil
|
||||
}
|
||||
if val, _ := nvram.Run("get", nvram.CtrldSetupKey); val == "1" {
|
||||
nvramKvMap["dnsmasq_options"] = ""
|
||||
// Restore old configs.
|
||||
|
||||
@@ -62,6 +62,9 @@ func (e *EdgeOS) PreRun() error {
|
||||
}
|
||||
|
||||
func (e *EdgeOS) Setup() error {
|
||||
if e.cfg.FirstListener().IsDirectDnsListener() {
|
||||
return nil
|
||||
}
|
||||
if e.isUSG {
|
||||
return e.setupUSG()
|
||||
}
|
||||
@@ -69,6 +72,9 @@ func (e *EdgeOS) Setup() error {
|
||||
}
|
||||
|
||||
func (e *EdgeOS) Cleanup() error {
|
||||
if e.cfg.FirstListener().IsDirectDnsListener() {
|
||||
return nil
|
||||
}
|
||||
if e.isUSG {
|
||||
return e.cleanupUSG()
|
||||
}
|
||||
|
||||
@@ -54,6 +54,9 @@ func (f *Firewalla) PreRun() error {
|
||||
}
|
||||
|
||||
func (f *Firewalla) Setup() error {
|
||||
if f.cfg.FirstListener().IsDirectDnsListener() {
|
||||
return nil
|
||||
}
|
||||
data, err := dnsmasq.FirewallaConfTmpl(dnsmasq.ConfigContentTmpl, f.cfg)
|
||||
if err != nil {
|
||||
return fmt.Errorf("generating dnsmasq config: %w", err)
|
||||
@@ -71,6 +74,9 @@ func (f *Firewalla) Setup() error {
|
||||
}
|
||||
|
||||
func (f *Firewalla) Cleanup() error {
|
||||
if f.cfg.FirstListener().IsDirectDnsListener() {
|
||||
return nil
|
||||
}
|
||||
// Removing current config.
|
||||
if err := os.Remove(firewallaDNSMasqConfigPath); err != nil {
|
||||
return fmt.Errorf("removing ctrld config: %w", err)
|
||||
|
||||
@@ -49,6 +49,9 @@ func (m *Merlin) PreRun() error {
|
||||
}
|
||||
|
||||
func (m *Merlin) Setup() error {
|
||||
if m.cfg.FirstListener().IsDirectDnsListener() {
|
||||
return nil
|
||||
}
|
||||
buf, err := os.ReadFile(dnsmasq.MerlinPostConfPath)
|
||||
// Already setup.
|
||||
if bytes.Contains(buf, []byte(dnsmasq.MerlinPostConfMarker)) {
|
||||
@@ -86,6 +89,9 @@ func (m *Merlin) Setup() error {
|
||||
}
|
||||
|
||||
func (m *Merlin) Cleanup() error {
|
||||
if m.cfg.FirstListener().IsDirectDnsListener() {
|
||||
return nil
|
||||
}
|
||||
if val, _ := nvram.Run("get", nvram.CtrldSetupKey); val == "1" {
|
||||
// Restore old configs.
|
||||
if err := nvram.Restore(nvramKvMap, nvram.CtrldSetupKey); err != nil {
|
||||
|
||||
@@ -49,6 +49,9 @@ func (o *Openwrt) PreRun() error {
|
||||
}
|
||||
|
||||
func (o *Openwrt) Setup() error {
|
||||
if o.cfg.FirstListener().IsDirectDnsListener() {
|
||||
return nil
|
||||
}
|
||||
data, err := dnsmasq.ConfTmpl(dnsmasq.ConfigContentTmpl, o.cfg)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -68,6 +71,9 @@ func (o *Openwrt) Setup() error {
|
||||
}
|
||||
|
||||
func (o *Openwrt) Cleanup() error {
|
||||
if o.cfg.FirstListener().IsDirectDnsListener() {
|
||||
return nil
|
||||
}
|
||||
// Remove the custom dnsmasq config
|
||||
if err := os.Remove(openwrtDNSMasqConfigPath); err != nil {
|
||||
return err
|
||||
|
||||
@@ -66,6 +66,9 @@ func (p *Pfsense) Install(config *service.Config) error {
|
||||
}
|
||||
|
||||
func (p *Pfsense) Uninstall(config *service.Config) error {
|
||||
if err := os.Remove(filepath.Join(rcPath, p.svcName+".sh")); err != nil {
|
||||
return fmt.Errorf("os.Remove: %w", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -84,11 +87,10 @@ func (p *Pfsense) Setup() error {
|
||||
}
|
||||
|
||||
func (p *Pfsense) Cleanup() error {
|
||||
if err := os.Remove(filepath.Join(rcPath, p.svcName+".sh")); err != nil {
|
||||
return fmt.Errorf("os.Remove: %w", err)
|
||||
if p.cfg.FirstListener().IsDirectDnsListener() {
|
||||
_ = exec.Command(unboundRcPath, "onerestart").Run()
|
||||
_ = exec.Command(dnsmasqRcPath, "onerestart").Run()
|
||||
}
|
||||
_ = exec.Command(unboundRcPath, "onerestart").Run()
|
||||
_ = exec.Command(dnsmasqRcPath, "onerestart").Run()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -44,6 +44,9 @@ func (s *Synology) PreRun() error {
|
||||
}
|
||||
|
||||
func (s *Synology) Setup() error {
|
||||
if s.cfg.FirstListener().IsDirectDnsListener() {
|
||||
return nil
|
||||
}
|
||||
data, err := dnsmasq.ConfTmpl(dnsmasq.ConfigContentTmpl, s.cfg)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -61,6 +64,9 @@ func (s *Synology) Setup() error {
|
||||
}
|
||||
|
||||
func (s *Synology) Cleanup() error {
|
||||
if s.cfg.FirstListener().IsDirectDnsListener() {
|
||||
return nil
|
||||
}
|
||||
// Remove the custom config files.
|
||||
for _, f := range []string{synologyDNSMasqConfigPath, synologyDhcpdInfoPath} {
|
||||
if err := os.Remove(f); err != nil {
|
||||
|
||||
@@ -53,6 +53,9 @@ func (f *FreshTomato) PreRun() error {
|
||||
}
|
||||
|
||||
func (f *FreshTomato) Setup() error {
|
||||
if f.cfg.FirstListener().IsDirectDnsListener() {
|
||||
return nil
|
||||
}
|
||||
// Already setup.
|
||||
if val, _ := nvram.Run("get", nvram.CtrldSetupKey); val == "1" {
|
||||
return nil
|
||||
@@ -83,6 +86,9 @@ func (f *FreshTomato) Setup() error {
|
||||
}
|
||||
|
||||
func (f *FreshTomato) Cleanup() error {
|
||||
if f.cfg.FirstListener().IsDirectDnsListener() {
|
||||
return nil
|
||||
}
|
||||
if val, _ := nvram.Run("get", nvram.CtrldSetupKey); val == "1" {
|
||||
nvramKvMap["dnsmasq_custom"] = ""
|
||||
// Restore old configs.
|
||||
|
||||
@@ -47,6 +47,9 @@ func (u *Ubios) PreRun() error {
|
||||
}
|
||||
|
||||
func (u *Ubios) Setup() error {
|
||||
if u.cfg.FirstListener().IsDirectDnsListener() {
|
||||
return nil
|
||||
}
|
||||
data, err := dnsmasq.ConfTmpl(dnsmasq.ConfigContentTmpl, u.cfg)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -62,6 +65,9 @@ func (u *Ubios) Setup() error {
|
||||
}
|
||||
|
||||
func (u *Ubios) Cleanup() error {
|
||||
if u.cfg.FirstListener().IsDirectDnsListener() {
|
||||
return nil
|
||||
}
|
||||
// Remove the custom dnsmasq config
|
||||
if err := os.Remove(ubiosDNSMasqConfigPath); err != nil {
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user