From bf4289d9a4079d046b9accb3fa107bc88ce4d257 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 22 Sep 2026 11:01:22 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8F=85=20Sync=202026-09-22=2011:01:22?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- linkease-common-bin/Makefile | 4 ++-- linkease/Makefile | 4 ++-- linkeasefull/Makefile | 4 ++-- luci-app-fwlive/Makefile | 2 +- .../htdocs/luci-static/resources/fwlive/log.js | 9 +++++++-- .../htdocs/luci-static/resources/fwlive/table.js | 2 +- luci-app-fwlive/root/usr/libexec/rpcd/fwlive | 10 +++++++++- 7 files changed, 24 insertions(+), 11 deletions(-) diff --git a/linkease-common-bin/Makefile b/linkease-common-bin/Makefile index a75ad91b7..51dc343fd 100644 --- a/linkease-common-bin/Makefile +++ b/linkease-common-bin/Makefile @@ -12,7 +12,7 @@ PKG_ARCH_LINKEASE:=$(ARCH) PKG_NAME:=linkease-common-bin # use PKG_SOURCE_DATE instead of PKG_VERSION for compitable PKG_SOURCE_DATE:=1.7.5 -PKG_RELEASE:=32 +PKG_RELEASE:=33 ARCH_HEXCODE:= ifeq ($(ARCH),x86_64) @@ -28,7 +28,7 @@ else ifeq ($(ARCH),mipsel) ARCH_HEXCODE=1b0c endif -PKG_SOURCE_VERSION:=4bb94bc5fe4da6d98dfcd730f40fe15f0d71ec4a +PKG_SOURCE_VERSION:=2e0e85147d88db69256be9b38f7b3128d0126877 PKG_SOURCE:=linkease-common-bin-$(PKG_SOURCE_DATE)-linux-$(PKG_ARCH_LINKEASE).tar.gz PKG_SOURCE_URL:=https://github.com/istoreos/istoreos-app-hub/releases/download/linkease-runtime-v$(PKG_SOURCE_DATE)/ PKG_BUILD_DIR:=$(BUILD_DIR)/linkease-common-bin-$(PKG_SOURCE_DATE)-linux-$(PKG_ARCH_LINKEASE) diff --git a/linkease/Makefile b/linkease/Makefile index 9d399f3e3..9f68bf883 100644 --- a/linkease/Makefile +++ b/linkease/Makefile @@ -12,7 +12,7 @@ PKG_ARCH_LINKEASE:=$(ARCH) PKG_NAME:=linkease # use PKG_SOURCE_DATE instead of PKG_VERSION for compitable PKG_SOURCE_DATE:=1.7.5 -PKG_RELEASE:=35 +PKG_RELEASE:=36 ARCH_HEXCODE:= ifeq ($(ARCH),x86_64) @@ -28,7 +28,7 @@ else ifeq ($(ARCH),mipsel) ARCH_HEXCODE=1b0c endif -PKG_SOURCE_VERSION:=4bb94bc5fe4da6d98dfcd730f40fe15f0d71ec4a +PKG_SOURCE_VERSION:=2e0e85147d88db69256be9b38f7b3128d0126877 PKG_SOURCE:=linkease-bin-$(PKG_SOURCE_DATE)-linux-$(PKG_ARCH_LINKEASE).tar.gz PKG_SOURCE_URL:=https://github.com/istoreos/istoreos-app-hub/releases/download/linkease-runtime-v$(PKG_SOURCE_DATE)/ PKG_BUILD_DIR:=$(BUILD_DIR)/linkease-bin-$(PKG_SOURCE_DATE)-linux-$(PKG_ARCH_LINKEASE) diff --git a/linkeasefull/Makefile b/linkeasefull/Makefile index f96ac0213..bed4d5a92 100644 --- a/linkeasefull/Makefile +++ b/linkeasefull/Makefile @@ -11,7 +11,7 @@ PKG_ARCH_LINKEASE:=$(ARCH) PKG_NAME:=linkeasefull # use PKG_SOURCE_DATE instead of PKG_VERSION for compitable PKG_SOURCE_DATE:=3.0.20 -PKG_RELEASE:=34 +PKG_RELEASE:=35 ARCH_HEXCODE:= ifeq ($(ARCH),x86_64) @@ -24,7 +24,7 @@ LINKEASE_RUNTIME_ARCH:=arm64 PKG_HASH:=skip endif -PKG_SOURCE_VERSION:=4bb94bc5fe4da6d98dfcd730f40fe15f0d71ec4a +PKG_SOURCE_VERSION:=2e0e85147d88db69256be9b38f7b3128d0126877 PKG_SOURCE:=linkease-runtime-$(PKG_SOURCE_DATE)-linux-$(LINKEASE_RUNTIME_ARCH).tar.gz PKG_SOURCE_URL:=https://github.com/istoreos/istoreos-app-hub/releases/download/linkeasefull-runtime-v$(PKG_SOURCE_DATE)/ PKG_BUILD_DIR:=$(BUILD_DIR)/linkease-runtime-$(PKG_SOURCE_DATE)-linux-$(LINKEASE_RUNTIME_ARCH) diff --git a/luci-app-fwlive/Makefile b/luci-app-fwlive/Makefile index 4dd25bb77..a8097651e 100644 --- a/luci-app-fwlive/Makefile +++ b/luci-app-fwlive/Makefile @@ -12,7 +12,7 @@ LUCI_DEPENDS:=+luci-base +logd +jsonfilter LUCI_PKGARCH:=all PKG_VERSION:=0.1.45 -PKG_RELEASE:=29 +PKG_RELEASE:=30 # Reproducible build: honor SOURCE_DATE_EPOCH from the build environment (set by docker-sdk.sh / CI). ifdef SOURCE_DATE_EPOCH diff --git a/luci-app-fwlive/htdocs/luci-static/resources/fwlive/log.js b/luci-app-fwlive/htdocs/luci-static/resources/fwlive/log.js index a72080d0c..2e3d5974e 100644 --- a/luci-app-fwlive/htdocs/luci-static/resources/fwlive/log.js +++ b/luci-app-fwlive/htdocs/luci-static/resources/fwlive/log.js @@ -77,6 +77,7 @@ return baseclass.extend({ FIREWALL_HINT: /(^|[^A-Za-z0-9_])(fw4|nft|iptables|kernel|firewall)([^A-Za-z0-9_]|$)/i, ACTION_RE: /(^|[^A-Za-z0-9_])(ACCEPT|ALLOW|PASS|DROP|REJECT|DENY|BLOCK)([^A-Za-z0-9_]|$)/i, DENY_ACTION: /(^|[^A-Za-z0-9_])(DROP|REJECT|DENY|BLOCK)([^A-Za-z0-9_]|$)/i, + MAX_DATE_SECONDS: 8640000000000, normalizeNetfilterMessage: function (message) { return (message || '').replace(this.NETFILTER_KV_GLUE, '$1 '); @@ -233,13 +234,17 @@ return baseclass.extend({ if (typeof entry.time === 'string' && /^\d{4}-\d{2}-\d{2}[T ]/.test(entry.time)) { const ms = new Date(entry.time).getTime(); - if (isFinite(ms)) return Math.floor(ms / 1000); + if (isFinite(ms)) { + const unix = Math.floor(ms / 1000); + return Math.abs(unix) <= this.MAX_DATE_SECONDS ? unix : null; + } } const n = Number(entry.time); if (!isFinite(n)) return null; - return n > 1e12 ? Math.floor(n / 1000) : Math.floor(n); + const unix = Math.abs(n) > 1e12 ? Math.floor(n / 1000) : Math.floor(n); + return Math.abs(unix) <= this.MAX_DATE_SECONDS ? unix : null; }, formatTimestampDisplay: function (entry) { diff --git a/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js b/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js index 6e705c717..b16b1d738 100644 --- a/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js +++ b/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js @@ -151,7 +151,7 @@ function buildColumnCell(col, row, state, callbacks) { ]); case 'iface': return E('td', { 'class': columnCellClass(col) }, [ - links.ifaceLink(row.interface_in, onFilterClick) + links.ifaceLink(row.interface, onFilterClick) ]); case 'iface_in': case 'iface_out': diff --git a/luci-app-fwlive/root/usr/libexec/rpcd/fwlive b/luci-app-fwlive/root/usr/libexec/rpcd/fwlive index 8e461c819..03aec944f 100755 --- a/luci-app-fwlive/root/usr/libexec/rpcd/fwlive +++ b/luci-app-fwlive/root/usr/libexec/rpcd/fwlive @@ -88,7 +88,15 @@ map_add() { uci_rule_names() { # uci missing / empty firewall config is "no names", not fatal. # pipefail + set -e cannot apply to this pipeline. - uci -q show firewall 2>/dev/null | sed -n "s/^firewall\.@rule\[[0-9]*\]\.name='\(.*\)'$/\1/p" || true + { + uci -q show firewall 2>/dev/null | + sed -n "s/^firewall\.@rule\[[0-9]*\]\.name='\(.*\)'$/\1/p" || true + uci -q show firewall 2>/dev/null | + sed -n 's/^firewall\.\([A-Za-z0-9_-]*\)=rule$/\1/p' | + while IFS= read -r section; do + uci -q get "firewall.${section}.name" 2>/dev/null || true + done || true + } } is_uci_style_name() {