- wget: remove -t flag incompatible with BusyBox 25.12+, add curl-first fallback in download_to_file() with wget as fallback - startup/reload speedup (5 improvements): - cut sing-box verification timeout from 45 iterations to 15 - remove redundant second stability wait for sing-box process - batch requirement check + runtime validation into single ucode fork - replace dnsmasq full restart with procd reload (config-conditional bounce) - move telegram and watchdog runtime start to background - telegram: fix "API failure" spam - empty result[] from getUpdates is now treated as a successful idle poll, not an error that triggers backoff - watchdog SmartDetect: extract domain from proxy and VPN URLs for DNS health check, use real domains (google.com/example.com) instead of provider-specific endpoints that trigger false alerts - tests: new invariants for wget -t prohibition, telegram empty-result handling, DNS apply reload-vs-restart, and combined validation mode ownership
24 lines
933 B
Bash
24 lines
933 B
Bash
#!/usr/bin/env bash
|
|
set -eo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
|
|
fail() {
|
|
printf 'FAIL: %s\n' "$1" >&2
|
|
exit 1
|
|
}
|
|
|
|
# BusyBox wget in OpenWrt 25.12+ no longer supports -t (retries). Tachyon
|
|
# handles retries explicitly in a while loop, so the flag is unnecessary and
|
|
# breaks downloads on recent OpenWrt releases.
|
|
if grep -rn --fixed-strings 'wget' "$ROOT_DIR/tachyon/files" | grep -E -- '(^|[^-a-z])(-t[^a-z]|-t")' >/dev/null 2>&1; then
|
|
grep -rn --fixed-strings 'wget' "$ROOT_DIR/tachyon/files" | grep -E -- '(^|[^-a-z])(-t[^a-z]|-t")' >&2
|
|
fail "wget -t is incompatible with OpenWrt 25.12+ BusyBox; use explicit retry loops instead"
|
|
fi
|
|
|
|
# NOTE(2026-08-07): download_to_file() in components/updates.uc was the only
|
|
# call site that carried -t. It was removed and curl-first fallback was added.
|
|
# This invariant protects against future regressions.
|
|
|
|
printf 'wget flag hardening checks passed\n'
|