diff --git a/internal/domain/machine.go b/internal/domain/machine.go index 32720cb..1cede34 100644 --- a/internal/domain/machine.go +++ b/internal/domain/machine.go @@ -471,14 +471,14 @@ func (r *repository) ListMachineByTailnet(ctx context.Context, tailnetID uint64) return machines, nil } -func (r *repository) ListMachinePeers(ctx context.Context, tailnetID uint64, key string) (Machines, error) { - var machines = []Machine{} +func (r *repository) ListMachinePeers(ctx context.Context, tailnetID uint64, machineID uint64) (Machines, error) { + var machines []Machine tx := r.withContext(ctx). Preload("Tailnet"). Joins("User"). Joins("User.Account"). - Where("machines.tailnet_id = ? AND machines.machine_key <> ?", tailnetID, key). + Where("machines.tailnet_id = ? AND machines.id <> ?", tailnetID, machineID). Order("machines.id asc"). Find(&machines) diff --git a/internal/domain/repository.go b/internal/domain/repository.go index 72f8ef5..f6e61c5 100644 --- a/internal/domain/repository.go +++ b/internal/domain/repository.go @@ -67,7 +67,7 @@ type Repository interface { CountMachineByTailnet(ctx context.Context, tailnetID uint64) (int64, error) DeleteMachineByTailnet(ctx context.Context, tailnetID uint64) error DeleteMachineByUser(ctx context.Context, userID uint64) error - ListMachinePeers(ctx context.Context, tailnetID uint64, key string) (Machines, error) + ListMachinePeers(ctx context.Context, tailnetID uint64, machineID uint64) (Machines, error) ListInactiveEphemeralMachines(ctx context.Context, checkpoint time.Time) (Machines, error) SetMachineLastSeen(ctx context.Context, machineID uint64) error diff --git a/internal/mapping/poll_net_mapper.go b/internal/mapping/poll_net_mapper.go index 2e0648a..fb0237e 100644 --- a/internal/mapping/poll_net_mapper.go +++ b/internal/mapping/poll_net_mapper.go @@ -81,7 +81,7 @@ func (h *PollNetMapper) CreateMapResponse(ctx context.Context, delta bool) (*Map syncedPeerIDs := map[uint64]bool{} if !h.req.OmitPeers { - candidatePeers, err := h.repository.ListMachinePeers(ctx, m.TailnetID, m.MachineKey) + candidatePeers, err := h.repository.ListMachinePeers(ctx, m.TailnetID, m.ID) if err != nil { return nil, err } diff --git a/tests/switch_test.go b/tests/switch_test.go index 9b2042b..49b5ef1 100644 --- a/tests/switch_test.go +++ b/tests/switch_test.go @@ -34,6 +34,7 @@ func TestSwitchAccounts(t *testing.T) { require.NoError(t, node.WaitFor(tsn.Connected())) require.NoError(t, node.Check(tsn.HasUser("jane@localtest.me"))) require.NoError(t, node.Check(tsn.HasName("switch-1"))) + require.NoError(t, node.Check(tsn.PeerCount(1))) machines := s.ListMachines(tailnet.Id) require.Equal(t, 2, len(machines))