diff --git a/Makefile b/Makefile index b1db36ef..eafec775 100755 --- a/Makefile +++ b/Makefile @@ -50,9 +50,9 @@ endef define Package/luci-app-adguardhome/postinst #!/bin/sh /etc/init.d/AdGuardHome enable >/dev/null 2>&1 - enable=$(uci get AdGuardHome.AdGuardHome.enabled) + enable=$(uci get AdGuardHome.AdGuardHome.enabled 2>/dev/null) if [ "$enable"x == "1"x ]; then - /etc/init.d/AdGuardHome start + /etc/init.d/AdGuardHome reload fi rm -f /tmp/luci-indexcache rm -f /tmp/luci-modulecache/* diff --git a/luasrc/model/cbi/AdGuardHome/base.lua b/luasrc/model/cbi/AdGuardHome/base.lua index df239698..409d58fe 100755 --- a/luasrc/model/cbi/AdGuardHome/base.lua +++ b/luasrc/model/cbi/AdGuardHome/base.lua @@ -248,9 +248,25 @@ o.write = function(self, section, value) end fs.writefile("/var/run/lucilogpos","0") function m.on_commit(map) - if (fs.access("/var/run/AdGucitest")) then + local ucitracktest=uci:get("AdGuardHome","AdGuardHome","ucitracktest") + if ucitracktest=="1" then + return + elseif ucitracktest=="0" then io.popen("/etc/init.d/AdGuardHome reload &") + else + if (fs.access("/var/run/AdGucitest")) then + uci:set("AdGuardHome","AdGuardHome","ucitracktest","0") + io.popen("/etc/init.d/AdGuardHome reload &") + else + fs.writefile("/var/run/AdGucitest","") + if (ucitracktest=="2") then + uci:set("AdGuardHome","AdGuardHome","ucitracktest","1") + else + uci:set("AdGuardHome","AdGuardHome","ucitracktest","2") + end + end + uci:save("AdGuardHome") + uci:commit("AdGuardHome") end - fs.writefile("/var/run/AdGucitest","") end return m \ No newline at end of file diff --git a/luasrc/model/cbi/AdGuardHome/manual.lua b/luasrc/model/cbi/AdGuardHome/manual.lua index 18aa25ef..06927624 100755 --- a/luasrc/model/cbi/AdGuardHome/manual.lua +++ b/luasrc/model/cbi/AdGuardHome/manual.lua @@ -85,9 +85,13 @@ end end end function m.on_commit(map) - if (fs.access("/var/run/AdGucitest")) then + local ucitracktest=uci:get("AdGuardHome","AdGuardHome","ucitracktest") + if ucitracktest=="1" then + return + elseif ucitracktest=="0" then io.popen("/etc/init.d/AdGuardHome reload &") + else + fs.writefile("/var/run/AdGucitest","") end - fs.writefile("/var/run/AdGucitest","") end return m \ No newline at end of file diff --git a/root/etc/uci-defaults/40_luci-AdGuardHome b/root/etc/uci-defaults/40_luci-AdGuardHome index f7113baa..98dc3bec 100755 --- a/root/etc/uci-defaults/40_luci-AdGuardHome +++ b/root/etc/uci-defaults/40_luci-AdGuardHome @@ -5,6 +5,7 @@ uci -q batch <<-EOF 2>&1 >/dev/null add ucitrack AdGuardHome set ucitrack.@AdGuardHome[-1].init=AdGuardHome commit ucitrack + delete AdGuardHome.AdGuardHome.ucitracktest EOF rm -f /tmp/luci-indexcache