From 7995ef34b5de544a05af9b3aa77c88a5304e6968 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Wed, 12 Jun 2019 17:47:30 +0200 Subject: [PATCH] luci-mod-system: prevent clearing rc.local on unrelated submit actions Fixes: #2760 Fixes: 1c09ee5e4 ("luci-mod-system: fix SimpleForm usage on file editing pages") Signed-off-by: Jo-Philipp Wich (cherry picked from commit 1aa13ed51ed1c1b62b1ed296383907d953a62698) --- .../luasrc/model/cbi/admin_system/startup.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/startup.lua b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/startup.lua index c3f14540e3..99ddb09701 100644 --- a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/startup.lua +++ b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/startup.lua @@ -7,6 +7,7 @@ local fs = require "nixio.fs" local sys = require "luci.sys" local inits = { } +local handled = false for _, name in ipairs(sys.init.names()) do local index = sys.init.index(name) @@ -49,9 +50,11 @@ end e.write = function(self, section) if inits[section].enabled then + handled = true inits[section].enabled = false return sys.init.disable(inits[section].name) else + handled = true inits[section].enabled = true return sys.init.enable(inits[section].name) end @@ -61,6 +64,7 @@ end start = s:option(Button, "start", translate("Start")) start.inputstyle = "apply" start.write = function(self, section) + handled = true sys.call("/etc/init.d/%s %s >/dev/null" %{ inits[section].name, self.option }) end @@ -87,7 +91,7 @@ function t.cfgvalue() end function f.handle(self, state, data) - if state == FORM_VALID then + if not handled and state == FORM_VALID then if data.rcs then fs.writefile("/etc/rc.local", data.rcs:gsub("\r\n", "\n")) else -- 2.30.2