luci-app-pbr: update to 1.2.2-r8

* version bump to match the principal package
* safer wait for long pbr operations

Signed-off-by: Stan Grishin <stangri@melmac.ca>
This commit is contained in:
Stan Grishin
2026-03-02 20:33:19 +00:00
parent 1aa8490c87
commit 1c2a26f6aa
3 changed files with 147 additions and 127 deletions

View File

@@ -7,7 +7,7 @@ PKG_NAME:=luci-app-pbr
PKG_LICENSE:=AGPL-3.0-or-later
PKG_MAINTAINER:=Stan Grishin <stangri@melmac.ca>
PKG_VERSION:=1.2.2
PKG_RELEASE:=6
PKG_RELEASE:=8
LUCI_TITLE:=Policy Based Routing Service Web UI
LUCI_URL:=https://github.com/mossdef-org/luci-app-pbr/

View File

@@ -125,31 +125,39 @@ var RPC = {
});
},
setInitAction: function (name, action) {
_setInitAction(name, action).then(
function (result) {
this.emit("setInitAction", result);
}.bind(this),
);
_setInitAction(name, action)
.then(
function (result) {
this.emit("setInitAction", { result: result, action: action });
}.bind(this),
)
.catch(
function (error) {
// Even if RPC call fails/times out, emit event to start polling
// This handles cases where the backend task starts but RPC times out
this.emit("setInitAction", { timeout: true, action: action });
}.bind(this),
);
},
};
// Poll service status until completion (for long-running operations like download)
var pollServiceStatus = function (callback) {
// Poll service status until the expected running state is reached.
// expectRunning: true for start/restart, false for stop.
var pollServiceStatus = function (expectRunning, callback) {
var maxAttempts = 300; // Max 5 minutes of polling
var attempt = 0;
var checkStatus = function () {
attempt++;
// Use the RPC function directly from the module scope
L.resolveDefault(getInitStatus(pkg.Name), {})
.then(function (statusData) {
var currentStatus =
var isRunning =
statusData && statusData[pkg.Name] && statusData[pkg.Name].running;
// Check if completed or failed
if (currentStatus === true) {
callback(true, currentStatus);
// Check if the expected state has been reached
if (expectRunning ? isRunning === true : isRunning !== true) {
callback(true);
}
// Check if timed out
else if (attempt >= maxAttempts) {
@@ -157,7 +165,7 @@ var pollServiceStatus = function (callback) {
}
// Continue polling
else {
setTimeout(checkStatus, 1000); // Check again in 1 second
setTimeout(checkStatus, 1000);
}
})
.catch(function (err) {
@@ -170,7 +178,7 @@ var pollServiceStatus = function (callback) {
});
};
// Start polling after 2 seconds delay (give backend time to start the task)
// Start polling after a delay to give the backend time to start the task
setTimeout(checkStatus, 3000);
};
@@ -727,12 +735,24 @@ var status = baseclass.extend({
});
RPC.on("setInitAction", function (reply) {
// Don't immediately hide modal and reload
// Instead, poll status until the operation actually completes
pollServiceStatus(function () {
var action = reply && reply.action;
if (action === "start" || action === "restart" || action === "reload") {
// Long-running: poll until service is running
pollServiceStatus(true, function () {
ui.hideModal();
location.reload();
});
} else if (action === "stop") {
// Poll until service has stopped
pollServiceStatus(false, function () {
ui.hideModal();
location.reload();
});
} else {
// enable/disable are fast, just reload immediately
ui.hideModal();
location.reload();
});
}
});
return L.Class.extend({

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:312
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:442
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:320
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:450
msgid "%s"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:397
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:405
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:493
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:501
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:394
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:402
msgid "Config (%s) validation failure"
msgstr ""
@@ -87,7 +87,7 @@ msgstr ""
msgid "Custom User File Includes"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:445
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:453
msgid "Custom user file '%s' not found or empty"
msgstr ""
@@ -107,15 +107,15 @@ msgstr ""
msgid "Default ICMP Interface"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:498
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:506
msgid "Default fw4 chain '%s' is missing"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:497
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:505
msgid "Default fw4 table '%s' is missing"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:650
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:658
msgid "Disable"
msgstr ""
@@ -125,7 +125,7 @@ msgstr ""
msgid "Disabled"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:644
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:652
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:338
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:346
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:697
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:705
msgid "Donate to the Project"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:631
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:639
msgid "Enable"
msgstr ""
@@ -167,19 +167,19 @@ msgstr ""
msgid "Enabled"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:625
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:633
msgid "Enabling %s service"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:447
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:455
msgid "Error running custom user file '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:506
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:514
msgid "Errors encountered, please check %s"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:539
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:547
msgid "Errors encountered, please check the %sREADME%s"
msgstr ""
@@ -189,35 +189,35 @@ msgid ""
"QoS. Change with caution together with"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:504
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:512
msgid "Failed to create temporary file with mktemp mask: '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:489
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:497
msgid "Failed to download '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:487
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:495
msgid "Failed to download '%s', HTTPS is not supported"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:482
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:490
msgid "Failed to install fw4 nft file '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:444
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:452
msgid "Failed to reload '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:478
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:486
msgid "Failed to resolve '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:443
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:451
msgid "Failed to set up '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:451
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:459
msgid "Failed to set up any gateway"
msgstr ""
@@ -245,15 +245,15 @@ msgstr ""
msgid "Inactive (Disabled)"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:353
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:361
msgid "Incompatible DHCP Option 6 for interface %s"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:495
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:503
msgid "Incompatible custom user file detected '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:335
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:343
msgid ""
"Incompatible nft calls detected in user include file, disabling fw4 nft file "
"support"
@@ -263,15 +263,15 @@ msgstr ""
msgid "Insert"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:469
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:477
msgid "Insertion failed for IPv4 for policy '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:466
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:474
msgid "Insertion failed for both IPv4 and IPv6 for policy '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:310
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:318
msgid "Installed AdGuardHome (%s) doesn't support 'ipset_file' option."
msgstr ""
@@ -279,26 +279,26 @@ msgstr ""
msgid "Interface"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:437
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:445
msgid "Interface '%s' has no assigned DNS"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:476
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:484
msgid "Interface mark for '%s' exceeds the fwmask value"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:304
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:312
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:326
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:334
msgid "Invalid OpenVPN config for %s interface"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:480
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:488
msgid "Invalid OpenVPN config for '%s' interface"
msgstr ""
@@ -311,7 +311,7 @@ msgstr ""
msgid "Local ports"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:460
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:468
msgid "Mismatched IP family between in policy '%s'"
msgstr ""
@@ -339,27 +339,27 @@ msgid ""
"check the %sREADME%s."
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:511
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:519
msgid "Netifd setup: failed to delete fw4 netifd nft file '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:508
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:516
msgid "Netifd setup: failed to install fw4 netifd nft file '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:517
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:525
msgid "Netifd setup: invalid value of netifd_interface_default option '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:520
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:528
msgid "Netifd setup: invalid value of netifd_interface_default6 option '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:356
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:364
msgid "Netifd setup: option netifd_interface_local is missing, assuming '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:514
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:522
msgid "Netifd setup: required option '%s' is missing"
msgstr ""
@@ -367,7 +367,7 @@ msgstr ""
msgid "No Change"
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
#: applications/luci-app-pbr/htdocs/luci-static/resources/view/status/include/72_pbr.js:45
msgid "Not installed or not found"
msgstr ""
@@ -380,8 +380,8 @@ msgstr ""
msgid "Path"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:279
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:705
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:287
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:713
msgid "Please %sdonate%s to support development of this project."
msgstr ""
@@ -389,24 +389,24 @@ msgstr ""
msgid "Please check the %sREADME%s before changing this option."
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:342
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:350
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:320
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:328
msgid "Please unset 'chain' or set 'chain' to 'PREROUTING' for policy '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:323
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:331
msgid "Please unset 'chain' or set 'chain' to 'prerouting' for policy '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:317
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:325
msgid "Please unset 'proto' or set 'proto' to 'all' for policy '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:314
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:322
msgid "Please unset 'src_addr', 'src_port' and 'dest_port' for policy '%s'"
msgstr ""
@@ -414,23 +414,23 @@ msgstr ""
msgid "Policies"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:440
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:448
msgid "Policy '%s' has an unknown interface"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:435
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:443
msgid "Policy '%s' has no assigned DNS"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:434
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:442
msgid "Policy '%s' has no assigned interface"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:432
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:440
msgid "Policy '%s' has no source/destination parameters"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:484
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:492
msgid ""
"Policy '%s' refers to URL which can't be downloaded in 'secure_reload' mode"
msgstr ""
@@ -443,7 +443,7 @@ msgstr ""
msgid "Policy Based Routing - Configuration"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:224
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:232
msgid "Policy Based Routing - Status"
msgstr ""
@@ -455,11 +455,11 @@ msgstr ""
msgid "Protocol"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:473
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:481
msgid "Received empty tid/mark or interface name when setting up routing"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:417
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:425
msgid "Refer to %sREADME%s for details"
msgstr ""
@@ -479,37 +479,37 @@ msgstr ""
msgid "Remote ports"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:499
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:507
msgid "Required binary '%s' is missing"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:452
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:460
msgid "Resolver '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:405
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:413
msgid "Resolver set (%s) is not supported on this system"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:307
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:315
msgid "Resolver set (%s) is not supported on this system."
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:399
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:407
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:402
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:410
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:593
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:601
msgid "Restart"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:587
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:595
msgid "Restarting %s service"
msgstr ""
@@ -523,7 +523,7 @@ msgid ""
"See the %sREADME%s for details."
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:233
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:241
msgid "Running"
msgstr ""
@@ -535,11 +535,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:676
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:684
msgid "Service Control"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:529
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:537
msgid "Service Errors"
msgstr ""
@@ -548,15 +548,15 @@ msgstr ""
msgid "Service FW Mask"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:265
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:273
msgid "Service Gateways"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:228
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:236
msgid "Service Status"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:365
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:373
msgid "Service Warnings"
msgstr ""
@@ -566,15 +566,15 @@ msgid ""
"%sREADME%s for details."
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:454
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:462
msgid "Skipping IPv6 policy '%s' as IPv6 support is disabled"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:574
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:582
msgid "Start"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:568
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:576
msgid "Starting %s service"
msgstr ""
@@ -596,19 +596,19 @@ msgstr ""
msgid "Status"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:612
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:620
msgid "Stop"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:247
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:255
msgid "Stopped (Disabled)."
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 "Stopped."
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:606
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:614
msgid "Stopping %s service"
msgstr ""
@@ -632,29 +632,29 @@ msgstr ""
msgid "Suppress/No output"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:446
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:454
msgid "Syntax error in custom user file '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:269
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:277
msgid "The %s indicates default gateway. See the %sREADME%s for details."
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:414
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:422
msgid ""
"The %s interface not found, you need to set the "
"'pbr.config.uplink_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:97
msgid "The %s is not supported on this system."
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:411
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:419
msgid "The %s service failed to discover uplink gateway"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:408
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:416
msgid "The %s service is currently disabled"
msgstr ""
@@ -662,23 +662,23 @@ msgstr ""
msgid "The %s support is unknown."
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:491
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:499
msgid "The '%s' schema requires curl, but it's not detected on this system"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:329
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:337
msgid "The WebUI application (luci-app-pbr) is outdated, please update it"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:423
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:431
msgid "The ipset name '%s' is longer than allowed 31 characters"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:426
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:434
msgid "The nft set name '%s' is longer than allowed 255 characters"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:332
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:340
msgid "The principal package (pbr) is outdated, please update it"
msgstr ""
@@ -686,19 +686,19 @@ msgstr ""
msgid "Unable to retrieve %s status"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:429
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:437
msgid "Unexpected exit or service termination: '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:501
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:509
msgid "Unknown IPv6 Link type for device '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:471
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:479
msgid "Unknown entry in policy '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:536
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:544
msgid "Unknown error"
msgstr ""
@@ -706,15 +706,15 @@ msgstr ""
msgid "Unknown message"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:457
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:465
msgid "Unknown packet mark for interface '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:463
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:471
msgid "Unknown protocol in policy '%s'"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:372
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:380
msgid "Unknown warning"
msgstr ""
@@ -726,17 +726,17 @@ msgstr ""
msgid "Uplink Interface Table FW Mark"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:359
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:367
msgid "Uplink/WAN interface is still down, going back to boot mode"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:523
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:531
msgid ""
"Uplink/WAN interface is still down, increase value of "
"'procd_boot_trigger_delay' option"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:449
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:457
msgid ""
"Use of 'curl' is detected in custom user file '%s', but 'curl' isn't "
"installed"
@@ -754,7 +754,7 @@ msgstr ""
msgid "Version"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:231
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:239
msgid "Version %s"
msgstr ""
@@ -762,11 +762,11 @@ msgstr ""
msgid "WAN Table FW Mark"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:351
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:359
msgid "Warnings encountered, please check %s"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:375
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:383
msgid "Warnings encountered, please check the %sREADME%s"
msgstr ""
@@ -778,17 +778,17 @@ msgstr ""
msgid "all"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:237
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:245
#: applications/luci-app-pbr/htdocs/luci-static/resources/view/status/include/72_pbr.js:31
msgid "fw4 nft file mode"
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
#: applications/luci-app-pbr/htdocs/luci-static/resources/view/status/include/72_pbr.js:29
msgid "iptables mode"
msgstr ""
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:239
#: applications/luci-app-pbr/htdocs/luci-static/resources/pbr/status.js:247
#: applications/luci-app-pbr/htdocs/luci-static/resources/view/status/include/72_pbr.js:33
msgid "nft mode"
msgstr ""