update 2026-09-05 22:43:26
marry-jell / merge (push) Canceled after 0s

This commit is contained in:
action committed 2026-09-05 22:43:26 +08:00
1 parent ccd677de3a
commit 825070ba95
2037 files changed
+1694705 -12285

No files matched your search

+27
View File
@@ -0,0 +1,27 @@
#!/bin/sh
daed_cleanup_runtime() {
local pid
for pid in $(ip netns pids daens 2>/dev/null); do
kill "$pid" 2>/dev/null
done
if [ -n "$(ip netns pids daens 2>/dev/null)" ]; then
sleep 1
for pid in $(ip netns pids daens 2>/dev/null); do
kill -9 "$pid" 2>/dev/null
done
fi
if ! ip netns del daens 2>/dev/null; then
umount -l /run/netns/daens 2>/dev/null
rm -f /run/netns/daens
fi
ip link del dae0 2>/dev/null || true
[ ! -e /run/netns/daens ] || return 1
! ip netns list 2>/dev/null | awk '$1 == "daens" { found=1 } END { exit !found }' || return 1
! ip link show dae0 >/dev/null 2>&1 || return 1
}
+29
View File
@@ -0,0 +1,29 @@
#!/bin/sh
. /usr/share/daed/cleanup.sh
if ! daed_cleanup_runtime; then
echo "daed: stale network state could not be removed" >&2
exit 1
fi
# Keep daed as a child so a panic or unexpected exit is followed by an
# immediate teardown of all kernel/runtime state before procd can respawn us.
child_pid=
cleanup_child() {
[ -n "$child_pid" ] && kill "$child_pid" 2>/dev/null
}
trap cleanup_child TERM INT
/usr/bin/daed "$@" &
child_pid=$!
wait "$child_pid"
status=$?
child_pid=
trap - TERM INT
if ! daed_cleanup_runtime; then
echo "daed: runtime cleanup after exit failed" >&2
status=1
fi
exit "$status"
+3 -1
View File
@@ -4,4 +4,6 @@ config daed 'config'
option listen_addr '0.0.0.0:2023'
option log_maxbackups '1'
option log_maxsize '5'
option subscribe_auto_update '0'
option subscribe_update_cycle 'daily'
option subscribe_update_hour '4'
Executable → Regular
+17 -14
View File
@@ -1,20 +1,14 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2023 Tianling Shen <cnsztl@immortalwrt.org>
USE_PROCD=1
START=99
CONF="daed"
PROG="/usr/bin/daed"
PROG="/usr/bin/daed-guard"
LOG="/var/log/daed/daed.log"
cleanup_netns() {
if [ -e "/run/netns/daens" ]; then
logger -t daed "Cleaning up residual netns 'daens'..."
ip netns del daens 2>/dev/null
rm -f /run/netns/daens 2>/dev/null
fi
}
. /usr/share/daed/cleanup.sh
start_service() {
config_load "$CONF"
@@ -23,14 +17,13 @@ start_service() {
config_get_bool enabled "config" "enabled" "0"
[ "$enabled" -eq "1" ] || return 1
cleanup_netns
local listen_addr log_maxbackups log_maxsize
config_get listen_addr "config" "listen_addr" "0.0.0.0:2023"
config_get log_maxbackups "config" "log_maxbackups" "1"
config_get log_maxsize "config" "log_maxsize" "5"
procd_open_instance "$CONF"
procd_set_param env DAE_LOCATION_ASSET="/usr/share/v2ray" TZ="$(uci -q get system.@system[0].zonename)"
procd_set_param command "$PROG" run
procd_append_param command --config "/etc/daed/"
procd_append_param command --listen "$listen_addr"
@@ -40,15 +33,25 @@ start_service() {
procd_set_param limits core="unlimited"
procd_set_param limits nofile="1000000 1000000"
procd_set_param respawn
# Avoid an endless crash/respawn loop which can repeatedly reattach dae's
# data-plane hooks and make the router management plane unreachable.
procd_set_param respawn 3600 5 5
# procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
}
stop_service() {
procd_kill "$CONF" ""
cleanup_netns
rm -f "$LOG"
daed_cleanup_runtime
}
restart() {
stop
sleep 1
daed_cleanup_runtime
start
}
service_triggers() {
+1
View File
@@ -0,0 +1 @@
/etc/daed/wing.db-wal