From b5f99783324bfe7dee7f541f54eae84348d51024 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 10 May 2026 20:21:41 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=A6=84=20Sync=202026-05-10=2020:21:41?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cloudreve/Makefile | 6 +-- hickory-dns/Makefile | 2 +- .../files/etc/hotplug.d/iface/99-hickory-dns | 43 +++++++++++++------ hickory-dns/files/etc/init.d/hickory-dns | 7 ++- hysteria/Makefile | 4 +- ipv6-neigh/Makefile | 2 +- ipv6-neigh/src/main.rs | 25 ++++++++++- naiveproxy/Makefile | 2 +- xray-core/Makefile | 4 +- 9 files changed, 70 insertions(+), 25 deletions(-) diff --git a/cloudreve/Makefile b/cloudreve/Makefile index c7da9617..b510b41e 100644 --- a/cloudreve/Makefile +++ b/cloudreve/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=cloudreve -PKG_VERSION:=4.15.0 -PKG_RELEASE:=5 +PKG_VERSION:=4.16.0 +PKG_RELEASE:=6 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/cloudreve/Cloudreve.git -PKG_SOURCE_VERSION:=34874071319e6d668a170471302fe9d5d22ace17 +PKG_SOURCE_VERSION:=54dc81deefcd799300119d0b9bc19c935a0881b5 PKG_MIRROR_HASH:=skip PKG_LICENSE:=GPL-3.0-only diff --git a/hickory-dns/Makefile b/hickory-dns/Makefile index b28ba066..e7ffae7c 100644 --- a/hickory-dns/Makefile +++ b/hickory-dns/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hickory-dns PKG_VERSION:=0.26.1 -PKG_RELEASE:=22 +PKG_RELEASE:=23 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/hickory-dns/hickory-dns/tar.gz/v$(PKG_VERSION)? diff --git a/hickory-dns/files/etc/hotplug.d/iface/99-hickory-dns b/hickory-dns/files/etc/hotplug.d/iface/99-hickory-dns index b735e7c6..149eeae0 100644 --- a/hickory-dns/files/etc/hotplug.d/iface/99-hickory-dns +++ b/hickory-dns/files/etc/hotplug.d/iface/99-hickory-dns @@ -1,22 +1,39 @@ #!/bin/sh . /lib/functions.sh + IF_TO_WATCH="wan_6" SERVICE="hickory-dns" DELAY=5 +LOCK_DIR="/tmp/hickory-hotplug.lock" +TAG="hickory-hotplug" -## Restart service on ifup or ifupdate for the watched interface -if { [ "$ACTION" = "ifup" ] || [ "$ACTION" = "ifupdate" ]; } && [ "$INTERFACE" = "$IF_TO_WATCH" ]; then - logger -t hickory-hotplug "Interface ${IF_TO_WATCH} ${ACTION} - ${SERVICE} restart in ${DELAY}s" +[ "$INTERFACE" = "$IF_TO_WATCH" ] || exit 0 +[ "$ACTION" = "ifup" ] || exit 0 - ( - sleep ${DELAY} +/etc/init.d/${SERVICE} enabled || { + logger -t "$TAG" "${SERVICE} not enabled, skipping restart" + exit 0 +} - if /etc/init.d/${SERVICE} enabled; then - /etc/init.d/${SERVICE} restart >/dev/null 2>&1 - logger -t hickory-hotplug "${SERVICE} restarted successfully after ${IF_TO_WATCH} ${ACTION}" - else - logger -t hickory-hotplug "${SERVICE} not enabled (skipped)" - fi - ) & -fi \ No newline at end of file +mkdir "$LOCK_DIR" 2>/dev/null || { + logger -t "$TAG" "Restart already pending, skipping" + exit 0 +} + +logger -t "$TAG" "${IF_TO_WATCH} ifup - ${SERVICE} restart in ${DELAY}s" + +( + sleep "$DELAY" + + /etc/init.d/${SERVICE} restart >/dev/null 2>&1 + RET=$? + + if [ "$RET" = "0" ]; then + logger -t "$TAG" "${SERVICE} restarted successfully after ${IF_TO_WATCH} ifup" + else + logger -t "$TAG" "${SERVICE} restart failed after ${IF_TO_WATCH} ifup, exit code ${RET}" + fi + + rmdir "$LOCK_DIR" +) & diff --git a/hickory-dns/files/etc/init.d/hickory-dns b/hickory-dns/files/etc/init.d/hickory-dns index 3a8fba9c..54de4b4c 100755 --- a/hickory-dns/files/etc/init.d/hickory-dns +++ b/hickory-dns/files/etc/init.d/hickory-dns @@ -28,7 +28,12 @@ start_service() { procd_set_param stderr 1 procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}" procd_close_instance hickory-dns - + for i in $(seq 1 10); do + if ss -ltn | grep -q ':53'; then + break + fi + sleep 1 + done procd_open_instance ipv6-neigh procd_set_param command $NEIGH_PROG --private-subnet-v4 -d "[::1]:53" -z lan procd_set_param stdout 1 diff --git a/hysteria/Makefile b/hysteria/Makefile index 0e331c39..e47c3f30 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,8 +5,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=2.8.2 -PKG_RELEASE:=4 +PKG_VERSION:=2.9.0 +PKG_RELEASE:=5 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/app/v$(PKG_VERSION)? diff --git a/ipv6-neigh/Makefile b/ipv6-neigh/Makefile index c522d4fc..0235217c 100644 --- a/ipv6-neigh/Makefile +++ b/ipv6-neigh/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ipv6-neigh PKG_VERSION:=0.1.0 -PKG_RELEASE:=7 +PKG_RELEASE:=8 PKG_BUILD_DEPENDS:=rust/host PKG_BUILD_PARALLEL:=1 diff --git a/ipv6-neigh/src/main.rs b/ipv6-neigh/src/main.rs index 4d452974..c9f22198 100644 --- a/ipv6-neigh/src/main.rs +++ b/ipv6-neigh/src/main.rs @@ -7,7 +7,7 @@ use futures::stream::TryStreamExt; use log::{debug, error, info, warn}; use netlink_packet_core::NetlinkPayload; use netlink_packet_route::RouteNetlinkMessage; -use netlink_packet_route::address::AddressAttribute; +use netlink_packet_route::address::{AddressAttribute, AddressFlags, AddressHeaderFlags, AddressMessage}; use netlink_packet_route::neighbour::NeighbourMessage; use netlink_packet_route::neighbour::{NeighbourAddress, NeighbourAttribute, NeighbourState}; use netlink_packet_route::route::RouteType; @@ -699,6 +699,21 @@ async fn dump_neighbours(handle: Handle, private_subnet_v4: bool, private_subnet Ok(vec) } +/// Check whether an address message is deprecated (preferred lifetime expired). +fn is_addr_deprecated(msg: &AddressMessage) -> bool { + if msg.header.flags.contains(AddressHeaderFlags::Deprecated) { + return true; + } + for attr in &msg.attributes { + match attr { + AddressAttribute::Flags(f) if f.contains(AddressFlags::Deprecated) => return true, + AddressAttribute::CacheInfo(ci) if ci.ifa_preferred == 0 => return true, + _ => {} + } + } + false +} + /// Enumerate non-link-local IPv6 prefixes currently assigned to `iface`. /// Used during startup to filter out neighbour entries from expired/old prefixes. async fn get_active_lan_prefixes(handle: Handle, iface: &str, private_subnet_v6: bool) -> Vec { @@ -712,6 +727,11 @@ async fn get_active_lan_prefixes(handle: Handle, iface: &str, private_subnet_v6: let mut prefixes = Vec::new(); while let Ok(Some(msg)) = addresses.try_next().await { let prefix_len = msg.header.prefix_len; + // Skip deprecated addresses; they are no longer used for new connections + // and should not be treated as active LAN prefixes. + if is_addr_deprecated(&msg) { + continue; + } for attr in &msg.attributes { if let AddressAttribute::Address(IpAddr::V6(addr)) = attr { // Skip link-local @@ -752,6 +772,9 @@ async fn register_router_addresses( let ifindex = link.header.index; let mut addresses = handle.address().get().set_link_index_filter(ifindex).execute(); while let Ok(Some(msg)) = addresses.try_next().await { + if is_addr_deprecated(&msg) { + continue; + } for attr in &msg.attributes { let ip = match attr { AddressAttribute::Address(ip) => ip, diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 63a5c6d3..7f90a756 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy PKG_VERSION:=148.0.7778.96 -PKG_RELEASE:=2 +PKG_RELEASE:=4 ARCH_PREBUILT:=$(ARCH_PACKAGES) diff --git a/xray-core/Makefile b/xray-core/Makefile index f4451763..60562f27 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,8 +1,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core -PKG_VERSION:=26.5.3 -PKG_RELEASE:=9 +PKG_VERSION:=26.5.9 +PKG_RELEASE:=10 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)?