destroy proxies when global is removed

When a global is removed, also remove the proxies. We can have multiple
proxies to a global otherwise when a client has a sequence of events
queued from the server like this:

Global 1 added
Global 1 removed
Global 1 added

The proxy we added in the firt event would not be destroyed because the
server did not know about it when global 1 was removed and then a
second one would be made.
This commit is contained in:
Wim Taymans 2021-11-08 12:52:22 +01:00
parent 2329a4d323
commit 5ed4977b38
3 changed files with 31 additions and 8 deletions

View file

@ -369,6 +369,8 @@ static int destroy_global(void *obj, void *data)
if (global == NULL)
return 0;
if (global->proxy)
pw_proxy_destroy(global->proxy);
pw_map_insert_at(&global->rd->globals, global->id, NULL);
pw_properties_free(global->properties);
free(global->type);