|
|
@@ -6,8 +6,11 @@ package controlclient
|
|
|
|
|
|
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
|
|
|
+ }
|
|
|
+}
|