Skip to content

Commit 4b76942

Browse files
committed
nicer ping peer
1 parent fe7252a commit 4b76942

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed

tailnet/conn.go

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -296,15 +296,11 @@ func NewConn(options *Options) (conn *Conn, err error) {
296296
server.wireguardEngine.SetNetInfoCallback(func(ni *tailcfg.NetInfo) {
297297
server.telemetryStore.setNetInfo(ni)
298298
nodeUp.setNetInfo(ni)
299-
if server.telemetryStore.connectedIP != nil {
300-
_, _, _, _ = server.Ping(ctx, *server.telemetryStore.connectedIP)
301-
}
299+
server.telemetryStore.pingPeer(server)
302300
})
303301
server.wireguardEngine.AddNetworkMapCallback(func(nm *netmap.NetworkMap) {
304302
server.telemetryStore.updateNetworkMap(nm)
305-
if server.telemetryStore.connectedIP != nil {
306-
_, _, _, _ = server.Ping(ctx, *server.telemetryStore.connectedIP)
307-
}
303+
server.telemetryStore.pingPeer(server)
308304
})
309305
go server.watchConnChange()
310306
} else {
@@ -816,8 +812,8 @@ func (c *Conn) watchConnChange() {
816812
}
817813
peer := status.Peer[peers[0]]
818814
// If the connection type has changed, send a telemetry event with the latest ping stats
819-
if c.telemetryStore.changedConntype(peer.Relay) && c.telemetryStore.connectedIP != nil {
820-
_, _, _, _ = c.Ping(c.watchCtx, *c.telemetryStore.connectedIP)
815+
if c.telemetryStore.changedConntype(peer.Relay) {
816+
c.telemetryStore.pingPeer(c)
821817
}
822818
}
823819
}

tailnet/telemetry.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,18 @@ func (b *TelemetryStore) markConnected(ip *netip.Addr, application string) {
8989
b.application = application
9090
}
9191

92+
func (b *TelemetryStore) pingPeer(conn *Conn) {
93+
b.mu.Lock()
94+
defer b.mu.Unlock()
95+
96+
if b.connectedIP == nil {
97+
return
98+
}
99+
go func() {
100+
_, _, _, _ = conn.Ping(conn.watchCtx, *b.connectedIP)
101+
}()
102+
}
103+
92104
func (b *TelemetryStore) changedConntype(relay string) bool {
93105
b.mu.Lock()
94106
defer b.mu.Unlock()

0 commit comments

Comments
 (0)