summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua
diff options
context:
space:
mode:
Diffstat (limited to 'applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua')
-rw-r--r--applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua28
1 files changed, 17 insertions, 11 deletions
diff --git a/applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua b/applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua
index 9a989bae41..6ba3ea0dd8 100644
--- a/applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua
+++ b/applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua
@@ -33,10 +33,13 @@ m.description = CTRL.app_description()
m.on_after_commit = function(self)
if self.changed then -- changes ?
+ local command = CTRL.luci_helper
if SYS.init.enabled("ddns") then -- ddns service enabled, restart all
- os.execute("/etc/init.d/ddns restart")
+ command = command .. " -- restart"
+ os.execute(command)
else -- ddns service disabled, send SIGHUP to running
- os.execute("killall -1 dynamic_dns_updater.sh")
+ command = command .. " -- reload"
+ os.execute(command)
end
end
end
@@ -52,7 +55,7 @@ if show_hints or need_update or not_enabled then
s = m:section( SimpleSection, translate("Hints") )
- -- ddns_scripts needs to be updated for full functionality
+ -- ddns-scripts needs to be updated for full functionality
if need_update then
local dv = s:option(DummyValue, "_update_needed")
dv.titleref = DISP.build_url("admin", "system", "packages")
@@ -119,18 +122,21 @@ function dom.set_one(self, section)
end
end
function dom.set_two(self, section)
- local lookup = self.map:get(section, "lookup_host") or ""
- if lookup == "" then return "" end
+ local lookup_host = self.map:get(section, "lookup_host") or ""
+ if lookup_host == "" then return "" end
local dnsserver = self.map:get(section, "dnsserver") or ""
local use_ipv6 = tonumber(self.map:get(section, "use_ipv6") or 0)
local force_ipversion = tonumber(self.map:get(section, "force_ipversion") or 0)
local force_dnstcp = tonumber(self.map:get(section, "force_dnstcp") or 0)
- local command = [[/usr/lib/ddns/dynamic_dns_lucihelper.sh]]
- if not NXFS.access(command, "rwx", "rx", "rx") then
- NXFS.chmod(command, 755)
- end
- command = command .. [[ get_registered_ip ]] .. lookup .. [[ ]] .. use_ipv6 ..
- [[ ]] .. force_ipversion .. [[ ]] .. force_dnstcp .. [[ ]] .. dnsserver
+ local is_glue = tonumber(self.map:get(section, "is_glue") or 0)
+ local command = CTRL.luci_helper .. [[ -]]
+ if (use_ipv6 == 1) then command = command .. [[6]] end
+ if (force_ipversion == 1) then command = command .. [[f]] end
+ if (force_dnstcp == 1) then command = command .. [[t]] end
+ if (is_glue == 1) then command = command .. [[g]] end
+ command = command .. [[l ]] .. lookup_host
+ if (#dnsserver > 0) then command = command .. [[ -d ]] .. dnsserver end
+ command = command .. [[ -- get_registered_ip]]
local ip = SYS.exec(command)
if ip == "" then ip = translate("no data") end
return ip