From dc279c566d630329d2625e6085ba3f2f2e508de8 Mon Sep 17 00:00:00 2001 From: Stan Grishin Date: Tue, 7 Oct 2025 22:40:15 +0000 Subject: [PATCH] luci-app-pbr: update to 1.2.0-r2 * sync with principal package Signed-off-by: Stan Grishin --- applications/luci-app-pbr/Makefile | 6 +- .../luci-static/resources/pbr/status.js | 69 +++-- .../resources/view/pbr/overview.js | 12 +- .../luci-app-pbr/po/templates/pbr.pot | 238 ++++++++++-------- .../root/usr/libexec/rpcd/luci.pbr | 12 +- 5 files changed, 205 insertions(+), 132 deletions(-) diff --git a/applications/luci-app-pbr/Makefile b/applications/luci-app-pbr/Makefile index 0fadc1b1fd..ff4abf76f7 100644 --- a/applications/luci-app-pbr/Makefile +++ b/applications/luci-app-pbr/Makefile @@ -6,16 +6,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-pbr PKG_LICENSE:=AGPL-3.0-or-later PKG_MAINTAINER:=Stan Grishin -PKG_VERSION:=1.1.8 -PKG_RELEASE:=32 +PKG_VERSION:=1.2.0 +PKG_RELEASE:=2 LUCI_TITLE:=Policy Based Routing Service Web UI LUCI_URL:=https://github.com/stangri/luci-app-pbr/ LUCI_DESCRIPTION:=Provides Web UI for Policy Based Routing Service. LUCI_DEPENDS:=+luci-base +jsonfilter +pbr -PKG_PROVIDES:=luci-app-vpnbypass luci-app-vpn-policy-routing - define Package/$(PKG_NAME)/config # shown in make menuconfig help diff --git a/applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js b/applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js index 18f9f2bc77..6820d9339c 100644 --- a/applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js +++ b/applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js @@ -11,10 +11,10 @@ var pkg = { return "pbr"; }, get LuciCompat() { - return 14; + return 17; }, get ReadmeCompat() { - return "1.1.8"; + return "1.2.0"; }, get URL() { return ( @@ -44,6 +44,29 @@ var pkg = { : template.format(info || " ")) + "
" ); }, + buildGatewayText: function (gw) { + const gateways = Array.isArray(gw) ? gw : Object.values(gw); + const lines = gateways.map((g) => { + const iface = g.name; + if (!iface) return ""; + const dev_ipv4 = g.device_ipv4; + const gw_ipv4 = g.gateway_ipv4; + const dev_ipv6 = g.device_ipv6; + const gw_ipv6 = g.gateway_ipv6; + const default_gw = g.default; + const parts = [iface]; + if (dev_ipv4 && dev_ipv4 !== iface) parts.push(dev_ipv4); + if (gw_ipv4) parts.push(gw_ipv4); + if (gw_ipv6) { + if (dev_ipv6 && dev_ipv6 !== iface) parts.push(dev_ipv6); + parts.push(gw_ipv6); + } + let line = parts.join("/"); + if (default_gw) line += " ✓"; + return line; + }); + return lines.join("
"); + }, }; var getGateways = rpc.declare({ @@ -121,9 +144,9 @@ var status = baseclass.extend({ return Promise.all([ L.resolveDefault(getInitStatus(pkg.Name), {}), L.resolveDefault(getUbusInfo(pkg.Name), {}), - ]).then(function (data) { + ]).then(function ([initStatus, ubusInfo]) { var reply = { - status: data[0]?.[pkg.Name] || { + status: initStatus?.[pkg.Name] || { enabled: null, running: null, running_iptables: null, @@ -134,8 +157,9 @@ var status = baseclass.extend({ packageCompat: 0, rpcdCompat: 0, }, - ubus: data[1]?.[pkg.Name]?.instances?.main?.data || { + ubus: ubusInfo?.[pkg.Name]?.instances?.main?.data || { packageCompat: 0, + gateways: [], errors: [], warnings: [], }, @@ -200,13 +224,13 @@ var status = baseclass.extend({ ]); var gatewaysDiv = []; - if (reply.status.gateways) { + if (reply.ubus.gateways) { var gatewaysTitle = E( "label", { class: "cbi-value-title" }, _("Service Gateways") ); - text = + var description = _( "The %s indicates default gateway. See the %sREADME%s for details." ).format( @@ -221,8 +245,13 @@ var status = baseclass.extend({ "", "" ); - var gatewaysDescr = E("div", { class: "cbi-value-description" }, text); - var gatewaysText = E("div", {}, reply.status.gateways); + var gatewaysDescr = E( + "div", + { class: "cbi-value-description" }, + description + ); + text = pkg.buildGatewayText(reply.ubus.gateways); + var gatewaysText = E("div", {}, text); var gatewaysField = E("div", { class: "cbi-value-field" }, [ gatewaysText, gatewaysDescr, @@ -284,6 +313,10 @@ var status = baseclass.extend({ "" ) ), + warningSummary: _("Warnings encountered, please check %s"), + warningIncompatibleDHCPOption6: _( + "Incompatible DHCP Option 6 for interface %s" + ), }; var warningsTitle = E( "label", @@ -298,6 +331,10 @@ var status = baseclass.extend({ text += _("Unknown warning") + "
"; } }); + text += _("Warnings encountered, please check the %sREADME%s").format( + '', + "!
" + ); var warningsText = E("div", { class: "cbi-value-description" }, text); var warningsField = E( "div", @@ -332,11 +369,11 @@ var status = baseclass.extend({ errorNoWanGateway: _( "The %s service failed to discover WAN gateway" ).format(pkg.Name), - errorNoWanInterface: _( - "The %s interface not found, you need to set the 'pbr.config.procd_wan_interface' option" + errorNoUplinkInterface: _( + "The %s interface not found, you need to set the 'pbr.config.uplink_interface' option" ), - errorNoWanInterfaceHint: _( - "Refer to https://docs.openwrt.melmac.ca/pbr/#procd_wan_interface" + errorNoUplinkInterfaceHint: _( + "Refer to https://docs.openwrt.melmac.ca/pbr/#uplink_interface" ), errorIpsetNameTooLong: _( "The ipset name '%s' is longer than allowed 31 characters" @@ -416,6 +453,10 @@ var status = baseclass.extend({ errorInterfaceRoutingUnknownDevType: _( "Unknown IPv6 Link type for device '%s'" ), + errorMktempFileCreate: _( + "Failed to create temporary file with mktemp mask: '%s'" + ), + errorSummary: _("Errors encountered, please check %s"), }; var errorsTitle = E( "label", @@ -431,7 +472,7 @@ var status = baseclass.extend({ } }); text += _("Errors encountered, please check the %sREADME%s").format( - '', + '', "!
" ); var errorsText = E("div", { class: "cbi-value-description" }, text); diff --git a/applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js b/applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js index 1e76efc171..9ad241134b 100644 --- a/applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js +++ b/applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js @@ -196,10 +196,10 @@ return view.extend({ o = s.taboption( "tab_advanced", form.Value, - "wan_mark", - _("WAN Table FW Mark"), + "uplink_mark", + _("Uplink Interface Table FW Mark"), _( - "Starting (WAN) FW Mark for marks used by the service. High starting mark is " + + "Starting (Uplink Interface) FW Mark for marks used by the service. High starting mark is " + "used to avoid conflict with SQM/QoS. Change with caution together with" ) + " " + @@ -373,6 +373,12 @@ return view.extend({ element === "ignore" || o.value(element); }); + o = s.option(form.Value, "dest_dns_port", _("Remote DNS Port")); + o.optional = true; + o.rmempty = true; + o.datatype = "port"; + o.default = "53"; + s = m.section( form.NamedSection, "config", diff --git a/applications/luci-app-pbr/po/templates/pbr.pot b/applications/luci-app-pbr/po/templates/pbr.pot index 75d6ff8c39..0af3293e9d 100644 --- a/applications/luci-app-pbr/po/templates/pbr.pot +++ b/applications/luci-app-pbr/po/templates/pbr.pot @@ -1,12 +1,12 @@ msgid "" msgstr "Content-Type: text/plain; charset=UTF-8" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:248 -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:361 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:277 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:398 msgid "%s" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:319 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:356 msgid "%s binary cannot be found" msgstr "" @@ -67,7 +67,7 @@ msgstr "" msgid "Chain" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:409 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:446 msgid "Command failed: '%s'" msgstr "" @@ -75,7 +75,7 @@ msgstr "" msgid "Condensed output" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:316 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:353 msgid "Config (%s) validation failure" msgstr "" @@ -83,11 +83,11 @@ msgstr "" msgid "Controls both system log and console output verbosity." msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:402 +#: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:408 msgid "Custom User File Includes" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:364 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:401 msgid "Custom user file '%s' not found or empty" msgstr "" @@ -95,11 +95,11 @@ msgstr "" msgid "DNS Policies" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:393 +#: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:399 msgid "DSCP Tag" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:380 +#: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:386 msgid "DSCP Tagging" msgstr "" @@ -107,15 +107,15 @@ msgstr "" msgid "Default ICMP Interface" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:414 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:451 msgid "Default fw4 chain '%s' is missing" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:413 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:450 msgid "Default fw4 table '%s' is missing" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:544 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:585 msgid "Disable" msgstr "" @@ -125,7 +125,7 @@ msgstr "" msgid "Disabled" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:538 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:579 msgid "Disabling %s service" msgstr "" @@ -133,7 +133,7 @@ msgstr "" msgid "Display these protocols in protocol column in Web UI." msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:274 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:303 msgid "" "Dnsmasq instance (%s) targeted in settings, but it doesn't have its own " "confdir" @@ -151,11 +151,11 @@ msgstr "" msgid "Do not enforce policies when their gateway is down" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:591 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:632 msgid "Donate to the Project" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:525 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:566 msgid "Enable" msgstr "" @@ -163,19 +163,23 @@ msgstr "" #: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:243 #: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:274 #: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:354 -#: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:415 +#: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:421 msgid "Enabled" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:519 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:560 msgid "Enabling %s service" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:366 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:403 msgid "Error running custom user file '%s'" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:433 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:459 +msgid "Errors encountered, please check %s" +msgstr "" + +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:474 msgid "Errors encountered, please check the %sREADME%s" msgstr "" @@ -185,31 +189,35 @@ msgid "" "QoS. Change with caution together with" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:405 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:457 +msgid "Failed to create temporary file with mktemp mask: '%s'" +msgstr "" + +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:442 msgid "Failed to download '%s'" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:403 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:440 msgid "Failed to download '%s', HTTPS is not supported" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:398 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:435 msgid "Failed to install fw4 nft file '%s'" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:363 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:400 msgid "Failed to reload '%s'" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:394 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:431 msgid "Failed to resolve '%s'" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:362 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:399 msgid "Failed to set up '%s'" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:370 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:407 msgid "Failed to set up any gateway" msgstr "" @@ -237,11 +245,15 @@ msgstr "" msgid "Inactive (Disabled)" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:411 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:318 +msgid "Incompatible DHCP Option 6 for interface %s" +msgstr "" + +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:448 msgid "Incompatible custom user file detected '%s'" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:271 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:300 msgid "" "Incompatible nft calls detected in user include file, disabling fw4 nft file " "support" @@ -251,15 +263,15 @@ msgstr "" msgid "Insert" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:388 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:425 msgid "Insertion failed for IPv4 for policy '%s'" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:385 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:422 msgid "Insertion failed for both IPv4 and IPv6 for policy '%s'" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:246 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:275 msgid "Installed AdGuardHome (%s) doesn't support 'ipset_file' option." msgstr "" @@ -267,22 +279,22 @@ msgstr "" msgid "Interface" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:356 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:393 msgid "Interface '%s' has no assigned DNS" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:240 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:269 msgid "" "Internal version mismatch (package: %s, luci app: %s, luci rpcd: %s), you " "may need to update packages or reboot the device, please check the " "%sREADME%s." msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:262 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:291 msgid "Invalid OpenVPN config for %s interface" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:396 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:433 msgid "Invalid OpenVPN config for '%s' interface" msgstr "" @@ -295,7 +307,7 @@ msgstr "" msgid "Local ports" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:379 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:416 msgid "Mismatched IP family between in policy '%s'" msgstr "" @@ -327,7 +339,7 @@ msgstr "" msgid "No Change" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:193 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:217 #: applications/luci-app-pbr/htdocs/luci-static/resources/view/status/include/72_pbr.js:58 msgid "Not installed or not found" msgstr "" @@ -336,12 +348,12 @@ msgstr "" msgid "Output verbosity" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:420 +#: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:426 msgid "Path" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:220 -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:599 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:244 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:640 msgid "Please %sdonate%s to support development of this project." msgstr "" @@ -349,24 +361,24 @@ msgstr "" msgid "Please check the %sREADME%s before changing this option." msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:278 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:307 msgid "" "Please set 'dhcp.%%s.force=1' to speed up service start-up %s(more info)%s" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:256 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:285 msgid "Please unset 'chain' or set 'chain' to 'PREROUTING' for policy '%s'" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:259 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:288 msgid "Please unset 'chain' or set 'chain' to 'prerouting' for policy '%s'" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:253 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:282 msgid "Please unset 'proto' or set 'proto' to 'all' for policy '%s'" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:250 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:279 msgid "Please unset 'src_addr', 'src_port' and 'dest_port' for policy '%s'" msgstr "" @@ -374,23 +386,23 @@ msgstr "" msgid "Policies" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:359 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:396 msgid "Policy '%s' has an unknown interface" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:354 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:391 msgid "Policy '%s' has no assigned DNS" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:353 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:390 msgid "Policy '%s' has no assigned interface" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:351 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:388 msgid "Policy '%s' has no source/destination parameters" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:400 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:437 msgid "" "Policy '%s' refers to URL which can't be downloaded in 'secure_reload' mode" msgstr "" @@ -403,7 +415,7 @@ msgstr "" msgid "Policy Based Routing - Configuration" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:166 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:190 msgid "Policy Based Routing - Status" msgstr "" @@ -415,18 +427,22 @@ msgstr "" msgid "Protocol" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:392 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:429 msgid "Received empty tid/mark or interface name when setting up routing" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:339 -msgid "Refer to https://docs.openwrt.melmac.ca/pbr/#procd_wan_interface" +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:376 +msgid "Refer to https://docs.openwrt.melmac.ca/pbr/#uplink_interface" msgstr "" #: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:368 msgid "Remote DNS" msgstr "" +#: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:376 +msgid "Remote DNS Port" +msgstr "" + #: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:292 msgid "Remote addresses / domains" msgstr "" @@ -435,37 +451,37 @@ msgstr "" msgid "Remote ports" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:415 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:452 msgid "Required binary '%s' is missing" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:371 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:408 msgid "Resolver '%s'" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:327 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:364 msgid "Resolver set (%s) is not supported on this system" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:243 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:272 msgid "Resolver set (%s) is not supported on this system." msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:321 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:358 msgid "" "Resolver set support (%s) requires ipset, but ipset binary cannot be found" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:324 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:361 msgid "" "Resolver set support (%s) requires nftables, but nft binary cannot be found" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:487 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:528 msgid "Restart" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:481 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:522 msgid "Restarting %s service" msgstr "" @@ -473,13 +489,13 @@ msgstr "" msgid "Rule Create option" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:404 +#: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:410 msgid "" "Run the following user files after setting up but before restarting DNSMASQ. " "See the %sREADME%s for details." msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:175 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:199 msgid "Running" msgstr "" @@ -491,11 +507,11 @@ msgstr "" msgid "Select Add for -A/add and Insert for -I/Insert." msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:570 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:611 msgid "Service Control" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:423 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:464 msgid "Service Errors" msgstr "" @@ -504,59 +520,60 @@ msgstr "" msgid "Service FW Mask" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:207 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:231 msgid "Service Gateways" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:170 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:194 msgid "Service Status" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:291 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:324 msgid "Service Warnings" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:382 +#: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:388 msgid "" "Set DSCP tags (in range between 1 and 63) for specific interfaces. See the " "%sREADME%s for details." msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:373 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:410 msgid "Skipping IPv6 policy '%s' as IPv6 support is disabled" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:468 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:509 msgid "Start" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:462 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:503 msgid "Starting %s service" msgstr "" #: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:202 msgid "" -"Starting (WAN) FW Mark for marks used by the service. High starting mark is " -"used to avoid conflict with SQM/QoS. Change with caution together with" +"Starting (Uplink Interface) FW Mark for marks used by the service. High " +"starting mark is used to avoid conflict with SQM/QoS. Change with caution " +"together with" msgstr "" #: applications/luci-app-pbr/htdocs/luci-static/resources/view/status/include/72_pbr.js:63 msgid "Status" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:506 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:547 msgid "Stop" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:189 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:213 msgid "Stopped (Disabled)." msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:187 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:211 msgid "Stopped." msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:500 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:541 msgid "Stopping %s service" msgstr "" @@ -580,29 +597,29 @@ msgstr "" msgid "Suppress/No output" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:365 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:402 msgid "Syntax error in custom user file '%s'" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:211 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:235 msgid "The %s indicates default gateway. See the %sREADME%s for details." msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:336 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:373 msgid "" -"The %s interface not found, you need to set the " -"'pbr.config.procd_wan_interface' option" +"The %s interface not found, you need to set the 'pbr.config." +"uplink_interface' option" msgstr "" #: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:96 msgid "The %s is not supported on this system." msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:333 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:370 msgid "The %s service failed to discover WAN gateway" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:330 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:367 msgid "The %s service is currently disabled" msgstr "" @@ -610,39 +627,39 @@ msgstr "" msgid "The %s support is unknown." msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:265 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:294 msgid "The WebUI application (luci-app-pbr) is outdated, please update it" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:407 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:444 msgid "The file:// schema requires curl, but it's not detected on this system" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:342 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:379 msgid "The ipset name '%s' is longer than allowed 31 characters" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:345 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:382 msgid "The nft set name '%s' is longer than allowed 255 characters" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:268 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:297 msgid "The principal package (pbr) is outdated, please update it" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:348 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:385 msgid "Unexpected exit or service termination: '%s'" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:417 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:454 msgid "Unknown IPv6 Link type for device '%s'" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:390 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:427 msgid "Unknown entry in policy '%s'" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:430 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:471 msgid "Unknown error" msgstr "" @@ -650,19 +667,23 @@ msgstr "" msgid "Unknown message" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:376 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:413 msgid "Unknown packet mark for interface '%s'" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:382 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:419 msgid "Unknown protocol in policy '%s'" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:298 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:331 msgid "Unknown warning" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:368 +#: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:200 +msgid "Uplink Interface Table FW Mark" +msgstr "" + +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:405 msgid "" "Use of 'curl' is detected in custom user file '%s', but 'curl' isn't " "installed" @@ -680,15 +701,22 @@ msgstr "" msgid "Version" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:173 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:197 msgid "Version %s" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:200 #: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:223 msgid "WAN Table FW Mark" msgstr "" +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:316 +msgid "Warnings encountered, please check %s" +msgstr "" + +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:334 +msgid "Warnings encountered, please check the %sREADME%s" +msgstr "" + #: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:61 msgid "Web UI Configuration" msgstr "" @@ -697,17 +725,17 @@ msgstr "" msgid "all" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:179 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:203 #: applications/luci-app-pbr/htdocs/luci-static/resources/view/status/include/72_pbr.js:44 msgid "fw4 nft file mode" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:177 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:201 #: applications/luci-app-pbr/htdocs/luci-static/resources/view/status/include/72_pbr.js:42 msgid "iptables mode" msgstr "" -#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:181 +#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:205 #: applications/luci-app-pbr/htdocs/luci-static/resources/view/status/include/72_pbr.js:46 msgid "nft mode" msgstr "" diff --git a/applications/luci-app-pbr/root/usr/libexec/rpcd/luci.pbr b/applications/luci-app-pbr/root/usr/libexec/rpcd/luci.pbr index e5ce4fb4ee..2cb9b33a54 100755 --- a/applications/luci-app-pbr/root/usr/libexec/rpcd/luci.pbr +++ b/applications/luci-app-pbr/root/usr/libexec/rpcd/luci.pbr @@ -12,8 +12,8 @@ # ubus -S call luci.pbr getGateways '{"name": "pbr" }' # ubus -S call luci.pbr getInterfaces '{"name": "pbr" }' -readonly rpcdCompat='14' -readonly pbrFunctionsFile='/etc/init.d/pbr' +readonly rpcdCompat='17' +readonly pbrFunctionsFile="${IPKG_INSTROOT}/etc/init.d/pbr" if [ -s "$pbrFunctionsFile" ]; then # shellcheck source=../../../../../pbr/files/etc/init.d/pbr . "$pbrFunctionsFile" @@ -192,11 +192,11 @@ get_supported_interfaces() { config_get_bool webui_show_ignore_target 'config' 'webui_show_ignore_target' '0' config_get ignored_interface 'config' 'ignored_interface' config_get supported_interface 'config' 'supported_interface' - config_get procd_wan_interface 'config' 'procd_wan_interface' 'wan' - config_get procd_wan6_interface 'config' 'procd_wan6_interface' 'wan6' + config_get uplink_interface 'config' 'uplink_interface' 'wan' + config_get uplink_interface6 'config' 'uplink_interface6' 'wan6' local i - wanIface4="$procd_wan_interface" - wanIface6="$procd_wan6_interface" + wanIface4="$uplink_interface" + wanIface6="$uplink_interface6" config_load 'firewall' config_foreach _find_firewall_wan_zone 'zone' for i in $(uci_get 'firewall' "$firewallWanZone" 'network'); do -- 2.30.2