feat: per-section MAC/DNS exclusions, boot latency sweep, WDTT/OlcRTC providers, DNS hijack socket collision fix
Features: - Per-Section MAC Exclusions: nft, generator_routes, section.js, i18n - Per-Section Routed DNS: connections, generator_routes, nft, validator, types.ts, section.js, state.uc, reload.uc - Boot Latency Sweep: ui.uc latency boot sweep with fixture dispatchers - WDTT provider: full backend (common, validator, runtime), sing-box outbound, diagnostics, component install, updater, i18n, section.js UI - OlcRTC provider: full backend (common, validator, runtime), sing-box outbound, diagnostics, component install, updater, i18n, section.js UI - WireGuard-over-TURN tunnel (WDTT) and TCP-over-WebRTC tunnel (OlcRTC) as sidecar processes with local SOCKS5, routed through sing-box outbound Bug fixes: - route.uc: restrict hijack-dns to local DNS inbounds only (dns-in, source-dns-in, dns-health-*) — fixes socket collision between sing-box and dnsmasq on port 53 via SO_REUSEADDR transparent write-back sockets - runtime.uc: add Port 53 socket collision diagnostic with auto-fix (sing-box restart to clear parasitic UNCONN sockets with Recv-Q) - runtime.uc: add dnsmasq dns_redirect check with auto-fix — disables firewall4 DNAT that causes TProxy to rewrite destination to router :53 - failover.uc: add wdtt/olcrtc to failover candidate actions - telegram.uc: show WDTT/OlcRTC installed status in /info Tests: 135/155 shell + 591/591 frontend
This commit is contained in:
@@ -631,7 +631,7 @@ function normalize_component_name(component) {
|
||||
function valid_component_name(component) {
|
||||
component = normalize_component_name(component);
|
||||
return component == "tachyon" || component == "sing_box" || component == "zapret" ||
|
||||
component == "zapret2" || component == "byedpi" || component == "tailscale";
|
||||
component == "zapret2" || component == "byedpi" || component == "wdtt" || component == "olcrtc" || component == "tailscale";
|
||||
}
|
||||
|
||||
function settings_component_auto_update_enabled(settings) {
|
||||
@@ -1604,7 +1604,7 @@ function component_update_check_cache() {
|
||||
let results = [];
|
||||
|
||||
if (enabled) {
|
||||
for (let component in [ "tachyon", "sing_box", "zapret", "zapret2", "byedpi" ]) {
|
||||
for (let component in [ "tachyon", "sing_box", "zapret", "zapret2", "byedpi", "wdtt", "olcrtc" ]) {
|
||||
let value = read_json_file(component_update_check_cache_path(component));
|
||||
if (component_update_check_result_cacheable(value))
|
||||
push(results, value);
|
||||
@@ -2030,6 +2030,10 @@ function automatic_component_check_names() {
|
||||
push(result, "zapret2");
|
||||
if (module_success([ LIB_DIR + "/providers/byedpi/runtime.uc", "installed" ]))
|
||||
push(result, "byedpi");
|
||||
if (module_success([ LIB_DIR + "/providers/wdtt/runtime.uc", "installed" ]))
|
||||
push(result, "wdtt");
|
||||
if (module_success([ LIB_DIR + "/providers/olcrtc/runtime.uc", "installed" ]))
|
||||
push(result, "olcrtc");
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user