summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-app-ddns/root
diff options
context:
space:
mode:
authorAnsuel Smith <ansuelsmth@gmail.com>2020-09-30 13:40:06 +0200
committerAnsuel Smith <ansuelsmth@gmail.com>2020-10-02 14:30:20 +0200
commite478875c6c8756d3a8ff612c333a38d2f3f9cc8e (patch)
tree0821396b5bbae0c987a942bf43f72f30514ed29c /applications/luci-app-ddns/root
parent1da9df837685b3a2afc80125d056e37198933533 (diff)
luci-app-ddns: rework with new ddns changes
This commit rework the app with the new ddns changes. DDns services are now stored in a dedicated list and the service specific data is stored in a dedicated json. This json can both preinstalled with a companion package or be downloaded on demand. The new app now check if the script is present and give a button to install it if not present in the system. The app now will search for all the available service in the services directory and optionally if present will include in the list the service not installed from a static list. Special service that use a separate script (for example cloudflare-v4) will install directly in the services directory and will be included automatically. The app now reset the ddns rule settings on service change. Also rework the app to drop any global function and rework the function to use more default way to get data. Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
Diffstat (limited to 'applications/luci-app-ddns/root')
-rwxr-xr-xapplications/luci-app-ddns/root/usr/libexec/rpcd/luci.ddns3
-rw-r--r--applications/luci-app-ddns/root/usr/share/rpcd/acl.d/luci-app-ddns.json8
2 files changed, 9 insertions, 2 deletions
diff --git a/applications/luci-app-ddns/root/usr/libexec/rpcd/luci.ddns b/applications/luci-app-ddns/root/usr/libexec/rpcd/luci.ddns
index 7710ee66f..0a60142e6 100755
--- a/applications/luci-app-ddns/root/usr/libexec/rpcd/luci.ddns
+++ b/applications/luci-app-ddns/root/usr/libexec/rpcd/luci.ddns
@@ -7,6 +7,7 @@ local UCI = require "luci.model.uci"
local sys = require "luci.sys"
local util = require "luci.util"
+local ddns_package_path = "/usr/share/ddns"
local luci_helper = "/usr/lib/ddns/dynamic_dns_lucihelper.sh"
local srv_name = "ddns-scripts"
@@ -155,6 +156,7 @@ local methods = {
local ipkg = require "luci.model.ipkg"
local uci = UCI.cursor()
local dateformat = uci:get("ddns", "global", "ddns_dateformat") or "%F %R"
+ local services_mtime = fs.stat(ddns_package_path .. "/list", 'mtime')
uci:unload("ddns")
local ver, srv_ver_cmd
local res = {}
@@ -169,6 +171,7 @@ local methods = {
res['_version'] = ver and #ver > 0 and ver or nil
res['_enabled'] = sys.init.enabled("ddns")
res['_curr_dateformat'] = os.date(dateformat)
+ res['_services_list'] = services_mtime and os.date(dateformat, services_mtime) or 'NO_LIST'
return res
end
diff --git a/applications/luci-app-ddns/root/usr/share/rpcd/acl.d/luci-app-ddns.json b/applications/luci-app-ddns/root/usr/share/rpcd/acl.d/luci-app-ddns.json
index 94952792f..298378452 100644
--- a/applications/luci-app-ddns/root/usr/share/rpcd/acl.d/luci-app-ddns.json
+++ b/applications/luci-app-ddns/root/usr/share/rpcd/acl.d/luci-app-ddns.json
@@ -7,8 +7,12 @@
"luci": [ "setInitAction" ]
},
"file": {
- "/etc/ddns/services": [ "read" ],
- "/etc/ddns/services_ipv6": [ "read" ],
+ "/usr/share/ddns/default": [ "list" ],
+ "/usr/share/ddns/default/*": [ "read" ],
+ "/usr/share/ddns/custom": [ "list" ],
+ "/usr/share/ddns/custom/*": [ "read" ],
+ "/usr/share/ddns/list": [ "read" ],
+ "/usr/bin/ddns": [ "exec" ],
"/usr/lib/ddns/dynamic_dns_lucihelper.sh": [ "exec" ]
},
"uci": [ "ddns" ]