MCPcopy
hub / github.com/tailscale/tailscale / NetmapFromMapResponseForDebug

Function NetmapFromMapResponseForDebug

control/controlclient/direct.go:1406–1427  ·  view source on GitHub ↗

NetmapFromMapResponseForDebug returns a NetworkMap from the given MapResponse. It is intended for debugging only.

(ctx context.Context, pr persist.PersistView, resp *tailcfg.MapResponse)

Source from the content-addressed store, hash-verified

1404// NetmapFromMapResponseForDebug returns a NetworkMap from the given MapResponse.
1405// It is intended for debugging only.
1406func NetmapFromMapResponseForDebug(ctx context.Context, pr persist.PersistView, resp *tailcfg.MapResponse) (*netmap.NetworkMap, error) {
1407 if resp == nil {
1408 return nil, errors.New("nil MapResponse")
1409 }
1410 if resp.Node == nil {
1411 return nil, errors.New("MapResponse lacks Node")
1412 }
1413 if !pr.Valid() {
1414 return nil, errors.New("PersistView invalid")
1415 }
1416
1417 nu := &rememberLastNetmapUpdater{done: make(chan any, 1)}
1418 sess := newMapSession(pr.PrivateNodeKey(), nu, nil)
1419 defer sess.Close()
1420
1421 if err := sess.HandleNonKeepAliveMapResponse(ctx, resp); err != nil {
1422 return nil, fmt.Errorf("HandleNonKeepAliveMapResponse: %w", err)
1423 }
1424
1425 <-nu.done
1426 return sess.netmap(), nil
1427}
1428
1429func (c *Direct) handleDebugMessage(ctx context.Context, debug *tailcfg.Debug) error {
1430 if code := debug.Exit; code != nil {

Callers 2

handleC2NDebugNetMapFunction · 0.92

Calls 8

newMapSessionFunction · 0.85
PrivateNodeKeyMethod · 0.80
netmapMethod · 0.80
ValidMethod · 0.65
CloseMethod · 0.65
ErrorfMethod · 0.65
NewMethod · 0.45

Tested by 1

Used in the wild real call sites across dependent graphs

searching dependent graphs…