Merge pull request #6761 from stangri/master-luci-app-https-dns-proxy

luci-app-https-dns-proxy: update to 2023-10-25-5
This commit is contained in:
Stan Grishin 2023-12-11 15:46:08 -07:00 committed by GitHub
commit f8bd034075
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 122 additions and 434 deletions

View file

@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk
PKG_LICENSE:=GPL-3.0-or-later PKG_LICENSE:=GPL-3.0-or-later
PKG_MAINTAINER:=Stan Grishin <stangri@melmac.ca> PKG_MAINTAINER:=Stan Grishin <stangri@melmac.ca>
PKG_VERSION:=2023-10-25-1 PKG_VERSION:=2023-10-25-5
LUCI_TITLE:=DNS Over HTTPS Proxy Web UI LUCI_TITLE:=DNS Over HTTPS Proxy Web UI
LUCI_DESCRIPTION:=Provides Web UI for DNS Over HTTPS Proxy LUCI_DESCRIPTION:=Provides Web UI for DNS Over HTTPS Proxy

View file

@ -6,7 +6,6 @@
"require ui"; "require ui";
"require rpc"; "require rpc";
"require uci";
"require form"; "require form";
"require baseclass"; "require baseclass";
@ -414,11 +413,9 @@ var status = baseclass.extend({
btn_disable, btn_disable,
]); ]);
var buttonsField = E("div", { class: "cbi-value-field" }, buttonsText); var buttonsField = E("div", { class: "cbi-value-field" }, buttonsText);
var buttonsDiv = reply.status.version ? var buttonsDiv = reply.status.version
E('div', {class: 'cbi-value'}, [ ? E("div", { class: "cbi-value" }, [buttonsTitle, buttonsField])
buttonsTitle, : "";
buttonsField,
]) : '';
return E("div", {}, [header, statusDiv, instancesDiv, buttonsDiv]); return E("div", {}, [header, statusDiv, instancesDiv, buttonsDiv]);
}); });
}, },

View file

@ -8,12 +8,10 @@
"use strict"; "use strict";
"require form"; "require form";
"require rpc"; "require rpc";
"require uci";
"require view"; "require view";
"require https-dns-proxy.status as hdp"; "require https-dns-proxy.status as hdp";
var pkg = { var pkg = {
get Name() { get Name() {
return "https-dns-proxy"; return "https-dns-proxy";
}, },
@ -47,8 +45,8 @@ return view.extend({
return Promise.all([ return Promise.all([
L.resolveDefault(hdp.getPlatformSupport(pkg.Name), {}), L.resolveDefault(hdp.getPlatformSupport(pkg.Name), {}),
L.resolveDefault(hdp.getProviders(pkg.Name), {}), L.resolveDefault(hdp.getProviders(pkg.Name), {}),
uci.load(pkg.Name), L.resolveDefault(L.uci.load(pkg.Name), {}),
uci.load("dhcp"), L.resolveDefault(L.uci.load("dhcp"), {}),
]); ]);
}, },
@ -80,7 +78,7 @@ return view.extend({
o = s.option( o = s.option(
form.ListValue, form.ListValue,
"dnsmasq_config_update", "dnsmasq_config_update_option",
_("Update DNSMASQ Config on Start/Stop"), _("Update DNSMASQ Config on Start/Stop"),
_( _(
"If update option is selected, the %s'DNS forwardings' section of DHCP and DNS%s will be automatically updated to use selected DoH providers (%smore information%s)." "If update option is selected, the %s'DNS forwardings' section of DHCP and DNS%s will be automatically updated to use selected DoH providers (%smore information%s)."
@ -92,22 +90,49 @@ return view.extend({
) )
); );
o.value("*", _("Update all configs")); o.value("*", _("Update all configs"));
o.value("+", _("Update select configs"));
o.value("-", _("Do not update configs"));
o.default = "*";
o.retain = true;
o.cfgvalue = function (section_id) {
let val = this.map.data.get(
this.map.config,
section_id,
"dnsmasq_config_update"
);
switch (val) {
case "*":
case "-":
return val;
default:
return "+";
}
};
o.write = function (section_id, formvalue) {
L.uci.set(pkg.Name, section_id, "dnsmasq_config_update", formvalue);
};
var sections = uci.sections("dhcp", "dnsmasq"); o = s.option(
sections.forEach((element) => { form.MultiValue,
"dnsmasq_config_update",
_("Select the DNSMASQ Configs to update")
);
Object.values(L.uci.sections("dhcp", "dnsmasq")).forEach(function (
element
) {
var description; var description;
var key; var key;
if (element[".name"] === uci.resolveSID("dhcp", element[".name"])) { if (element[".name"] === L.uci.resolveSID("dhcp", element[".name"])) {
key = element[".index"]; key = element[".index"];
description = "dnsmasq[" + element[".index"] + "]"; description = "dnsmasq[" + element[".index"] + "]";
} else { } else {
key = element[".name"]; key = element[".name"];
description = element[".name"]; description = element[".name"];
} }
o.value(key, _("Update %s only").format(description)); o.value(key, _("%s").format(description));
}); });
o.value("-", _("Do not update configs")); o.depends("dnsmasq_config_update_option", "+");
o.default = "*"; o.retain = true;
o = s.option( o = s.option(
form.ListValue, form.ListValue,
@ -191,7 +216,7 @@ return view.extend({
reply.providers.forEach((prov) => { reply.providers.forEach((prov) => {
var option; var option;
let regexp = pkg.templateToRegexp(prov.template); let regexp = pkg.templateToRegexp(prov.template);
let resolver = uci.get(pkg.Name, section_id, "resolver_url"); let resolver = L.uci.get(pkg.Name, section_id, "resolver_url");
resolver = resolver === undefined ? null : resolver; resolver = resolver === undefined ? null : resolver;
if (!found && resolver && regexp.test(resolver)) { if (!found && resolver && regexp.test(resolver)) {
found = true; found = true;
@ -240,7 +265,7 @@ return view.extend({
return ret || ""; return ret || "";
}; };
_provider.write = function (section_id, formvalue) { _provider.write = function (section_id, formvalue) {
uci.set(pkg.Name, section_id, "resolver_url", formvalue); L.uci.set(pkg.Name, section_id, "resolver_url", formvalue);
}; };
reply.providers.forEach((prov, i) => { reply.providers.forEach((prov, i) => {
@ -276,7 +301,7 @@ return view.extend({
let resolver = pkg.templateToResolver(template, { let resolver = pkg.templateToResolver(template, {
option: formvalue || "", option: formvalue || "",
}); });
uci.set(pkg.Name, section_id, "resolver_url", resolver); L.uci.set(pkg.Name, section_id, "resolver_url", resolver);
}; };
_paramList.remove = _paramList.write; _paramList.remove = _paramList.write;
} else if ( } else if (
@ -314,7 +339,7 @@ return view.extend({
let resolver = pkg.templateToResolver(template, { let resolver = pkg.templateToResolver(template, {
option: formvalue || "", option: formvalue || "",
}); });
uci.set(pkg.Name, section_id, "resolver_url", resolver); L.uci.set(pkg.Name, section_id, "resolver_url", resolver);
}; };
_paramText.remove = _paramText.write; _paramText.remove = _paramText.write;
} }

View file

@ -1,236 +1,96 @@
msgid "" msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8" msgstr "Content-Type: text/plain; charset=UTF-8"
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:259 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:132
msgid "%s"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:258
msgid "%s%s%s proxy at %s on port %s.%s" msgid "%s%s%s proxy at %s on port %s.%s"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:251 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:250
msgid "%s%s%s proxy on port %s.%s" msgid "%s%s%s proxy on port %s.%s"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/co.oszx.dns.json:14 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:168
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/gr.libredns.doh.json:14
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.mullvad.doh.json:15
msgid "AdBlocking Filter"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.adguard.dns.json:2
msgid "AdGuard"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.controld.freedns.json:30
msgid "Ads + Malware + Social Filter"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.controld.freedns.json:26
msgid "Ads + Malware Filter"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/org.cleanbrowsing.doh.json:14
msgid "Adult Content Filter"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.ahadns.blitz.json:2
msgid "AhaDNS Blitz"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.ahadns.doh.json:2
msgid "AhaDNS Regional"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.alidns.dns.json:2
msgid "AliDNS"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.applied-privacy.doh.json:2
msgid "Applied Privacy DNS (AT)"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.ahadns.doh.json:14
msgid "Australia"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.blahdns.doh.json:2
msgid "BlahDNS"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:143
msgid "" msgid ""
"Blocks access to Mozilla Encrypted resolvers, forcing local devices to use " "Blocks access to Mozilla Encrypted resolvers, forcing local devices to use "
"router for DNS resolution (%smore information%s)." "router for DNS resolution (%smore information%s)."
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:127 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:152
msgid "" msgid ""
"Blocks access to iCloud Private Relay resolvers, forcing local devices to " "Blocks access to iCloud Private Relay resolvers, forcing local devices to "
"use router for DNS resolution (%smore information%s)." "use router for DNS resolution (%smore information%s)."
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:323 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:348
msgid "Bootstrap DNS" msgid "Bootstrap DNS"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.cfiec.dns.json:2 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:166
msgid "CFIEC Public IPv6 Only DNS (CN)"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/ca.cira.canadianshield.json:2
msgid "CIRA Canadian Shield"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:141
msgid "Canary Domains Mozilla" msgid "Canary Domains Mozilla"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:125 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:150
msgid "Canary Domains iCloud" msgid "Canary Domains iCloud"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/org.cleanbrowsing.doh.json:2 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:375
msgid "CleanBrowsing"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.cloudflare-dns.json:2
msgid "Cloudflare"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/app.tiarap.doh.json:18
msgid "Cloudlfare Cached"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/one.comss.dns.json:2
msgid "Comss DNS (RU)"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.controld.freedns.json:2
msgid "ControlD"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.dnsforfamily.dns-doh.json:2
msgid "DNS For Family"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/de.dnsforge.json:2
msgid "DNS Forge (DE)"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/pub.doh.json:2
msgid "DNSPod Public DNS (CN)"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.dnslify.doh.json:2
msgid "DNSlify DNS"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:350
msgid "DSCP Codepoint" msgid "DSCP Codepoint"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.decloudus.dns.json:2 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:376
msgid "DeCloudUs DNS"
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 ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/app.tiarap.doh.json:14
msgid "Direct"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:377
msgid "Disable" msgid "Disable"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:371 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:370
msgid "Disabling %s service" msgid "Disabling %s service"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:109 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:94
msgid "Do not update configs" msgid "Do not update configs"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/cn.360.doh.json:2 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:357
msgid "DoH 360 DNS (CN)"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/sb.dns.json:2
msgid "DoH DNS (SB)"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:358
msgid "Enable" msgid "Enable"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:352 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:351
msgid "Enabling %s service" msgid "Enabling %s service"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.ffmuc.doh.json:2
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: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
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/org.cleanbrowsing.doh.json:18
msgid "Family Filter"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/org.cleanbrowsing.doh.json:8
msgid "Filter"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.ahadns.blitz.json:8
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.rethinkdns.sky.json:8
msgid "Filters"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.blahdns.doh.json:22
msgid "Finland"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/status/include/71_https-dns-proxy.js:102 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/status/include/71_https-dns-proxy.js:102
msgid "Force DNS Ports" msgid "Force DNS Ports"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:172 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:171
msgid "Force DNS ports:" msgid "Force DNS ports:"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:115 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:140
msgid "Force Router DNS" msgid "Force Router DNS"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:119 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:144
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:134 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:159
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:153 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:178
msgid "Force Router DNS server to all local devices" msgid "Force Router DNS server to all local devices"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:383 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:408
msgid "Force use of HTTP/1" msgid "Force use of HTTP/1"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:395 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:420
msgid "Force use of IPv6 DNS resolvers" msgid "Force use of IPv6 DNS resolvers"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:116 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:141
msgid "Forces Router DNS use on local devices, also known as DNS Hijacking." msgid "Forces Router DNS use on local devices, also known as DNS Hijacking."
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.blahdns.doh.json:18
msgid "Germany"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/google.dns.json:2
msgid "Google"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/rpcd/acl.d/luci-app-https-dns-proxy.json:3 #: applications/luci-app-https-dns-proxy/root/usr/share/rpcd/acl.d/luci-app-https-dns-proxy.json:3
msgid "Grant UCI and file access for luci-app-https-dns-proxy" msgid "Grant UCI and file access for luci-app-https-dns-proxy"
msgstr "" msgstr ""
@ -239,15 +99,15 @@ msgstr ""
msgid "HTTPS DNS Proxy" msgid "HTTPS DNS Proxy"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:77 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:75
msgid "HTTPS DNS Proxy - Configuration" msgid "HTTPS DNS Proxy - Configuration"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:180 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:205
msgid "HTTPS DNS Proxy - Instances" msgid "HTTPS DNS Proxy - Instances"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:162 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:161
msgid "HTTPS DNS Proxy - Status" msgid "HTTPS DNS Proxy - Status"
msgstr "" msgstr ""
@ -255,361 +115,170 @@ msgstr ""
msgid "HTTPS DNS Proxy Instances" msgid "HTTPS DNS Proxy Instances"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.he.ordns.json:2 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:84
msgid "Hurricane Electric"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.idnet.doh.json:2
msgid "IDNet (UK)"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/jp.iij.dns.public.json:2
msgid "IIJ Public DNS (JP)"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:86
msgid "" msgid ""
"If update option is selected, the %s'DNS forwardings' section of DHCP and " "If update option is selected, the %s'DNS forwardings' section of DHCP and "
"DNS%s will be automatically updated to use selected DoH providers (%smore " "DNS%s will be automatically updated to use selected DoH providers (%smore "
"information%s)." "information%s)."
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.ahadns.doh.json:26 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:177
msgid "India"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.ahadns.doh.json:30
msgid "Italy"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.blahdns.doh.json:26
msgid "Japan"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/fi.lelux.resolver-eu.json:2
msgid "Lelux DNS (FI)"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:152
msgid "Let local devices use Mozilla Private Relay" msgid "Let local devices use Mozilla Private Relay"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:133 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:158
msgid "Let local devices use iCloud Private Relay" msgid "Let local devices use iCloud Private Relay"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:118 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:143
msgid "Let local devices use their own DNS servers if set" msgid "Let local devices use their own DNS servers if set"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/gr.libredns.doh.json:2 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:353
msgid "LibreDNS (GR)"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:328
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/status/include/71_https-dns-proxy.js:100 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/status/include/71_https-dns-proxy.js:100
msgid "Listen Address" msgid "Listen Address"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:334 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:359
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/status/include/71_https-dns-proxy.js:101 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/status/include/71_https-dns-proxy.js:101
msgid "Listen Port" msgid "Listen Port"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.blahdns.doh.json:8 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:387
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.ahadns.doh.json:8
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/one.comss.dns.json:7
msgid "Location"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:362
msgid "Logging File Path" msgid "Logging File Path"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:356 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:381
msgid "Logging Verbosity" msgid "Logging Verbosity"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.controld.freedns.json:22
msgid "Malware Filter"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/one.comss.dns.json:17
msgid "Moscow, St Petersburg"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.mullvad.doh.json:2
msgid "Mullvad"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/status/include/71_https-dns-proxy.js:99 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/status/include/71_https-dns-proxy.js:99
msgid "Name / Type" msgid "Name / Type"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.ahadns.doh.json:38 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:187
msgid "Netherlands"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/io.nextdns.dns.json:2
msgid "NextDNS.io"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.ahadns.doh.json:42
msgid "Norway"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:188
msgid "Not installed or not found" msgid "Not installed or not found"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/cz.nic.odvr.json:2 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:281
msgid "ODVR (CZ)" #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:313
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/co.oszx.dns.json:2
msgid "OSZX DNS (UK)"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.opendns.doh.json:2
msgid "OpenDNS"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:256
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:288
msgid "Parameter" msgid "Parameter"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:161 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:186
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:170 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:195
msgid "" msgid ""
"Please note that %s is not supported on this system (%smore information%s)." "Please note that %s is not supported on this system (%smore information%s)."
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.ahadns.doh.json:50 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:392
msgid "Poland"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:367
msgid "Polling Interval" msgid "Polling Interval"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/ca.cira.canadianshield.json:18 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:247
msgid "Private Filter"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/ca.cira.canadianshield.json:22
msgid "Protected Filter"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:222
msgid "Provider" msgid "Provider"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:373 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:398
msgid "Proxy Server" msgid "Proxy Server"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/tw.twnic.dns.json:2 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:319
msgid "Quad 101 (TW)"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.quad9.json:2
msgid "Quad 9"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:320
msgid "Restart" msgid "Restart"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:314 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:313
msgid "Restarting %s service" msgid "Restarting %s service"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/lu.restena.kaitain.json:2 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:370
msgid "Restena DNS (LU)"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.rethinkdns.sky.json:2
msgid "Rethink DNS"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/cn.rubyfish.dns.json:2
msgid "RubyFish (CN)"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:345
msgid "Run As Group" msgid "Run As Group"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:340 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:365
msgid "Run As User" msgid "Run As User"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/io.seby.doh-2.json:2 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:203
msgid "Seby DNS (AU)"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.quad9.json:18
msgid "Secured"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.quad9.json:26
msgid "Secured with ECS Support"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.cloudflare-dns.json:22
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/org.cleanbrowsing.doh.json:22
msgid "Security Filter"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:204
msgid "See the %sREADME%s for details." msgid "See the %sREADME%s for details."
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:403 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:118
msgid "Select the DNSMASQ Configs to update"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:402
msgid "Service Control" msgid "Service Control"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:202 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:201
msgid "Service Instances" msgid "Service Instances"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:166 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:165
msgid "Service Status" msgid "Service Status"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/one.comss.dns.json:13 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:300
msgid "Siberia"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.blahdns.doh.json:30
msgid "Singapore"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/org.snopyta.dns.doh.fi.json:2
msgid "Snopyta DNS (FI)"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.ahadns.doh.json:22
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
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/gr.libredns.doh.json:18
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.mullvad.doh.json:19
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.quad9.json:14
msgid "Standard"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:301
msgid "Start" msgid "Start"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:295 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:294
msgid "Starting %s service" msgid "Starting %s service"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:339 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:338
msgid "Stop" msgid "Stop"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:333 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:332
msgid "Stopping %s service" msgid "Stopping %s service"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/ch.switch.dns.json:2
msgid "Switch DNS (CH)"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.blahdns.doh.json:14
msgid "Switzerland"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/status/include/71_https-dns-proxy.js:148 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/status/include/71_https-dns-proxy.js:148
msgid "There are no active instances." msgid "There are no active instances."
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/app.tiarap.doh.json:2 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:243
msgid "Tiarap Public DNS (JP)"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.ahadns.doh.json:18
msgid "US/Chicago"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.ahadns.doh.json:34
msgid "US/Los Angeles"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.ahadns.doh.json:46
msgid "US/New York"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:218
msgid "Unknown" msgid "Unknown"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.quad9.json:22 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:82
msgid "Unsecured"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:107
msgid "Update %s only"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:84
msgid "Update DNSMASQ Config on Start/Stop" msgid "Update DNSMASQ Config on Start/Stop"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:94 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:92
msgid "Update all configs" msgid "Update all configs"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:378 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:93
msgid "Update select configs"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:403
msgid "Use HTTP/1" msgid "Use HTTP/1"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:389 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:414
msgid "Use IPv6 resolvers" msgid "Use IPv6 resolvers"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:394 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:419
msgid "Use any family DNS resolvers" msgid "Use any family DNS resolvers"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:382 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:407
msgid "Use negotiated HTTP version" msgid "Use negotiated HTTP version"
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/io.nextdns.dns.json:8 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:169
msgid "Username"
msgstr ""
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/app.tiarap.doh.json:8
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/ca.cira.canadianshield.json:8
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/co.oszx.dns.json:8
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.adguard.dns.json:8
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.cloudflare-dns.json:8
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.controld.freedns.json:8
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.opendns.doh.json:8
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/gr.libredns.doh.json:8
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.mullvad.doh.json:9
#: applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.quad9.json:8
msgid "Variant"
msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:170
msgid "Version %s - Running." msgid "Version %s - Running."
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:182 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:181
msgid "Version %s - Stopped (Disabled)." msgid "Version %s - Stopped (Disabled)."
msgstr "" msgstr ""
#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:180 #: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:179
msgid "Version %s - Stopped." msgid "Version %s - Stopped."
msgstr "" msgstr ""

View file

@ -117,14 +117,11 @@ get_runtime() { ubus call service list "{ 'verbose': true, 'name': '$1' }"; }
set_init_action() { set_init_action() {
local name="$1" action="$2" cmd local name="$1" action="$2" cmd
case $action in case $action in
enable) enable|disable|start|stop|restart)
cmd="/etc/init.d/${name} enable";; cmd="/etc/init.d/${name} ${action}"
disable) ;;
cmd="/etc/init.d/${name} disable";;
start|stop|restart)
cmd="/etc/init.d/${name} ${action}";;
esac esac
if [ -n "$cmd" ] && eval "${cmd}" >/dev/null 2>&1; then if [ -n "$cmd" ] && eval "$cmd" >/dev/null 2>&1; then
print_json_bool "result" '1' print_json_bool "result" '1'
else else
print_json_bool "result" '0' print_json_bool "result" '0'