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
42 lines
1.5 KiB
Ucode
42 lines
1.5 KiB
Ucode
let constants = require("core.constants");
|
|
|
|
function config(ctx) {
|
|
let env_get = function(key, fallback) {
|
|
let val = getenv(key);
|
|
return val != null ? val : fallback;
|
|
};
|
|
|
|
return {
|
|
kind: "wdtt",
|
|
action: "wdtt",
|
|
config_path: env_get("TACHYON_WDTT_CONFIG", "/etc/config/wdtt"),
|
|
qwdtt_config_path: env_get("TACHYON_QWDTT_CONFIG", "/etc/qwdtt/config.json"),
|
|
service_init: env_get("TACHYON_WDTT_SERVICE_INIT", "/etc/init.d/wdtt-client"),
|
|
qwdtt_service_init: env_get("TACHYON_QWDTT_SERVICE_INIT", "/etc/init.d/qwdtt"),
|
|
binary: env_get("TACHYON_QWDTT_BIN", "/usr/bin/qwdtt-client"),
|
|
genlists_bin: env_get("TACHYON_WDTT_GENLISTS_BIN", "/usr/sbin/wdtt-genlists"),
|
|
resolve_bin: env_get("TACHYON_WDTT_RESOLVE_BIN", "/usr/sbin/wdtt-resolve"),
|
|
hashes_dir: env_get("TACHYON_WDTT_HASHES_DIR", "/etc/wdtt"),
|
|
captcha_token_default: "/var/run/qwdtt/captcha.token",
|
|
default_peer: "YOUR_SERVER:56000",
|
|
default_workers_qwdtt: "9",
|
|
default_workers_wdtt: "36",
|
|
default_max_hashes: "4",
|
|
default_mode: "selective",
|
|
default_mtu: "1280",
|
|
default_refresh: "15m",
|
|
default_socks_port_base: 1080,
|
|
package_name: "wdtt",
|
|
runtime_path: ctx.lib_dir + "/providers/wdtt/runtime.uc",
|
|
config_name: "tachyon",
|
|
status_label: "wdtt",
|
|
check_prefix: "wdtt"
|
|
};
|
|
}
|
|
|
|
function validator() {
|
|
return require("providers.wdtt.validator");
|
|
}
|
|
|
|
return { config, validator };
|