mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-02 05:23:56 +08:00
⛄ Sync 2026-09-27 11:19:57
This commit is contained in:
1 parent
0f7c086a55
commit
630025e97d
8 files changed
+279
-195
No files matched your search
@@ -12,7 +12,7 @@ LUCI_DEPENDS:=+luci-base +logd +jsonfilter +coreutils-timeout
|
|||||||
LUCI_PKGARCH:=all
|
LUCI_PKGARCH:=all
|
||||||
|
|
||||||
PKG_VERSION:=0.1.46
|
PKG_VERSION:=0.1.46
|
||||||
PKG_RELEASE:=40
|
PKG_RELEASE:=41
|
||||||
|
|
||||||
# Reproducible build: honor SOURCE_DATE_EPOCH from the build environment (set by docker-sdk.sh / CI).
|
# Reproducible build: honor SOURCE_DATE_EPOCH from the build environment (set by docker-sdk.sh / CI).
|
||||||
ifdef SOURCE_DATE_EPOCH
|
ifdef SOURCE_DATE_EPOCH
|
||||||
|
|||||||
@@ -59,7 +59,9 @@ function applyFetchedEntries(entries, normalized, opts) {
|
|||||||
|
|
||||||
let next;
|
let next;
|
||||||
if (merge) next = mergeById(entries, normalized, cap);
|
if (merge) next = mergeById(entries, normalized, cap);
|
||||||
else next = (normalized || []).slice(-cap);
|
else if (!normalized || !normalized.length)
|
||||||
|
next = entries && entries.length ? entries.slice(-cap) : [];
|
||||||
|
else next = normalized.slice(-cap);
|
||||||
|
|
||||||
if (!paused && next.length > rowLimit) next = next.slice(-rowLimit);
|
if (!paused && next.length > rowLimit) next = next.slice(-rowLimit);
|
||||||
|
|
||||||
|
|||||||
@@ -81,11 +81,16 @@ function addrFilterLink(field, ip, showHostnames, hostnameCache, onFilterClick)
|
|||||||
|
|
||||||
let name = null;
|
let name = null;
|
||||||
if (showHostnames && hostnameCache) {
|
if (showHostnames && hostnameCache) {
|
||||||
|
/* Resolve stores the bare address; scoped rows still look up that key. */
|
||||||
|
const cacheKey =
|
||||||
|
typeof ip === 'string' && ip.lastIndexOf('%') !== -1
|
||||||
|
? ip.slice(0, ip.lastIndexOf('%'))
|
||||||
|
: ip;
|
||||||
/* Display reads refresh recency so visible names remain warm in the LRU. */
|
/* Display reads refresh recency so visible names remain warm in the LRU. */
|
||||||
name =
|
name =
|
||||||
hostname && typeof hostname.lruGet === 'function'
|
hostname && typeof hostname.lruGet === 'function'
|
||||||
? hostname.lruGet(hostnameCache, ip)
|
? hostname.lruGet(hostnameCache, cacheKey)
|
||||||
: hostnameCache.get(ip);
|
: hostnameCache.get(cacheKey);
|
||||||
}
|
}
|
||||||
const display = name || ip;
|
const display = name || ip;
|
||||||
const title = name ? ip : _('Filter by %s').format(log.filterFieldLabel(field));
|
const title = name ? ip : _('Filter by %s').format(log.filterFieldLabel(field));
|
||||||
|
|||||||
@@ -25,10 +25,11 @@ function createScheduler(options) {
|
|||||||
|
|
||||||
function schedule(force) {
|
function schedule(force) {
|
||||||
if (disposed) return;
|
if (disposed) return;
|
||||||
force = !!force || nextForce !== null;
|
const reservation = nextForce;
|
||||||
nextForce = null;
|
force = !!force || reservation !== null;
|
||||||
const epoch = getEpoch();
|
const epoch = getEpoch();
|
||||||
if (typeof requestFrame !== 'function') {
|
if (typeof requestFrame !== 'function') {
|
||||||
|
nextForce = null;
|
||||||
render(!!force);
|
render(!!force);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -38,16 +39,20 @@ function createScheduler(options) {
|
|||||||
* replaces the frame. The callback always reads current view state. */
|
* replaces the frame. The callback always reads current view state. */
|
||||||
pending.force = pending.force || !!force;
|
pending.force = pending.force || !!force;
|
||||||
pending.epoch = epoch;
|
pending.epoch = epoch;
|
||||||
|
if (reservation && !pending.reservation) pending.reservation = reservation;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
pending = { epoch: epoch, force: !!force };
|
pending = { epoch: epoch, force: !!force, reservation: reservation };
|
||||||
frameId = requestFrame(function () {
|
frameId = requestFrame(function () {
|
||||||
const request = pending;
|
const request = pending;
|
||||||
pending = null;
|
pending = null;
|
||||||
frameId = null;
|
frameId = null;
|
||||||
if (disposed || request.epoch !== getEpoch()) return;
|
if (disposed || request.epoch !== getEpoch()) return;
|
||||||
|
|
||||||
|
/* Drop only the reservation this frame used. A newer forceNextRender
|
||||||
|
* after an unforced schedule must survive this callback. */
|
||||||
|
if (nextForce === request.reservation) nextForce = null;
|
||||||
/* A current request queued behind stale work gets its own frame. */
|
/* A current request queued behind stale work gets its own frame. */
|
||||||
if (epoch !== request.epoch) schedule(request.force);
|
if (epoch !== request.epoch) schedule(request.force);
|
||||||
else render(request.force);
|
else render(request.force);
|
||||||
|
|||||||
@@ -25,8 +25,10 @@
|
|||||||
* flowCell, buildColumnCell.
|
* flowCell, buildColumnCell.
|
||||||
*
|
*
|
||||||
* Modules must not mutate state. Forced renders clear and rebuild the host;
|
* Modules must not mutate state. Forced renders clear and rebuild the host;
|
||||||
* normal polls reuse unchanged keyed rows and only build changed rows. Does
|
* normal polls reuse unchanged keyed rows and only build changed rows.
|
||||||
* not touch #fwlive-scroll or #fwlive-empty.
|
* rowRenderKey must include every painted field (including resolved hostnames)
|
||||||
|
* so a non-forced paint can refresh display-only changes. Does not touch
|
||||||
|
* #fwlive-scroll or #fwlive-empty.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function columnLabel(col) {
|
function columnLabel(col) {
|
||||||
@@ -268,6 +270,16 @@ function renderThead(host, state, _callbacks) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function hostnameCacheValue(ip, state) {
|
||||||
|
if (!state.showHostnames || !state.hostnameCache || !ip) return '';
|
||||||
|
const key =
|
||||||
|
typeof ip === 'string' && ip.lastIndexOf('%') !== -1
|
||||||
|
? ip.slice(0, ip.lastIndexOf('%'))
|
||||||
|
: ip;
|
||||||
|
const value = state.hostnameCache.get ? state.hostnameCache.get(key) : undefined;
|
||||||
|
return value == null ? '' : String(value);
|
||||||
|
}
|
||||||
|
|
||||||
function rowRenderKey(row, state, columns) {
|
function rowRenderKey(row, state, columns) {
|
||||||
return JSON.stringify([
|
return JSON.stringify([
|
||||||
row.id,
|
row.id,
|
||||||
@@ -291,7 +303,9 @@ function rowRenderKey(row, state, columns) {
|
|||||||
state.messageLayout,
|
state.messageLayout,
|
||||||
state.expandedRowId === row.id,
|
state.expandedRowId === row.id,
|
||||||
!!state.rowTint,
|
!!state.rowTint,
|
||||||
!!state.showHostnames
|
!!state.showHostnames,
|
||||||
|
hostnameCacheValue(row.src, state),
|
||||||
|
hostnameCacheValue(row.dst, state)
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -108,6 +108,12 @@ function isIpv4Address(addr) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Scoped IPv6 (`fe80::1%eth0`) still resolves as the bare address. */
|
||||||
|
function stripIpZone(addr) {
|
||||||
|
const zone = addr.lastIndexOf('%');
|
||||||
|
return zone === -1 ? addr : addr.slice(0, zone);
|
||||||
|
}
|
||||||
|
|
||||||
return view.extend({
|
return view.extend({
|
||||||
rowLimit: constants.DEFAULT_ROW_LIMIT,
|
rowLimit: constants.DEFAULT_ROW_LIMIT,
|
||||||
fetchMode: constants.DEFAULT_FETCH_MODE,
|
fetchMode: constants.DEFAULT_FETCH_MODE,
|
||||||
@@ -585,6 +591,8 @@ return view.extend({
|
|||||||
|
|
||||||
isLikelyIp(addr) {
|
isLikelyIp(addr) {
|
||||||
if (typeof addr !== 'string' || !addr) return false;
|
if (typeof addr !== 'string' || !addr) return false;
|
||||||
|
addr = stripIpZone(addr);
|
||||||
|
if (!addr) return false;
|
||||||
if (isIpv4Address(addr)) return true;
|
if (isIpv4Address(addr)) return true;
|
||||||
if (!addr.includes(':') || !/^[\da-f:.]+$/i.test(addr) || addr.includes(':::'))
|
if (!addr.includes(':') || !/^[\da-f:.]+$/i.test(addr) || addr.includes(':::'))
|
||||||
return false;
|
return false;
|
||||||
@@ -1029,6 +1037,7 @@ return view.extend({
|
|||||||
failPollReply(rtt, errorCode) {
|
failPollReply(rtt, errorCode) {
|
||||||
this.lastPollError = true;
|
this.lastPollError = true;
|
||||||
this.lastPollErrorCode = typeof errorCode === 'string' ? errorCode : null;
|
this.lastPollErrorCode = typeof errorCode === 'string' ? errorCode : null;
|
||||||
|
this.lastBatchNewIdCount = 0;
|
||||||
this.fillingBuffer = false;
|
this.fillingBuffer = false;
|
||||||
this.notePollRtt(rtt, true);
|
this.notePollRtt(rtt, true);
|
||||||
this.updateAdaptiveBanner();
|
this.updateAdaptiveBanner();
|
||||||
@@ -1774,8 +1783,8 @@ return view.extend({
|
|||||||
|
|
||||||
for (let i = 0; i < entries.length; i++) {
|
for (let i = 0; i < entries.length; i++) {
|
||||||
const r = entries[i];
|
const r = entries[i];
|
||||||
if (r.src && this.isLikelyIp(r.src)) ips.add(r.src);
|
if (r.src && this.isLikelyIp(r.src)) ips.add(stripIpZone(r.src));
|
||||||
if (r.dst && this.isLikelyIp(r.dst)) ips.add(r.dst);
|
if (r.dst && this.isLikelyIp(r.dst)) ips.add(stripIpZone(r.dst));
|
||||||
}
|
}
|
||||||
|
|
||||||
return Array.from(ips);
|
return Array.from(ips);
|
||||||
@@ -2016,7 +2025,8 @@ return view.extend({
|
|||||||
{
|
{
|
||||||
rows: rows.slice(),
|
rows: rows.slice(),
|
||||||
columns: this.activeColumns().slice(),
|
columns: this.activeColumns().slice(),
|
||||||
forceRender: !!force,
|
/* force only bypasses the paint budget; the key sees expand/hostnames. */
|
||||||
|
forceRender: false,
|
||||||
viewMode: this.viewMode,
|
viewMode: this.viewMode,
|
||||||
messageLayout: this.messageLayout,
|
messageLayout: this.messageLayout,
|
||||||
expandedRowId: this.expandedRowId,
|
expandedRowId: this.expandedRowId,
|
||||||
@@ -2070,7 +2080,9 @@ return view.extend({
|
|||||||
const scroll = ev && ev.target;
|
const scroll = ev && ev.target;
|
||||||
if (!scroll || this.tablePaused) return;
|
if (!scroll || this.tablePaused) return;
|
||||||
|
|
||||||
this.followLive = scroll.scrollTop < 8;
|
const now = scroll.scrollTop < 8;
|
||||||
|
if (now === this.followLive) return;
|
||||||
|
this.followLive = now;
|
||||||
this.updateStatus();
|
this.updateStatus();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1548
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1557
|
||||||
msgid "%d matching · %d/%d stored"
|
msgid "%d matching · %d/%d stored"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1341
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1350
|
||||||
msgid "%s · requested up to %d raw lines · %d firewall messages returned"
|
msgid "%s · requested up to %d raw lines · %d firewall messages returned"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1331
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1339
|
||||||
msgid ""
|
msgid ""
|
||||||
"%s · requested up to %d raw lines · server limited fetch to %d · %d firewall "
|
"%s · requested up to %d raw lines · server limited fetch to %d · %d firewall "
|
||||||
"messages returned"
|
"messages returned"
|
||||||
@@ -19,24 +19,24 @@ msgstr ""
|
|||||||
msgid "%s: %s"
|
msgid "%s: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1550
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1559
|
||||||
msgid "0 matching · %d/%d stored"
|
msgid "0 matching · %d/%d stored"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:440
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:446
|
||||||
msgid "Accessible (teal/orange)"
|
msgid "Accessible (teal/orange)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/log.js:353
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/log.js:353
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:35
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:37
|
||||||
msgid "Action"
|
msgid "Action"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:874
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:882
|
||||||
msgid "Administrator access is required to disable logging."
|
msgid "Administrator access is required to disable logging."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:851
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:859
|
||||||
msgid "Administrator access is required to enable logging."
|
msgid "Administrator access is required to enable logging."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -44,25 +44,25 @@ msgstr ""
|
|||||||
msgid "Allow/deny rules, LAN logging, or anything else."
|
msgid "Allow/deny rules, LAN logging, or anything else."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1742
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1751
|
||||||
msgid "Also seen"
|
msgid "Also seen"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:832
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:839
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:863
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:870
|
||||||
msgid "Another change is staged for the firewall; apply or revert it first."
|
msgid "Another change is staged for the firewall; apply or revert it first."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2547
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2559
|
||||||
msgid "Any action"
|
msgid "Any action"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1735
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1744
|
||||||
msgid "Any protocol"
|
msgid "Any protocol"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1322
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1331
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1382
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1391
|
||||||
msgid "Auto"
|
msgid "Auto"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -70,7 +70,7 @@ msgstr ""
|
|||||||
msgid "Before you enable logging"
|
msgid "Before you enable logging"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:829
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:837
|
||||||
msgid "Cannot enable logging until kernel log modules are installed."
|
msgid "Cannot enable logging until kernel log modules are installed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -78,11 +78,11 @@ msgstr ""
|
|||||||
msgid "Changes:"
|
msgid "Changes:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:439
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:445
|
||||||
msgid "Classic (green/red)"
|
msgid "Classic (green/red)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2278
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2290
|
||||||
msgid "Classic uses green/red; Accessible uses teal/orange"
|
msgid "Classic uses green/red; Accessible uses teal/orange"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -90,83 +90,83 @@ msgstr ""
|
|||||||
msgid "Clear all"
|
msgid "Clear all"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2619
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2630
|
||||||
msgid ""
|
msgid ""
|
||||||
"Click a cell to filter · ≠ on a chip to exclude · Ctrl+click a rule for "
|
"Click a cell to filter · ≠ on a chip to exclude · Ctrl+click a rule for "
|
||||||
"firewall settings · in Simple view, click a row for the full message"
|
"firewall settings · in Simple view, click a row for the full message"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2346
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2357
|
||||||
msgid ""
|
msgid ""
|
||||||
"Click a row (Time or other non-link cells) to see the full log line (Simple "
|
"Click a row (Time or other non-link cells) to see the full log line (Simple "
|
||||||
"view)."
|
"view)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:156
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:158
|
||||||
msgid "Click a row for the full message"
|
msgid "Click a row for the full message"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2351
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2362
|
||||||
msgid ""
|
msgid ""
|
||||||
"Click an IP, action, or protocol to filter; use the Protocol menu (or ≠ on a "
|
"Click an IP, action, or protocol to filter; use the Protocol menu (or ≠ on a "
|
||||||
"chip) to exclude."
|
"chip) to exclude."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1736
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1745
|
||||||
msgid "Common"
|
msgid "Common"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1567
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1576
|
||||||
msgid "Connection lost — retrying…"
|
msgid "Connection lost — retrying…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:837
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:845
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:868
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:876
|
||||||
msgid "Could not acquire the logging lock."
|
msgid "Could not acquire the logging lock."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:871
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:879
|
||||||
msgid "Could not disable logging."
|
msgid "Could not disable logging."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:842
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:850
|
||||||
msgid "Could not enable logging."
|
msgid "Could not enable logging."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:769
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:777
|
||||||
msgid "Could not load logging status."
|
msgid "Could not load logging status."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:768
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:776
|
||||||
msgid "Could not refresh logging status; showing the last known state."
|
msgid "Could not refresh logging status; showing the last known state."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:839
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:847
|
||||||
msgid "Could not snapshot the current logging state."
|
msgid "Could not snapshot the current logging state."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2574
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2585
|
||||||
msgid "Custom protocol (prefix ! to exclude). Overrides the menu when set."
|
msgid "Custom protocol (prefix ! to exclude). Overrides the menu when set."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:45
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:47
|
||||||
msgid "DPort"
|
msgid "DPort"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1184
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1193
|
||||||
msgid "Degraded — sampling"
|
msgid "Degraded — sampling"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1353
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1362
|
||||||
msgid "Degraded — sampling (slow poll RTT; cadence reduced)."
|
msgid "Degraded — sampling (slow poll RTT; cadence reduced)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/log.js:357
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/log.js:357
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:43
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:45
|
||||||
msgid "Destination"
|
msgid "Destination"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2604
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2616
|
||||||
msgid "Destination IP contains (! to exclude)"
|
msgid "Destination IP contains (! to exclude)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -174,15 +174,15 @@ msgstr ""
|
|||||||
msgid "Destination port"
|
msgid "Destination port"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2609
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2621
|
||||||
msgid "Destination port (! to exclude)"
|
msgid "Destination port (! to exclude)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2462
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2474
|
||||||
msgid "Detail"
|
msgid "Detail"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:40
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:42
|
||||||
msgid "Dir"
|
msgid "Dir"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -190,15 +190,15 @@ msgstr ""
|
|||||||
msgid "Disabling…"
|
msgid "Disabling…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1180
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1189
|
||||||
msgid "Display limited to %d rows on this device"
|
msgid "Display limited to %d rows on this device"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2219
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2231
|
||||||
msgid "Display options"
|
msgid "Display options"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2311
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2323
|
||||||
msgid "Display options on the bar set Limit, row tint, palette, and hostnames."
|
msgid "Display options on the bar set Limit, row tint, palette, and hostnames."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -222,7 +222,7 @@ msgstr ""
|
|||||||
msgid "Enable logging"
|
msgid "Enable logging"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2307
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2318
|
||||||
msgid ""
|
msgid ""
|
||||||
"Enable logging turns on WAN zone drop/reject logging only (same as Network → "
|
"Enable logging turns on WAN zone drop/reject logging only (same as Network → "
|
||||||
"Firewall). It does not add rules or log normal LAN browsing."
|
"Firewall). It does not add rules or log normal LAN browsing."
|
||||||
@@ -233,7 +233,7 @@ msgstr ""
|
|||||||
msgid "Enabling…"
|
msgid "Enabling…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1749
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1758
|
||||||
msgid "Exclude"
|
msgid "Exclude"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -241,46 +241,46 @@ msgstr ""
|
|||||||
msgid "Exclude instead"
|
msgid "Exclude instead"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2233
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2245
|
||||||
msgid "Fetch budget"
|
msgid "Fetch budget"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2315
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2326
|
||||||
msgid ""
|
msgid ""
|
||||||
"Fetch budget controls raw log lines per poll. Auto derives from Limit; "
|
"Fetch budget controls raw log lines per poll. Auto derives from Limit; "
|
||||||
"Manual selects a bounded maximum."
|
"Manual selects a bounded maximum."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:63
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:63
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:91
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:96
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:156
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:161
|
||||||
msgid "Filter by %s"
|
msgid "Filter by %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:129
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:133
|
||||||
msgid "Filter logs by rule (hint: %s). Ctrl+click to open firewall settings."
|
msgid "Filter logs by rule (hint: %s). Ctrl+click to open firewall settings."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2389
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2401
|
||||||
#: openwrt-feed/luci-app-fwlive/root/usr/share/luci/menu.d/luci-app-fwlive.json:3
|
#: openwrt-feed/luci-app-fwlive/root/usr/share/luci/menu.d/luci-app-fwlive.json:3
|
||||||
msgid "Firewall Live View"
|
msgid "Firewall Live View"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:46
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:48
|
||||||
msgid "Flags"
|
msgid "Flags"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:48
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:50
|
||||||
msgid "Flow"
|
msgid "Flow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2325
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2336
|
||||||
msgid ""
|
msgid ""
|
||||||
"For a responsive table on a weak device, keep Limit at 250 rows or below. "
|
"For a responsive table on a weak device, keep Limit at 250 rows or below. "
|
||||||
"The weak-device cap affects rendered rows; the buffer can still retain more."
|
"The weak-device cap affects rendered rows; the buffer can still retain more."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:59
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:61
|
||||||
msgid "Forwarded"
|
msgid "Forwarded"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -288,46 +288,46 @@ msgstr ""
|
|||||||
msgid "Grant access to firewall live log view"
|
msgid "Grant access to firewall live log view"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2298
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2310
|
||||||
msgid "Help"
|
msgid "Help"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1460
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1469
|
||||||
msgid "Hide rows"
|
msgid "Hide rows"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1516
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1524
|
||||||
msgid ""
|
msgid ""
|
||||||
"High event rate — table refresh is throttled to protect the browser. The "
|
"High event rate — table refresh is throttled to protect the browser. The "
|
||||||
"buffer still updates; refresh will resume automatically."
|
"buffer still updates; refresh will resume automatically."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1360
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1369
|
||||||
msgid "Hostname resolve paused while the router is under load."
|
msgid "Hostname resolve paused while the router is under load."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1740
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1749
|
||||||
msgid "ICMPv6"
|
msgid "ICMPv6"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:38
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:40
|
||||||
msgid "IN"
|
msgid "IN"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2362
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2373
|
||||||
msgid ""
|
msgid ""
|
||||||
"If Row tint looks missing, the active LuCI theme may omit success/error or "
|
"If Row tint looks missing, the active LuCI theme may omit success/error or "
|
||||||
"info/warn CSS variables; fwlive falls back to local colors (air-gapped, no "
|
"info/warn CSS variables; fwlive falls back to local colors (air-gapped, no "
|
||||||
"data leaves the device)."
|
"data leaves the device)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:324
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:323
|
||||||
msgid ""
|
msgid ""
|
||||||
"If the WAN is quiet, wait for probes or use the optional ping check in "
|
"If the WAN is quiet, wait for probes or use the optional ping check in "
|
||||||
"Help / the enabling-logs guide."
|
"Help / the enabling-logs guide."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:57
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:59
|
||||||
msgid "Inbound"
|
msgid "Inbound"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -335,16 +335,16 @@ msgstr ""
|
|||||||
msgid "Include instead"
|
msgid "Include instead"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1566
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1575
|
||||||
msgid "Installation is incomplete. Reinstall luci-app-fwlive."
|
msgid "Installation is incomplete. Reinstall luci-app-fwlive."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/log.js:354
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/log.js:354
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:37
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:39
|
||||||
msgid "Interface"
|
msgid "Interface"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2589
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2601
|
||||||
msgid "Interface (prefix ! to exclude)"
|
msgid "Interface (prefix ! to exclude)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -357,21 +357,21 @@ msgstr ""
|
|||||||
msgid "Kernel log modules missing"
|
msgid "Kernel log modules missing"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:290
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:289
|
||||||
msgid ""
|
msgid ""
|
||||||
"Kernel netfilter log modules are missing. Install kmod-nf-log-ipv4 and kmod-"
|
"Kernel netfilter log modules are missing. Install kmod-nf-log-ipv4 and kmod-"
|
||||||
"nf-log-ipv6 (or kmod-nf-log / kmod-nf-log6), then reload the firewall."
|
"nf-log-ipv6 (or kmod-nf-log / kmod-nf-log6), then reload the firewall."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:47
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:49
|
||||||
msgid "Len"
|
msgid "Len"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2222
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2234
|
||||||
msgid "Limit"
|
msgid "Limit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:734
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:741
|
||||||
msgid "Live view may be incomplete — a legacy iptables table is registered"
|
msgid "Live view may be incomplete — a legacy iptables table is registered"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -379,16 +379,16 @@ msgstr ""
|
|||||||
msgid "Logging is off on this router"
|
msgid "Logging is off on this router"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1322
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1331
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1383
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1392
|
||||||
msgid "Manual"
|
msgid "Manual"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2251
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2263
|
||||||
msgid "Manual still uses server protection and poll cadence"
|
msgid "Manual still uses server protection and poll cadence"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2320
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2331
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manual still uses server protection and poll cadence; it changes the fetch "
|
"Manual still uses server protection and poll cadence; it changes the fetch "
|
||||||
"budget, not the polling interval."
|
"budget, not the polling interval."
|
||||||
@@ -398,18 +398,18 @@ msgstr ""
|
|||||||
msgid "Manual test (System → Terminal):"
|
msgid "Manual test (System → Terminal):"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2245
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2257
|
||||||
msgid "Maximum raw lines"
|
msgid "Maximum raw lines"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:49
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:51
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:330
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:344
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2474
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2486
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2481
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2493
|
||||||
msgid "Message"
|
msgid "Message"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2584
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2596
|
||||||
msgid "More filters"
|
msgid "More filters"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -426,8 +426,8 @@ msgstr ""
|
|||||||
msgid "No WAN zone found"
|
msgid "No WAN zone found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:835
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:843
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:866
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:874
|
||||||
msgid "No WAN zone found; cannot toggle logging without one."
|
msgid "No WAN zone found; cannot toggle logging without one."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -439,11 +439,11 @@ msgstr ""
|
|||||||
msgid "Nothing changes until you click Enable."
|
msgid "Nothing changes until you click Enable."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:39
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:41
|
||||||
msgid "OUT"
|
msgid "OUT"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2504
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2516
|
||||||
msgid "One line"
|
msgid "One line"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -451,40 +451,40 @@ msgstr ""
|
|||||||
msgid "Open firewall zone settings"
|
msgid "Open firewall zone settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:336
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:335
|
||||||
msgid ""
|
msgid ""
|
||||||
"OpenWrt does not write firewall events to the log until you turn logging on. "
|
"OpenWrt does not write firewall events to the log until you turn logging on. "
|
||||||
"Live View only shows what the firewall already logs — it does not add allow/"
|
"Live View only shows what the firewall already logs — it does not add allow/"
|
||||||
"deny rules."
|
"deny rules."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:58
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:60
|
||||||
msgid "Outbound"
|
msgid "Outbound"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2272
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2284
|
||||||
msgid "Palette"
|
msgid "Palette"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1615
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1624
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2428
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2440
|
||||||
msgid "Pause"
|
msgid "Pause"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1614
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1623
|
||||||
msgid "Paused"
|
msgid "Paused"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/log.js:355
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/log.js:355
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:41
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:43
|
||||||
msgid "Proto"
|
msgid "Proto"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2565
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2577
|
||||||
msgid "Protocol — common values"
|
msgid "Protocol — common values"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2544
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2556
|
||||||
msgid "Quick search"
|
msgid "Quick search"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -492,44 +492,44 @@ msgstr ""
|
|||||||
msgid "Remove filter"
|
msgid "Remove filter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1615
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1624
|
||||||
msgid "Resume"
|
msgid "Resume"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2262
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2274
|
||||||
msgid "Row tint"
|
msgid "Row tint"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2356
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2367
|
||||||
msgid ""
|
msgid ""
|
||||||
"Row tint shows pass/deny row backgrounds when checked. Choose Classic (green/"
|
"Row tint shows pass/deny row backgrounds when checked. Choose Classic (green/"
|
||||||
"red, default) or Accessible (teal/orange). Action text stays colored either "
|
"red, default) or Accessible (teal/orange). Action text stays colored either "
|
||||||
"way."
|
"way."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2412
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2423
|
||||||
msgid ""
|
msgid ""
|
||||||
"Row tint used a local color fallback because the active LuCI theme did not "
|
"Row tint used a local color fallback because the active LuCI theme did not "
|
||||||
"apply pass/deny backgrounds."
|
"apply pass/deny backgrounds."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:36
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:38
|
||||||
msgid "Rule"
|
msgid "Rule"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:725
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:733
|
||||||
msgid "Rule labels incomplete — map truncated"
|
msgid "Rule labels incomplete — map truncated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:728
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:736
|
||||||
msgid "Rule labels unavailable"
|
msgid "Rule labels unavailable"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:727
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:735
|
||||||
msgid "Rule labels unavailable — temp file failed"
|
msgid "Rule labels unavailable — temp file failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:44
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:46
|
||||||
msgid "SPort"
|
msgid "SPort"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -537,49 +537,49 @@ msgstr ""
|
|||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1351
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1360
|
||||||
msgid "Server adaptive protection is disabled."
|
msgid "Server adaptive protection is disabled."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1349
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1358
|
||||||
msgid "Server protection state is unknown."
|
msgid "Server protection state is unknown."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1356
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1365
|
||||||
msgid "Server shedding — at most %d log lines per poll."
|
msgid "Server shedding — at most %d log lines per poll."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1358
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1367
|
||||||
msgid "Server truncated this poll (adaptive cap)."
|
msgid "Server truncated this poll (adaptive cap)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2289
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2301
|
||||||
msgid "Show hostnames"
|
msgid "Show hostnames"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2260
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2272
|
||||||
msgid "Show pass/deny row background colors"
|
msgid "Show pass/deny row background colors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1460
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1469
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2527
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2539
|
||||||
msgid "Show rows"
|
msgid "Show rows"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1417
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1426
|
||||||
msgid "Showing a compact summary of the top of the shown sample."
|
msgid "Showing a compact summary of the top of the shown sample."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2451
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2463
|
||||||
msgid "Simple"
|
msgid "Simple"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/log.js:356
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/log.js:356
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:42
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:44
|
||||||
msgid "Source"
|
msgid "Source"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2594
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2606
|
||||||
msgid "Source IP contains (! to exclude)"
|
msgid "Source IP contains (! to exclude)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -587,53 +587,53 @@ msgstr ""
|
|||||||
msgid "Source port"
|
msgid "Source port"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2599
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2611
|
||||||
msgid "Source port (! to exclude)"
|
msgid "Source port (! to exclude)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1419
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1428
|
||||||
msgid "Summary data is unavailable; show rows to inspect the sample."
|
msgid "Summary data is unavailable; show rows to inspect the sample."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2518
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2530
|
||||||
msgid "Summary mode"
|
msgid "Summary mode"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1421
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1430
|
||||||
msgid "Summary was bounded before all categories could be included."
|
msgid "Summary was bounded before all categories could be included."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2330
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2341
|
||||||
msgid ""
|
msgid ""
|
||||||
"Switching tabs pauses polling; returning performs one catch-up poll. "
|
"Switching tabs pauses polling; returning performs one catch-up poll. "
|
||||||
"Hostnames are off by default because lookups add work."
|
"Hostnames are off by default because lookups add work."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:841
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:849
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:870
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:878
|
||||||
msgid "The firewall did not reload; saved and live logging may differ."
|
msgid "The firewall did not reload; saved and live logging may differ."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2340
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2351
|
||||||
msgid ""
|
msgid ""
|
||||||
"The rate shown for WAN logging is the firewall zone log_limit. OpenWrt "
|
"The rate shown for WAN logging is the firewall zone log_limit. OpenWrt "
|
||||||
"defaults to 10/minute when no explicit limit is configured; fwlive does not "
|
"defaults to 10/minute when no explicit limit is configured; fwlive does not "
|
||||||
"impose this cap."
|
"impose this cap."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2335
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2346
|
||||||
msgid ""
|
msgid ""
|
||||||
"The router log ring may evict older events before fwlive reads them. fwlive "
|
"The router log ring may evict older events before fwlive reads them. fwlive "
|
||||||
"cannot recover evicted entries or change forwarding behavior."
|
"cannot recover evicted entries or change forwarding behavior."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2302
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2313
|
||||||
msgid ""
|
msgid ""
|
||||||
"The table updates automatically when your firewall logs traffic. Use Pause "
|
"The table updates automatically when your firewall logs traffic. Use Pause "
|
||||||
"if it moves too fast."
|
"if it moves too fast."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2415
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2427
|
||||||
msgid "Theme tint fallback"
|
msgid "Theme tint fallback"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -646,19 +646,19 @@ msgid ""
|
|||||||
"This router reported a logging blocker that Live View does not recognize yet."
|
"This router reported a logging blocker that Live View does not recognize yet."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:34
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:36
|
||||||
msgid "Time"
|
msgid "Time"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1426
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1435
|
||||||
msgid "Top drops"
|
msgid "Top drops"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1429
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1438
|
||||||
msgid "Top rules"
|
msgid "Top rules"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1423
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1432
|
||||||
msgid "Top talkers"
|
msgid "Top talkers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -666,7 +666,7 @@ msgstr ""
|
|||||||
msgid "Turn it back off with the WAN logging control on the watch strip."
|
msgid "Turn it back off with the WAN logging control on the watch strip."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:350
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:349
|
||||||
msgid ""
|
msgid ""
|
||||||
"Turns on WAN zone drop/reject logging (same as Network → Firewall → wan → "
|
"Turns on WAN zone drop/reject logging (same as Network → Firewall → wan → "
|
||||||
"Log). Rate-limited by the zone log_limit (OpenWrt default 10/minute). Normal "
|
"Log). Rate-limited by the zone log_limit (OpenWrt default 10/minute). Normal "
|
||||||
@@ -681,32 +681,32 @@ msgstr ""
|
|||||||
msgid "Undo:"
|
msgid "Undo:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2359
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2371
|
||||||
msgid "Use Detail for all columns (flags, length, raw message)."
|
msgid "Use Detail for all columns (flags, length, raw message)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2433
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2445
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2439
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2451
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:873
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:881
|
||||||
msgid "WAN drop/reject logging is off."
|
msgid "WAN drop/reject logging is off."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:317
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:316
|
||||||
msgid ""
|
msgid ""
|
||||||
"WAN drop/reject logging is on. Blocked inbound WAN traffic will show up "
|
"WAN drop/reject logging is on. Blocked inbound WAN traffic will show up "
|
||||||
"here. Normal LAN browsing will not."
|
"here. Normal LAN browsing will not."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:847
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:854
|
||||||
msgid ""
|
msgid ""
|
||||||
"WAN drop/reject logging is on. Blocked inbound traffic should appear here as "
|
"WAN drop/reject logging is on. Blocked inbound traffic should appear here as "
|
||||||
"it happens — not normal LAN browsing."
|
"it happens — not normal LAN browsing."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:849
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:857
|
||||||
msgid "WAN logging is already enabled."
|
msgid "WAN logging is already enabled."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -735,25 +735,25 @@ msgstr ""
|
|||||||
msgid "Waiting for firewall events"
|
msgid "Waiting for firewall events"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1614
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1623
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2403
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2415
|
||||||
msgid "Watching"
|
msgid "Watching"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2493
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2505
|
||||||
msgid "Wrap"
|
msgid "Wrap"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:69
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:71
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2549
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2561
|
||||||
msgid "block"
|
msgid "block"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1171
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1180
|
||||||
msgid "buffer filling"
|
msgid "buffer filling"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1175
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1184
|
||||||
msgid "buffer full"
|
msgid "buffer full"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -765,8 +765,8 @@ msgstr ""
|
|||||||
msgid "does not contain"
|
msgid "does not contain"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:70
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:72
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2550
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2562
|
||||||
msgid "drop"
|
msgid "drop"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -774,16 +774,16 @@ msgstr ""
|
|||||||
msgid "is"
|
msgid "is"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1170
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1179
|
||||||
msgid "loading buffer"
|
msgid "loading buffer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1546
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1555
|
||||||
msgid "loading…"
|
msgid "loading…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1399
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1408
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1408
|
||||||
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1417
|
||||||
msgid "none"
|
msgid "none"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -791,98 +791,98 @@ msgstr ""
|
|||||||
msgid "not"
|
msgid "not"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1757
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1766
|
||||||
msgid "not AH"
|
msgid "not AH"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1756
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1765
|
||||||
msgid "not ESP"
|
msgid "not ESP"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1755
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1764
|
||||||
msgid "not GRE"
|
msgid "not GRE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1752
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1761
|
||||||
msgid "not ICMP"
|
msgid "not ICMP"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1753
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1762
|
||||||
msgid "not ICMPv6"
|
msgid "not ICMPv6"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1754
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1763
|
||||||
msgid "not IGMP"
|
msgid "not IGMP"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1758
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1767
|
||||||
msgid "not SCTP"
|
msgid "not SCTP"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1750
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1759
|
||||||
msgid "not TCP"
|
msgid "not TCP"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1751
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1760
|
||||||
msgid "not UDP"
|
msgid "not UDP"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2555
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2567
|
||||||
msgid "not block"
|
msgid "not block"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2554
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2566
|
||||||
msgid "not drop"
|
msgid "not drop"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2553
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2565
|
||||||
msgid "not pass"
|
msgid "not pass"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2556
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2568
|
||||||
msgid "not reject"
|
msgid "not reject"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2557
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2569
|
||||||
msgid "not unknown"
|
msgid "not unknown"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2572
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2584
|
||||||
msgid "or type…"
|
msgid "or type…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:68
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:70
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2548
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2560
|
||||||
msgid "pass"
|
msgid "pass"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:71
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:73
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2551
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2563
|
||||||
msgid "reject"
|
msgid "reject"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1177
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1186
|
||||||
msgid "render paused (high rate)"
|
msgid "render paused (high rate)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1186
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1195
|
||||||
msgid "resolve paused (load)"
|
msgid "resolve paused (load)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1188
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1197
|
||||||
msgid "scroll frozen — scroll to top to follow live"
|
msgid "scroll frozen — scroll to top to follow live"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1185
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1194
|
||||||
msgid "truncated"
|
msgid "truncated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:60
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:62
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2552
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2564
|
||||||
msgid "unknown"
|
msgid "unknown"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:709
|
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:717
|
||||||
msgid "using fw4"
|
msgid "using fw4"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@@ -72,6 +72,16 @@ map_add() {
|
|||||||
val="$2"
|
val="$2"
|
||||||
[ -n "$key" ] || return 0
|
[ -n "$key" ] || return 0
|
||||||
[ -n "$val" ] || return 0
|
[ -n "$val" ] || return 0
|
||||||
|
# Cheap first-wins for keys that match their escaped form (typical prefixes)
|
||||||
|
# so duplicate fw4 names skip the json_escape fork.
|
||||||
|
case "$key" in
|
||||||
|
*[\"\\*?[]*) ;;
|
||||||
|
*)
|
||||||
|
case "$OUT" in
|
||||||
|
*"\"$key\":"*) return 0 ;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
esc_key=$(printf '%s' "$key" | json_escape)
|
esc_key=$(printf '%s' "$key" | json_escape)
|
||||||
# Global first-wins deduplication: skip if escaped key already present.
|
# Global first-wins deduplication: skip if escaped key already present.
|
||||||
# Uses anchored pattern "\"<key>\":" to avoid substring false positives
|
# Uses anchored pattern "\"<key>\":" to avoid substring false positives
|
||||||
@@ -413,6 +423,31 @@ _fwlive_mktemp() {
|
|||||||
printf '%s' "$_mk_file"
|
printf '%s' "$_mk_file"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_rules_dump=
|
||||||
|
_nft_tsv=
|
||||||
|
_nft_wait=
|
||||||
|
_fwlive_tmp_cleanup() {
|
||||||
|
if [ -n "${_nft_wait:-}" ]; then
|
||||||
|
kill "$_nft_wait" 2>/dev/null || true
|
||||||
|
_nft_wait=
|
||||||
|
fi
|
||||||
|
if [ -n "${_rules_dump:-}" ]; then
|
||||||
|
rm -f "$_rules_dump"
|
||||||
|
_rules_dump=
|
||||||
|
fi
|
||||||
|
if [ -n "${_nft_tsv:-}" ]; then
|
||||||
|
rm -f "$_nft_tsv"
|
||||||
|
_nft_tsv=
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
# Same five traps as fwlive-log-filter.sh. The nft dump waits in the
|
||||||
|
# background so a trapped SIGTERM is not deferred behind setsid.
|
||||||
|
trap '_fwlive_tmp_cleanup' 0
|
||||||
|
trap '_fwlive_tmp_cleanup; exit 129' 1
|
||||||
|
trap '_fwlive_tmp_cleanup; exit 130' 2
|
||||||
|
trap '_fwlive_tmp_cleanup; exit 131' 3
|
||||||
|
trap '_fwlive_tmp_cleanup; exit 143' 15
|
||||||
|
|
||||||
enrich_rules_dump() {
|
enrich_rules_dump() {
|
||||||
_dump_prefix="$1"
|
_dump_prefix="$1"
|
||||||
|
|
||||||
@@ -420,7 +455,13 @@ enrich_rules_dump() {
|
|||||||
if [ -n "$_rules_dump" ]; then
|
if [ -n "$_rules_dump" ]; then
|
||||||
# One dump serves detect + parse. Empty/failed dump is not nft
|
# One dump serves detect + parse. Empty/failed dump is not nft
|
||||||
# (unknown/no_backend, same as a failed detect probe).
|
# (unknown/no_backend, same as a failed detect probe).
|
||||||
if nft_list_ruleset >"$_rules_dump" 2>/dev/null; then
|
# Background + wait: dash defers trapped SIGTERM until a
|
||||||
|
# foreground setsid/timeout child exits; wait is interruptible.
|
||||||
|
# Clear inherited traps so the child's EXIT cannot rm the dump.
|
||||||
|
( trap - 0 1 2 3 15; nft_list_ruleset >"$_rules_dump" 2>/dev/null ) &
|
||||||
|
_nft_wait=$!
|
||||||
|
if wait "$_nft_wait"; then
|
||||||
|
_nft_wait=
|
||||||
backend=nft
|
backend=nft
|
||||||
# Stream awk output to a second temp so a huge dump is
|
# Stream awk output to a second temp so a huge dump is
|
||||||
# not materialized in the rpcd worker's shell heap.
|
# not materialized in the rpcd worker's shell heap.
|
||||||
@@ -438,9 +479,13 @@ enrich_rules_dump() {
|
|||||||
_enrich_error='tsv_failed'
|
_enrich_error='tsv_failed'
|
||||||
fi
|
fi
|
||||||
rm -f "$_nft_tsv"
|
rm -f "$_nft_tsv"
|
||||||
|
_nft_tsv=
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
_nft_wait=
|
||||||
fi
|
fi
|
||||||
rm -f "$_rules_dump"
|
rm -f "$_rules_dump"
|
||||||
|
_rules_dump=
|
||||||
else
|
else
|
||||||
# nft is on PATH (caller checked); skip enrichment without a dump.
|
# nft is on PATH (caller checked); skip enrichment without a dump.
|
||||||
_enrich_error='mktemp_failed'
|
_enrich_error='mktemp_failed'
|
||||||
@@ -851,6 +896,11 @@ resolve_addresses() {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
while IFS= read -r ip; do
|
while IFS= read -r ip; do
|
||||||
|
[ -n "${ip:-}" ] || continue
|
||||||
|
# Producer already validated; skip repeats before they cost a slot.
|
||||||
|
case "$OUT" in
|
||||||
|
*"\"$ip\":"*) continue ;;
|
||||||
|
esac
|
||||||
if [ "$lookups" -ge "$RESOLVE_MAX" ]; then
|
if [ "$lookups" -ge "$RESOLVE_MAX" ]; then
|
||||||
truncated=1
|
truncated=1
|
||||||
break
|
break
|
||||||
@@ -862,10 +912,6 @@ resolve_addresses() {
|
|||||||
truncated=1
|
truncated=1
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
# Missing/empty element: set -u cannot read bare $ip.
|
|
||||||
if ! is_resolvable_address "${ip:-}"; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
lookups=$((lookups + 1))
|
lookups=$((lookups + 1))
|
||||||
# NXDOMAIN / timeout: resolve_hostname returns 1. set -e
|
# NXDOMAIN / timeout: resolve_hostname returns 1. set -e
|
||||||
# cannot apply to this assignment.
|
# cannot apply to this assignment.
|
||||||
|
|||||||
Reference in new issue
Block a user