From 387a98fe2878cd2fa8640cf535ee955d03767869 Mon Sep 17 00:00:00 2001 From: Rhea Ghosh Date: Fri, 27 Oct 2023 16:35:18 -0500 Subject: [PATCH] ipn/ipnlocal: exclude tvOS devices from taildrop file targets (#10002) --- ipn/ipnlocal/local.go | 3 +++ ipn/ipnlocal/local_test.go | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/ipn/ipnlocal/local.go b/ipn/ipnlocal/local.go index d9a0f3a78..8338c7f6b 100644 --- a/ipn/ipnlocal/local.go +++ b/ipn/ipnlocal/local.go @@ -4605,6 +4605,9 @@ func (b *LocalBackend) FileTargets() ([]*apitype.FileTarget, error) { if !b.peerIsTaildropTargetLocked(p) { continue } + if p.Hostinfo().OS() == "tvOS" { + continue + } peerAPI := peerAPIBase(b.netMap, p) if peerAPI == "" { continue diff --git a/ipn/ipnlocal/local_test.go b/ipn/ipnlocal/local_test.go index 2bb037a30..35007cf2b 100644 --- a/ipn/ipnlocal/local_test.go +++ b/ipn/ipnlocal/local_test.go @@ -29,6 +29,7 @@ import ( "tailscale.com/types/netmap" "tailscale.com/types/ptr" "tailscale.com/util/dnsname" + "tailscale.com/util/mak" "tailscale.com/util/set" "tailscale.com/wgengine" "tailscale.com/wgengine/filter" @@ -468,6 +469,24 @@ func TestFileTargets(t *testing.T) { if len(got) != 0 { t.Fatalf("unexpected %d peers", len(got)) } + + var peerMap map[tailcfg.NodeID]tailcfg.NodeView + mak.NonNil(&peerMap) + var nodeID tailcfg.NodeID + nodeID = 1234 + peer := &tailcfg.Node{ + ID: 1234, + Hostinfo: (&tailcfg.Hostinfo{OS: "tvOS"}).View(), + } + peerMap[nodeID] = peer.View() + b.peers = peerMap + got, err = b.FileTargets() + if err != nil { + t.Fatal(err) + } + if len(got) != 0 { + t.Fatalf("unexpected %d peers", len(got)) + } // (other cases handled by TestPeerAPIBase above) }