control/controlclient: add debug knob to force node to only IPv6 self addr
Updates
import (
"log"
+ "os"
"sort"
+ "strconv"
+ "inet.af/netaddr"
"tailscale.com/tailcfg"
"tailscale.com/types/logger"
"tailscale.com/types/netmap"
@@ -124,7 +127,7 @@ func (ms *mapSession) netmapForResponse(resp *tailcfg.MapResponse) *netmap.Netwo
nm.SelfNode = node
nm.Expiry = node.KeyExpiry
nm.Name = node.Name
- nm.Addresses = node.Addresses
+ nm.Addresses = filterSelfAddresses(node.Addresses)
nm.User = node.User
nm.Hostinfo = node.Hostinfo
if node.MachineAuthorized {
@@ -280,3 +283,19 @@ func cloneNodes(v1 []*tailcfg.Node) []*tailcfg.Node {
}
return v2
}
+
+var debugSelfIPv6Only, _ = strconv.ParseBool(os.Getenv("TS_DEBUG_SELF_V6_ONLY"))
+
+func filterSelfAddresses(in []netaddr.IPPrefix) (ret []netaddr.IPPrefix) {
+ switch {
+ default:
+ return in
+ case debugSelfIPv6Only:
+ for _, a := range in {
+ if a.IP().Is6() {
+ ret = append(ret, a)
+ }
+ }
+ return ret
+ }
+}
