From 78627ce7c2ebc69838bfd39cf30910b533caf331 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 13 Jan 2026 05:21:59 +0000 Subject: [PATCH] fix: tighten custom bind probing (#740) (thanks @jeffersonwarrior) --- CHANGELOG.md | 1 + src/cli/daemon-cli.ts | 5 +---- src/commands/configure.ts | 4 +++- src/wizard/onboarding.ts | 4 +++- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab4e34a50..edb9c220c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ ### Changes - Cron: accept ISO timestamps for one-shot schedules (UTC) and allow optional delete-after-run; wired into CLI + macOS editor. +- Gateway: add Tailscale binary discovery, custom bind mode, and probe auth retry for password changes. (#740 — thanks @jeffersonwarrior) ## 2026.1.12-4 diff --git a/src/cli/daemon-cli.ts b/src/cli/daemon-cli.ts index e8bc3dbb6..bb9edeb6d 100644 --- a/src/cli/daemon-cli.ts +++ b/src/cli/daemon-cli.ts @@ -436,10 +436,7 @@ async function gatherDaemonStatus(opts: { | "loopback" | "custom"; const customBindHost = daemonCfg.gateway?.customBindHost; - const bindHost = await resolveGatewayBindHost( - bindMode, - customBindHost, - ); + const bindHost = await resolveGatewayBindHost(bindMode, customBindHost); const tailnetIPv4 = pickPrimaryTailnetIPv4(); const probeHost = pickProbeHostForBind(bindMode, tailnetIPv4, customBindHost); const probeUrlOverride = diff --git a/src/commands/configure.ts b/src/commands/configure.ts index 9d6af64cd..7f608e7d2 100644 --- a/src/commands/configure.ts +++ b/src/commands/configure.ts @@ -263,7 +263,9 @@ async function promptGatewayConfig( if ( parts.every((part) => { const n = parseInt(part, 10); - return !Number.isNaN(n) && n >= 0 && n <= 255 && part === String(n); + return ( + !Number.isNaN(n) && n >= 0 && n <= 255 && part === String(n) + ); }) ) return undefined; diff --git a/src/wizard/onboarding.ts b/src/wizard/onboarding.ts index f0b5b6af2..6b730b5f6 100644 --- a/src/wizard/onboarding.ts +++ b/src/wizard/onboarding.ts @@ -426,7 +426,9 @@ export async function runOnboardingWizard( if ( parts.every((part) => { const n = parseInt(part, 10); - return !Number.isNaN(n) && n >= 0 && n <= 255 && part === String(n); + return ( + !Number.isNaN(n) && n >= 0 && n <= 255 && part === String(n) + ); }) ) return undefined;