all: support older version of Openwrt

This commit is contained in:
Cuong Manh Le
2023-06-08 02:07:32 +07:00
committed by Cuong Manh Le
parent 929de49c7b
commit 53f8d006f0
2 changed files with 12 additions and 1 deletions
+2 -1
View File
@@ -13,7 +13,8 @@ import (
func newService(s service.Service) service.Service { func newService(s service.Service) service.Service {
// TODO: unify for other SysV system. // TODO: unify for other SysV system.
if router.IsGLiNet() { switch {
case router.IsGLiNet(), router.IsOldOpenwrt():
return &sysV{s} return &sysV{s}
} }
return s return s
+10
View File
@@ -23,6 +23,16 @@ func IsGLiNet() bool {
return bytes.Contains(buf, []byte(" (glinet")) return bytes.Contains(buf, []byte(" (glinet"))
} }
// IsOldOpenwrt reports whether the router is an "old" version of Openwrt,
// aka versions which don't have "service" command.
func IsOldOpenwrt() bool {
if Name() != OpenWrt {
return false
}
cmd, _ := exec.LookPath("service")
return cmd == ""
}
func setupOpenWrt() error { func setupOpenWrt() error {
// Delete dnsmasq port if set. // Delete dnsmasq port if set.
if _, err := uci("delete", "dhcp.@dnsmasq[0].port"); err != nil && !errors.Is(err, errUCIEntryNotFound) { if _, err := uci("delete", "dhcp.@dnsmasq[0].port"); err != nil && !errors.Is(err, errUCIEntryNotFound) {