luci-app-https-dns-proxy: bugfix: status/overview page include 7052/head
authorStan Grishin <stangri@melmac.ca>
Wed, 10 Apr 2024 21:37:58 +0000 (21:37 +0000)
committerStan Grishin <stangri@melmac.ca>
Wed, 10 Apr 2024 21:40:13 +0000 (21:40 +0000)
This fix prevents iteration over empty/null array of instances (and the type error)
if there are no instances found.

Fixes https://github.com/openwrt/packages/issues/23868

Signed-off-by: Stan Grishin <stangri@melmac.ca>
applications/luci-app-https-dns-proxy/Makefile
applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/status/include/71_https-dns-proxy.js
applications/luci-app-https-dns-proxy/po/templates/https-dns-proxy.pot

index 20e3be869e68d099299d8663652b7a8ef57df820..f546806849d04556e9cadc847d10000ff1c59c70 100644 (file)
@@ -7,7 +7,7 @@ PKG_NAME:=luci-app-https-dns-proxy
 PKG_LICENSE:=GPL-3.0-or-later
 PKG_MAINTAINER:=Stan Grishin <stangri@melmac.ca>
 PKG_VERSION:=2023.11.19
-PKG_RELEASE:=r2
+PKG_RELEASE:=r3
 
 LUCI_TITLE:=DNS Over HTTPS Proxy Web UI
 LUCI_DESCRIPTION:=Provides Web UI for DNS Over HTTPS Proxy
index 1f22f6d6d7826f98ad8b028e125c17d7752c73df..8723b6e653a6fc797b67f8c35602df450733bfcf 100644 (file)
@@ -105,46 +105,47 @@ return baseclass.extend({
                );
 
                var rows = [];
-               Object.values(reply.runtime.instances).forEach((element) => {
-                       var resolver;
-                       var address;
-                       var port;
-                       var name;
-                       var option;
-                       var found;
-                       element.command.forEach((param, index, arr) => {
-                               if (param === "-r") resolver = arr[index + 1];
-                               if (param === "-a") address = arr[index + 1];
-                               if (param === "-p") port = arr[index + 1];
-                       });
-                       resolver = resolver || "Unknown";
-                       address = address || "127.0.0.1";
-                       port = port || "Unknown";
-                       reply.providers.forEach((prov) => {
-                               let regexp = pkg.templateToRegexp(prov.template);
-                               if (!found && regexp.test(resolver)) {
-                                       found = true;
-                                       name = _(prov.title);
-                                       let match = resolver.match(regexp);
-                                       if (match[1] != null) {
-                                               if (
-                                                       prov.params &&
-                                                       prov.params.option &&
-                                                       prov.params.option.options
-                                               ) {
-                                                       prov.params.option.options.forEach((opt) => {
-                                                               if (opt.value === match[1]) option = _(opt.description);
-                                                       });
-                                                       name += " (" + option + ")";
-                                               } else {
-                                                       if (match[1] !== "") name += " (" + match[1] + ")";
+               if (reply.runtime.instances) {
+                       Object.values(reply.runtime.instances).forEach((element) => {
+                               var resolver;
+                               var address;
+                               var port;
+                               var name;
+                               var option;
+                               var found;
+                               element.command.forEach((param, index, arr) => {
+                                       if (param === "-r") resolver = arr[index + 1];
+                                       if (param === "-a") address = arr[index + 1];
+                                       if (param === "-p") port = arr[index + 1];
+                               });
+                               resolver = resolver || "Unknown";
+                               address = address || "127.0.0.1";
+                               port = port || "Unknown";
+                               reply.providers.forEach((prov) => {
+                                       let regexp = pkg.templateToRegexp(prov.template);
+                                       if (!found && regexp.test(resolver)) {
+                                               found = true;
+                                               name = _(prov.title);
+                                               let match = resolver.match(regexp);
+                                               if (match[1] != null) {
+                                                       if (
+                                                               prov.params &&
+                                                               prov.params.option &&
+                                                               prov.params.option.options
+                                                       ) {
+                                                               prov.params.option.options.forEach((opt) => {
+                                                                       if (opt.value === match[1]) option = _(opt.description);
+                                                               });
+                                                               name += " (" + option + ")";
+                                                       } else {
+                                                               if (match[1] !== "") name += " (" + match[1] + ")";
+                                                       }
                                                }
                                        }
-                               }
+                               });
+                               rows.push([name, address, port, forceDnsText]);
                        });
-                       rows.push([name, address, port, forceDnsText]);
-               });
-
+               }
                cbi_update_table(table, rows, E("em", _("There are no active instances.")));
 
                return table;
index 4f8db0f91024a1ca35399b78a5a827273ff858b5..92679608456a1aa4d63573963e9321a3fe0e5859 100644 (file)
@@ -131,10 +131,6 @@ msgstr ""
 msgid "DeCloudUs DNS"
 msgstr ""
 
-#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.adguard.dns.json:14
-msgid "Default (Blocks ads and trackers)"
-msgstr ""
-
 #: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/ch.digitale-gesellschaft.dns.json:2
 msgid "Digitale Gesellschaft (CH)"
 msgstr ""
@@ -176,7 +172,7 @@ msgid "FFMUC DNS (DE)"
 msgstr ""
 
 #: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/ca.cira.canadianshield.json:14
-#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.adguard.dns.json:22
+#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.adguard.dns.json:14
 #: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.cloudflare-dns.json:14
 #: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.controld.freedns.json:14
 #: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.opendns.doh.json:14
@@ -503,6 +499,7 @@ msgid "Spain"
 msgstr ""
 
 #: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/co.oszx.dns.json:18
+#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.adguard.dns.json:18
 #: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.cloudflare-dns.json:18
 #: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.controld.freedns.json:18
 #: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.opendns.doh.json:18
@@ -556,10 +553,6 @@ msgstr ""
 msgid "US/New York"
 msgstr ""
 
-#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.adguard.dns.json:18
-msgid "Unfiltered"
-msgstr ""
-
 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:245
 msgid "Unknown"
 msgstr ""