1
0
mirror of https://git.openwrt.org/project/luci.git synced 2025-10-14 01:32:18 +08:00

Merge pull request #7991 from stangri/master-luci-app-pbr

luci-app-pbr: update to 1.2.0-r2
This commit is contained in:
Stan Grishin
2025-10-10 16:35:12 -07:00
committed by GitHub
5 changed files with 205 additions and 132 deletions

View File

@@ -6,16 +6,14 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-pbr
PKG_LICENSE:=AGPL-3.0-or-later
PKG_MAINTAINER:=Stan Grishin <stangri@melmac.ca>
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>
help

View File

@@ -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 || " ")) + "<br />"
);
},
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("<br />");
},
};
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({
"<a href='" + pkg.DonateURL + "' target='_blank'>",
"</a>"
);
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({
"</a>"
)
),
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") + "<br />";
}
});
text += _("Warnings encountered, please check the %sREADME%s").format(
'<a href="' + pkg.URL + '#WarningMessagesDetails" target="_blank">',
"</a>!<br />"
);
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(
'<a href="' + pkg.URL + '" target="_blank">',
'<a href="' + pkg.URL + '#ErrorMessagesDetails" target="_blank">',
"</a>!<br />"
);
var errorsText = E("div", { class: "cbi-value-description" }, text);

View File

@@ -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",

View File

@@ -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 ""

View File

@@ -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