From ad29e7594aa606d6e26c8256fc7ae7e18b446ec0 Mon Sep 17 00:00:00 2001 From: Sergey Ponomarev Date: Sat, 6 Sep 2025 16:19:58 +0300 Subject: [PATCH] luci-app-acme: fix review problems Signed-off-by: Sergey Ponomarev --- .../luci-static/resources/view/acme/acme.js | 19 ++++++++++++++----- .../usr/share/rpcd/acl.d/luci-app-acme.json | 3 ++- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/applications/luci-app-acme/htdocs/luci-static/resources/view/acme/acme.js b/applications/luci-app-acme/htdocs/luci-static/resources/view/acme/acme.js index 6e6fd5f7f1..a53f5da5fd 100644 --- a/applications/luci-app-acme/htdocs/luci-static/resources/view/acme/acme.js +++ b/applications/luci-app-acme/htdocs/luci-static/resources/view/acme/acme.js @@ -19,7 +19,7 @@ return view.extend({ return certs; }), L.resolveDefault(fs.exec_direct('/usr/libexec/acmesh-dnsinfo.sh'), ''), - L.resolveDefault(fs.stat('/usr/lib/acme/client/dnsapi'), null), + L.resolveDefault(fs.list('/usr/lib/acme/client/dnsapi/'), null), L.resolveDefault(fs.lines('/proc/sys/kernel/hostname'), ''), L.resolveDefault(uci.load('ddns')), ]); @@ -272,7 +272,6 @@ return view.extend({ ) ); o.depends('acme_server', ''); - o.depends('acme_server', 'letsencrypt'); o.optional = true; o.modalonly = true; @@ -291,9 +290,19 @@ return view.extend({ } }); +/** + * Is not an IP or a local domain without TLD + */ function _isFqdn(domain) { - // Is not an IP i.e. starts from alphanumeric and has least one dot - return /[a-z0-9-]\..*$/.test(domain) && !/[0-9-]\..*$/.test(domain); + let i = domain.lastIndexOf('.'); + if (i < 0) { + return false; + } + let tld = domain.substr(i + 1); + if (tld.length < 2) { + return false; + } + return /^[a-z0-9]+$/.test(tld); } function _guessDomain(hostname) { @@ -336,7 +345,7 @@ function _collectDdnsDomains() { if (credentials.length > 0) { ddnsDomains.push({ sectionId: ddnsService['.name'], - domains: [ddnsService['domain'], '*.' + ddnsService['domain']], + domains: [ddnsService['domain'], ddnsService['domain']], dnsApi: dnsApi, credentials: credentials, }); diff --git a/applications/luci-app-acme/root/usr/share/rpcd/acl.d/luci-app-acme.json b/applications/luci-app-acme/root/usr/share/rpcd/acl.d/luci-app-acme.json index 5abeab0632..4eacfae1bf 100644 --- a/applications/luci-app-acme/root/usr/share/rpcd/acl.d/luci-app-acme.json +++ b/applications/luci-app-acme/root/usr/share/rpcd/acl.d/luci-app-acme.json @@ -4,13 +4,14 @@ "read": { "cgi-io": [ "exec" ], "file": { + "/usr/lib/acme/client/dnsapi": [ "list" ], "/proc/sys/kernel/hostname": [ "read" ], "/etc/ssl/acme": [ "list" ], "/usr/libexec/acmesh-dnsinfo.sh": [ "exec" ], "/sbin/logread -e acme": [ "exec" ], "/usr/sbin/logread -e acme": [ "exec" ] }, - "uci": [ "acme" ] + "uci": [ "acme", "ddns" ] }, "write": { "uci": [ "acme" ] -- 2.30.2