impl-node: remove the node from the target peers

When we destroy a node, we need to remove the node as a current
driver peer.

Not doing this has 2 problems:
- remote drivers still trigger our node
- the client-node does not clean up the memid for the activation and
  we might reuse it later for a new node with the same fd.

See #3316
This commit is contained in:
Wim Taymans 2023-07-10 16:59:17 +02:00
parent 098ac51272
commit 4456f2efd1

View file

@ -1983,6 +1983,7 @@ void pw_impl_node_destroy(struct pw_impl_node *node)
/* remove ourself as a follower from the driver node */ /* remove ourself as a follower from the driver node */
spa_list_remove(&node->follower_link); spa_list_remove(&node->follower_link);
pw_impl_node_emit_peer_removed(node->driver_node, node);
remove_segment_owner(node->driver_node, node->info.id); remove_segment_owner(node->driver_node, node->info.id);
spa_list_consume(follower, &node->follower_list, follower_link) { spa_list_consume(follower, &node->follower_list, follower_link) {