Bound the two tailscale lookups that were missed when the others were

This commit is contained in:
Gmer4Lfe
2026-08-24 18:33:40 -04:00
parent 367d0203b8
commit 9333334b7b
2 changed files with 10 additions and 3 deletions
+4 -1
View File
@@ -544,7 +544,10 @@ function vv_network_stats(): array {
} }
// Tailscale IP — use `tailscale ip` CLI (interface name varies: tailscale0, tailscale1, etc.) // Tailscale IP — use `tailscale ip` CLI (interface name varies: tailscale0, tailscale1, etc.)
$tsIp = trim(shell_exec('tailscale ip -4 2>/dev/null | head -1') ?: ''); // Bounded like every other tailscale lookup in the tree. vv_network_stats() is served by
// api/monitor_fast.php, which the Monitor page polls once a second; an unbounded call here
// makes a slow tailscale silently drop that live cadence to whatever the CLI takes.
$tsIp = trim(shell_exec('timeout 2 tailscale ip -4 2>/dev/null | head -1') ?: '');
return [ return [
'available' => true, 'available' => true,
+6 -2
View File
@@ -910,8 +910,12 @@ resolve_remote_ip() {
local attempts=3 local attempts=3
for ((i=1; i<=attempts; i++)); do for ((i=1; i<=attempts; i++)); do
# Direct lookup — works when MagicDNS short-name resolution is active # Direct lookup — works when MagicDNS short-name resolution is active.
REMOTE_SERVER=$(tailscale ip -4 "$ts_name" 2>/dev/null) # Bounded, because it is not active here: the two hosts sit on separate tailnets, so
# this call cannot succeed and blocks ~5s before giving up, while the status fallback
# below answers in milliseconds. resolve_tailscale_ip() was bounded for this reason;
# this function has the same lookup and was missed.
REMOTE_SERVER=$(timeout 2 tailscale ip -4 "$ts_name" 2>/dev/null)
# Fallback — parse tailscale status for FQDN entries (e.g. hostname.tailXXXX.ts.net) # Fallback — parse tailscale status for FQDN entries (e.g. hostname.tailXXXX.ts.net)
if [[ -z "$REMOTE_SERVER" ]]; then if [[ -z "$REMOTE_SERVER" ]]; then