Files
NeoTachyon/tachyon/files/usr/lib/providers/wdtt/common.uc
T
Dushnilin 26431f50d3 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
2026-09-11 18:04:03 +03:00

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 };