get Name() {
return "pbr";
},
+ get LuciCompat() {
+ return 14;
+ },
get ReadmeCompat() {
return "1.1.8";
},
get URL() {
return (
- "https://docs.openwrt.melmac.net/" +
+ "https://docs.openwrt.melmac.ca/" +
pkg.Name +
"/" +
(pkg.ReadmeCompat ? pkg.ReadmeCompat + "/" : "")
},
get DonateURL() {
return (
- "https://docs.openwrt.melmac.net/" +
+ "https://docs.openwrt.melmac.ca/" +
pkg.Name +
"/" +
(pkg.ReadmeCompat ? pkg.ReadmeCompat + "/" : "") +
"#Donate"
);
},
+ isVersionMismatch: function (luci, pkg, rpcd) {
+ return luci !== pkg || pkg !== rpcd || luci !== rpcd;
+ },
+ formatMessage: function (info, template) {
+ if (!template) return _("Unknown message") + "<br />";
+ return (
+ (Array.isArray(info)
+ ? template.format(...info)
+ : template.format(info || " ")) + "<br />"
+ );
+ },
};
var getGateways = rpc.declare({
params: ["name"],
});
+var getUbusInfo = rpc.declare({
+ object: "luci." + pkg.Name,
+ method: "getUbusInfo",
+ params: ["name"],
+});
+
var _setInitAction = rpc.declare({
object: "luci." + pkg.Name,
method: "setInitAction",
}
});
},
- getInitList: function (name) {
- getInitList(name).then(
- function (result) {
- this.emit("getInitList", result);
- }.bind(this)
- );
- },
- getInitStatus: function (name) {
- getInitStatus(name).then(
- function (result) {
- this.emit("getInitStatus", result);
- }.bind(this)
- );
- },
- getGateways: function (name) {
- getGateways(name).then(
- function (result) {
- this.emit("getGateways", result);
- }.bind(this)
- );
- },
- getPlatformSupport: function (name) {
- getPlatformSupport(name).then(
- function (result) {
- this.emit("getPlatformSupport", result);
- }.bind(this)
- );
- },
- getInterfaces: function (name) {
- getInterfaces(name).then(
- function (result) {
- this.emit("getInterfaces", result);
- }.bind(this)
- );
- },
setInitAction: function (name, action) {
_setInitAction(name, action).then(
function (result) {
render: function () {
return Promise.all([
L.resolveDefault(getInitStatus(pkg.Name), {}),
- // L.resolveDefault(getGateways(pkg.Name), {}),
+ L.resolveDefault(getUbusInfo(pkg.Name), {}),
]).then(function (data) {
- // var replyStatus = data[0];
- // var replyGateways = data[1];
- var reply;
- var text;
-
- if (data[0] && data[0][pkg.Name]) {
- reply = data[0][pkg.Name];
- } else {
- reply = {
+ var reply = {
+ status: data[0]?.[pkg.Name] || {
enabled: null,
running: null,
running_iptables: null,
running_nft_file: null,
version: null,
gateways: null,
+ packageCompat: 0,
+ rpcdCompat: 0,
+ },
+ ubus: data[1]?.[pkg.Name]?.instances?.main?.data || {
+ packageCompat: 0,
errors: [],
warnings: [],
- };
+ },
+ };
+
+ if (
+ pkg.isVersionMismatch(
+ pkg.LuciCompat,
+ reply.status.packageCompat,
+ reply.status.rpcdCompat
+ )
+ ) {
+ reply.ubus.warnings.push({
+ code: "warningInternalVersionMismatch",
+ info: [
+ reply.ubus.packageCompat,
+ pkg.LuciCompat,
+ reply.status.rpcdCompat,
+ '<a href="' +
+ pkg.URL +
+ '#Warning:InternalVersionMismatch" target="_blank">',
+ "</a>",
+ ],
+ });
}
+ var text;
var header = E("h2", {}, _("Policy Based Routing - Status"));
var statusTitle = E(
"label",
{ class: "cbi-value-title" },
_("Service Status")
);
- if (reply.version) {
- text = _("Version %s").format(reply.version) + " - ";
- if (reply.running) {
+ if (reply.status.version) {
+ text = _("Version %s").format(reply.status.version) + " - ";
+ if (reply.status.running) {
text += _("Running");
- if (reply.running_iptables) {
+ if (reply.status.running_iptables) {
text += " (" + _("iptables mode") + ").";
- } else if (reply.running_nft_file) {
+ } else if (reply.status.running_nft_file) {
text += " (" + _("fw4 nft file mode") + ").";
- } else if (reply.running_nft) {
+ } else if (reply.status.running_nft) {
text += " (" + _("nft mode") + ").";
} else {
text += ".";
}
} else {
- if (reply.enabled) {
+ if (reply.status.enabled) {
text += _("Stopped.");
} else {
text += _("Stopped (Disabled).");
]);
var gatewaysDiv = [];
- if (reply.gateways) {
+ if (reply.status.gateways) {
var gatewaysTitle = E(
"label",
{ class: "cbi-value-title" },
"</a>"
);
var gatewaysDescr = E("div", { class: "cbi-value-description" }, text);
- var gatewaysText = E("div", {}, reply.gateways);
+ var gatewaysText = E("div", {}, reply.status.gateways);
var gatewaysField = E("div", { class: "cbi-value-field" }, [
gatewaysText,
gatewaysDescr,
}
var warningsDiv = [];
- if (reply.warnings && reply.warnings.length) {
- var textLabelsTable = {
+ if (reply.ubus.warnings && reply.ubus.warnings.length) {
+ var warningTable = {
+ warningInternalVersionMismatch: _(
+ "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."
+ ),
warningResolverNotSupported: _(
"Resolver set (%s) is not supported on this system."
).format(L.uci.get(pkg.Name, "config", "resolver_set")),
_("Service Warnings")
);
var text = "";
- reply.warnings.forEach((element) => {
- if (element.id && textLabelsTable[element.id]) {
- if (element.id !== "warningPolicyProcessCMD") {
- text +=
- (textLabelsTable[element.id] + ".").format(
- element.extra || " "
- ) + "<br />";
- }
+ reply.ubus.warnings.forEach((element) => {
+ if (element.code && warningTable[element.code]) {
+ text += pkg.formatMessage(element.info, warningTable[element.code]);
} else {
text += _("Unknown warning") + "<br />";
}
}
var errorsDiv = [];
- if (reply.errors && reply.errors.length) {
- var textLabelsTable = {
+ if (reply.ubus.errors && reply.ubus.errors.length) {
+ var errorTable = {
errorConfigValidation: _("Config (%s) validation failure").format(
"/etc/config/" + pkg.Name
),
"The %s interface not found, you need to set the 'pbr.config.procd_wan_interface' option"
),
errorNoWanInterfaceHint: _(
- "Refer to https://docs.openwrt.melmac.net/pbr/#procd_wan_interface"
+ "Refer to https://docs.openwrt.melmac.ca/pbr/#procd_wan_interface"
),
errorIpsetNameTooLong: _(
"The ipset name '%s' is longer than allowed 31 characters"
errorPolicyProcessInsertionFailedIpv4: _(
"Insertion failed for IPv4 for policy '%s'"
),
+ errorPolicyProcessUnknownEntry: _("Unknown entry in policy '%s'"),
errorInterfaceRoutingEmptyValues: _(
"Received empty tid/mark or interface name when setting up routing"
),
_("Service Errors")
);
var text = "";
- reply.errors.forEach((element) => {
- if (element.id && textLabelsTable[element.id]) {
- if (element.id !== "errorPolicyProcessCMD") {
- text +=
- (textLabelsTable[element.id] + "!").format(
- element.extra || " "
- ) + "<br />";
- }
+ reply.ubus.errors.forEach((element) => {
+ if (element.code && errorTable[element.code]) {
+ text += pkg.formatMessage(element.info, errorTable[element.code]);
} else {
- text += _("Unknown error!") + "<br />";
+ text += _("Unknown error") + "<br />";
}
});
text += _("Errors encountered, please check the %sREADME%s").format(
_("Disable")
);
- if (reply.enabled) {
+ if (reply.status.enabled) {
btn_enable.disabled = true;
btn_disable.disabled = false;
- if (reply.running) {
+ if (reply.status.running) {
btn_start.disabled = true;
btn_action.disabled = false;
btn_stop.disabled = false;
btn_disable,
]);
var buttonsField = E("div", { class: "cbi-value-field" }, buttonsText);
- var buttonsDiv = reply.version
+ var buttonsDiv = reply.status.version
? E("div", { class: "cbi-value" }, [buttonsTitle, buttonsField])
: "";
)
);
- var donateDiv = reply.version
+ var donateDiv = reply.status.version
? E("div", { class: "cbi-value" }, [donateTitle, donateText])
: "";
getInitStatus: getInitStatus,
getInterfaces: getInterfaces,
getPlatformSupport: getPlatformSupport,
+ getUbusInfo: getUbusInfo,
});
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:240
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:358
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:248
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:361
msgid "%s"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:316
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:319
msgid "%s binary cannot be found"
msgstr ""
msgid "Chain"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:405
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:409
msgid "Command failed: '%s'"
msgstr ""
msgid "Condensed output"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:313
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:316
msgid "Config (%s) validation failure"
msgstr ""
msgid "Custom User File Includes"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:361
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:364
msgid "Custom user file '%s' not found or empty"
msgstr ""
msgid "Default ICMP Interface"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:410
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:414
msgid "Default fw4 chain '%s' is missing"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:409
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:413
msgid "Default fw4 table '%s' is missing"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:545
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:544
msgid "Disable"
msgstr ""
msgid "Disabled"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:539
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:538
msgid "Disabling %s service"
msgstr ""
msgid "Display these protocols in protocol column in Web UI."
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:266
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:274
msgid ""
"Dnsmasq instance (%s) targeted in settings, but it doesn't have its own "
"confdir"
msgid "Do not enforce policies when their gateway is down"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:592
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:591
msgid "Donate to the Project"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:526
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:525
msgid "Enable"
msgstr ""
msgid "Enabled"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:520
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:519
msgid "Enabling %s service"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:363
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:366
msgid "Error running custom user file '%s'"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:434
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:433
msgid "Errors encountered, please check the %sREADME%s"
msgstr ""
"QoS. Change with caution together with"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:401
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:405
msgid "Failed to download '%s'"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:399
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:403
msgid "Failed to download '%s', HTTPS is not supported"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:394
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:398
msgid "Failed to install fw4 nft file '%s'"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:360
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:363
msgid "Failed to reload '%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:394
msgid "Failed to resolve '%s'"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:359
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:362
msgid "Failed to set up '%s'"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:367
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:370
msgid "Failed to set up any gateway"
msgstr ""
msgid "Inactive (Disabled)"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:407
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:411
msgid "Incompatible custom user file detected '%s'"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:263
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:271
msgid ""
"Incompatible nft calls detected in user include file, disabling fw4 nft file "
"support"
msgid "Insert"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:385
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:388
msgid "Insertion failed for IPv4 for policy '%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:385
msgid "Insertion failed for both IPv4 and IPv6 for policy '%s'"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:238
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:246
msgid "Installed AdGuardHome (%s) doesn't support 'ipset_file' option."
msgstr ""
msgid "Interface"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:353
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:356
msgid "Interface '%s' has no assigned DNS"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:254
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:240
+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
msgid "Invalid OpenVPN config for %s interface"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:392
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:396
msgid "Invalid OpenVPN config for '%s' interface"
msgstr ""
msgid "Local ports"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:376
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:379
msgid "Mismatched IP family between in policy '%s'"
msgstr ""
msgid "No Change"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:188
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:193
#: applications/luci-app-pbr/htdocs/luci-static/resources/view/status/include/72_pbr.js:58
msgid "Not installed or not found"
msgstr ""
msgid "Path"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:215
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:600
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:220
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:599
msgid "Please %sdonate%s to support development of this project."
msgstr ""
msgid "Please check the %sREADME%s before changing this option."
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:270
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:278
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:248
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:256
msgid "Please unset 'chain' or set 'chain' to 'PREROUTING' for policy '%s'"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:251
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:259
msgid "Please unset 'chain' or set 'chain' to 'prerouting' for policy '%s'"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:245
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:253
msgid "Please unset 'proto' or set 'proto' to 'all' for policy '%s'"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:242
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:250
msgid "Please unset 'src_addr', 'src_port' and 'dest_port' for policy '%s'"
msgstr ""
msgid "Policies"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:356
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:359
msgid "Policy '%s' has an unknown 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:354
msgid "Policy '%s' has no assigned DNS"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:350
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:353
msgid "Policy '%s' has no assigned interface"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:348
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:351
msgid "Policy '%s' has no source/destination parameters"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:396
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:400
msgid ""
"Policy '%s' refers to URL which can't be downloaded in 'secure_reload' mode"
msgstr ""
msgid "Policy Based Routing - Configuration"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:161
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:166
msgid "Policy Based Routing - Status"
msgstr ""
msgid "Protocol"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:388
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:392
msgid "Received empty tid/mark or interface name when setting up routing"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:336
-msgid "Refer to https://docs.openwrt.melmac.net/pbr/#procd_wan_interface"
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:339
+msgid "Refer to https://docs.openwrt.melmac.ca/pbr/#procd_wan_interface"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/view/pbr/overview.js:368
msgid "Remote ports"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:411
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:415
msgid "Required binary '%s' is missing"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:368
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:371
msgid "Resolver '%s'"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:324
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:327
msgid "Resolver set (%s) is not supported on this system"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:235
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:243
msgid "Resolver set (%s) is not supported on this system."
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:318
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:321
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:321
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:324
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:488
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:487
msgid "Restart"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:482
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:481
msgid "Restarting %s service"
msgstr ""
"See the %sREADME%s for details."
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:170
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:175
msgid "Running"
msgstr ""
msgid "Select Add for -A/add and Insert for -I/Insert."
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:571
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:570
msgid "Service Control"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:419
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:423
msgid "Service Errors"
msgstr ""
msgid "Service FW Mask"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:202
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:207
msgid "Service Gateways"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:165
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:170
msgid "Service Status"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:283
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:291
msgid "Service Warnings"
msgstr ""
"%sREADME%s for details."
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:370
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:373
msgid "Skipping IPv6 policy '%s' as IPv6 support is disabled"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:469
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:468
msgid "Start"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:463
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:462
msgid "Starting %s service"
msgstr ""
msgid "Status"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:507
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:506
msgid "Stop"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:184
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:189
msgid "Stopped (Disabled)."
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:182
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:187
msgid "Stopped."
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:501
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:500
msgid "Stopping %s service"
msgstr ""
msgid "Suppress/No output"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:362
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:365
msgid "Syntax error in custom user file '%s'"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:206
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:211
msgid "The %s indicates default gateway. See the %sREADME%s for details."
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:333
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:336
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."
+"procd_wan_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:330
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:333
msgid "The %s service failed to discover WAN gateway"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:327
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:330
msgid "The %s service is currently disabled"
msgstr ""
msgid "The %s support is unknown."
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:257
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:265
msgid "The WebUI application (luci-app-pbr) is outdated, please update it"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:403
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:407
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:339
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:342
msgid "The ipset name '%s' is longer than allowed 31 characters"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:342
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:345
msgid "The nft set name '%s' is longer than allowed 255 characters"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:260
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:268
msgid "The principal package (pbr) is outdated, please update it"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:345
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:348
msgid "Unexpected exit or service termination: '%s'"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:413
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:417
msgid "Unknown IPv6 Link type for device '%s'"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:431
-msgid "Unknown error!"
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:390
+msgid "Unknown entry in policy '%s'"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:373
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:430
+msgid "Unknown error"
+msgstr ""
+
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:40
+msgid "Unknown message"
+msgstr ""
+
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:376
msgid "Unknown packet mark for interface '%s'"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:379
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:382
msgid "Unknown protocol in policy '%s'"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:295
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:298
msgid "Unknown warning"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:365
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:368
msgid ""
"Use of 'curl' is detected in custom user file '%s', but 'curl' isn't "
"installed"
msgid "Version"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:168
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:173
msgid "Version %s"
msgstr ""
msgid "all"
msgstr ""
-#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:174
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:179
#: 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:172
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:177
#: 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:176
+#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:181
#: applications/luci-app-pbr/htdocs/luci-static/resources/view/status/include/72_pbr.js:46
msgid "nft mode"
msgstr ""