| 606 | } |
| 607 | |
| 608 | func (c *configMaps) protoNodeToTailcfg(p *proto.Node) (*tailcfg.Node, error) { |
| 609 | node, err := ProtoToNode(p) |
| 610 | if err != nil { |
| 611 | return nil, err |
| 612 | } |
| 613 | return &tailcfg.Node{ |
| 614 | ID: tailcfg.NodeID(p.GetId()), |
| 615 | Created: c.clock.Now(), |
| 616 | Key: node.Key, |
| 617 | DiscoKey: node.DiscoKey, |
| 618 | Addresses: node.Addresses, |
| 619 | AllowedIPs: node.AllowedIPs, |
| 620 | Endpoints: node.Endpoints, |
| 621 | DERP: fmt.Sprintf("%s:%d", tailcfg.DerpMagicIP, node.PreferredDERP), |
| 622 | Hostinfo: (&tailcfg.Hostinfo{}).View(), |
| 623 | }, nil |
| 624 | } |
| 625 | |
| 626 | // nodeAddresses returns the addresses for the peer with the given publicKey, if known. |
| 627 | func (c *configMaps) nodeAddresses(publicKey key.NodePublic) ([]netip.Prefix, bool) { |