control/controlclient: add detail to verbose log about route skips
@@ -312,12 +312,14 @@ func (nm *NetworkMap) WGCfg(logf logger.Logf, flags WGConfigFlags) (*wgcfg.Confi
for _, allowedIP := range peer.AllowedIPs {
if allowedIP.Bits == 0 {
if (flags & AllowDefaultRoute) == 0 {
- logf("[v1] wgcfg: %v skipping default route", peer.Key.ShortString())
+ logf("[v1] wgcfg: not accepting default route from %q (%v)",
+ nodeDebugName(peer), peer.Key.ShortString())
continue
}
} else if cidrIsSubnet(peer, allowedIP) {
if (flags & AllowSubnetRoutes) == 0 {
- logf("[v1] wgcfg: %v skipping subnet route", peer.Key.ShortString())
+ logf("[v1] wgcfg: not accepting subnet route %v from %q (%v)",
+ allowedIP, nodeDebugName(peer), peer.Key.ShortString())
continue
}
}
@@ -328,6 +330,20 @@ func (nm *NetworkMap) WGCfg(logf logger.Logf, flags WGConfigFlags) (*wgcfg.Confi
return cfg, nil
}
+func nodeDebugName(n *tailcfg.Node) string {
+ name := n.Name
+ if name == "" {
+ name = n.Hostinfo.Hostname
+ }
+ if i := strings.Index(name, "."); i != -1 {
+ name = name[:i]
+ }
+ if name == "" && len(n.Addresses) != 0 {
+ return n.Addresses[0].String()
+ }
+ return name
+}
+
// cidrIsSubnet reports whether cidr is a non-default-route subnet
// exported by node that is not one of its own self addresses.
func cidrIsSubnet(node *tailcfg.Node, cidr netaddr.IPPrefix) bool {
