MCPcopy Create free account
hub / github.com/coder/coder / updateTunnelPeersLocked

Method updateTunnelPeersLocked

tailnet/coordinator.go:355–369  ·  view source on GitHub ↗
(id uuid.UUID, n *proto.Node, k proto.CoordinateResponse_PeerUpdate_Kind, reason string)

Source from the content-addressed store, hash-verified

353}
354
355func (c *core) updateTunnelPeersLocked(id uuid.UUID, n *proto.Node, k proto.CoordinateResponse_PeerUpdate_Kind, reason string) {
356 tp := c.tunnels.findTunnelPeers(id)
357 c.logger.Debug(context.Background(), "got tunnel peers", slog.F("peer_id", id), slog.F("tunnel_peers", tp))
358 for _, otherID := range tp {
359 other, ok := c.peers[otherID]
360 if !ok {
361 continue
362 }
363 err := other.updateMappingLocked(id, n, k, reason)
364 if err != nil {
365 other.logger.Error(context.Background(), "failed to update mapping", slog.Error(err))
366 c.removePeerLocked(other.id, proto.CoordinateResponse_PeerUpdate_DISCONNECTED, "failed update", "failed to update tunnel peer mapping")
367 }
368 }
369}
370
371func (c *core) addTunnelLocked(src *peer, dstID uuid.UUID) error {
372 c.tunnels.add(src.id, dstID)

Callers 2

nodeUpdateLockedMethod · 0.95
removePeerLockedMethod · 0.95

Calls 4

removePeerLockedMethod · 0.95
findTunnelPeersMethod · 0.80
updateMappingLockedMethod · 0.80
ErrorMethod · 0.45

Tested by

no test coverage detected