wgengine/magicsock: extract IMDS utilities into a standalone package (#18334)

Moves magicksock.cloudInfo into util/cloudinfo with minimal changes.

Updates #17796

Change-Id: I83f32473b9180074d5cdbf00fa31e5b3f579f189

Signed-off-by: Alex Valiushko <alexvaliushko@tailscale.com>
This commit is contained in:
Alex Valiushko
2026-01-06 21:58:52 -08:00
committed by GitHub
parent a662c541ab
commit 4c3cf8bb11
11 changed files with 50 additions and 35 deletions
+3 -2
View File
@@ -60,6 +60,7 @@ import (
"tailscale.com/types/nettype"
"tailscale.com/types/views"
"tailscale.com/util/clientmetric"
"tailscale.com/util/cloudinfo"
"tailscale.com/util/eventbus"
"tailscale.com/util/mak"
"tailscale.com/util/ringlog"
@@ -213,7 +214,7 @@ type Conn struct {
bind *connBind
// cloudInfo is used to query cloud metadata services.
cloudInfo *cloudInfo
cloudInfo *cloudinfo.CloudInfo
// ============================================================
// Fields that must be accessed via atomic load/stores.
@@ -597,7 +598,7 @@ func newConn(logf logger.Logf) *Conn {
peerLastDerp: make(map[key.NodePublic]int),
peerMap: newPeerMap(),
discoInfo: make(map[key.DiscoPublic]*discoInfo),
cloudInfo: newCloudInfo(logf),
cloudInfo: cloudinfo.New(logf),
}
c.discoAtomic.Set(discoPrivate)
c.bind = &connBind{Conn: c, closed: true}