hostinfo, ipnlocal: add optional os-specific callback for querying the hostname (#15647)

updates tailscale/tailscale#13476

On darwin, os.Hostname is no longer reliable when called
from a sandboxed process.  To fix this, we will allow clients
to set an optional callback to query the hostname via an
alternative native API.

We will leave the default implementation as os.Hostname since
this works perfectly well for almost everything besides sandboxed
darwin clients.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
This commit is contained in:
Jonathan Nobels
2025-04-14 15:02:32 -04:00
committed by GitHub
parent 62182fc37d
commit d6fd865d41
3 changed files with 49 additions and 2 deletions

View File

@@ -1245,7 +1245,7 @@ func (b *LocalBackend) UpdateStatus(sb *ipnstate.StatusBuilder) {
}
} else {
ss.HostName, _ = os.Hostname()
ss.HostName, _ = hostinfo.Hostname()
}
for _, pln := range b.peerAPIListeners {
ss.PeerAPIURL = append(ss.PeerAPIURL, pln.urlStr)