mirror of
https://github.com/tailscale/tailscale.git
synced 2025-10-24 09:39:39 +00:00
cmd/tailscaled, wgengine, ipn: add /debug/ipn handler with world state
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
committed by
Brad Fitzpatrick
parent
dbca186a64
commit
322499473e
@@ -33,6 +33,7 @@ import (
|
||||
"tailscale.com/derp"
|
||||
"tailscale.com/derp/derphttp"
|
||||
"tailscale.com/derp/derpmap"
|
||||
"tailscale.com/ipn/ipnstate"
|
||||
"tailscale.com/net/dnscache"
|
||||
"tailscale.com/net/interfaces"
|
||||
"tailscale.com/netcheck"
|
||||
@@ -1898,3 +1899,37 @@ func sbPrintAddr(sb *strings.Builder, a net.UDPAddr) {
|
||||
}
|
||||
fmt.Fprintf(sb, ":%d", a.Port)
|
||||
}
|
||||
|
||||
func (c *Conn) UpdateStatus(sb *ipnstate.StatusBuilder) {
|
||||
c.mu.Lock()
|
||||
defer c.mu.Unlock()
|
||||
|
||||
for k, as := range c.addrsByKey {
|
||||
ps := &ipnstate.PeerStatus{
|
||||
InMagicSock: true,
|
||||
}
|
||||
for i, ua := range as.addrs {
|
||||
uaStr := udpAddrDebugString(ua)
|
||||
ps.Addrs = append(ps.Addrs, uaStr)
|
||||
if as.curAddr == i {
|
||||
ps.CurAddr = uaStr
|
||||
}
|
||||
}
|
||||
if as.roamAddr != nil {
|
||||
ps.CurAddr = udpAddrDebugString(*as.roamAddr)
|
||||
}
|
||||
sb.AddPeer(k, ps)
|
||||
}
|
||||
|
||||
c.foreachActiveDerpSortedLocked(func(node int, ad activeDerp) {
|
||||
// TODO(bradfitz): add to ipnstate.StatusBuilder
|
||||
//f("<li><b>derp-%v</b>: cr%v,wr%v</li>", node, simpleDur(now.Sub(ad.createTime)), simpleDur(now.Sub(*ad.lastWrite)))
|
||||
})
|
||||
}
|
||||
|
||||
func udpAddrDebugString(ua net.UDPAddr) string {
|
||||
if ua.IP.Equal(derpMagicIP) {
|
||||
return fmt.Sprintf("derp-%d", ua.Port)
|
||||
}
|
||||
return ua.String()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user