From 79fe89412a51dde98f5cde1097711cb02dd6b273 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 13 May 2019 17:58:58 +0200 Subject: [PATCH] client: update permission before calling global_update first update the permission and then call the global update method. This ensures that any query of the permissions will have the new permissions. --- src/pipewire/client.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/pipewire/client.c b/src/pipewire/client.c index cd1748001..e7a3acc99 100644 --- a/src/pipewire/client.c +++ b/src/pipewire/client.c @@ -491,13 +491,14 @@ int pw_client_update_permissions(struct pw_client *client, pw_log_debug("client %p: set default permissions %08x -> %08x", client, old_perm, new_perm); + def->permissions = new_perm; + spa_list_for_each(global, &core->global_list, link) { p = find_permission(client, global->id); if (p->id != SPA_ID_INVALID) continue; pw_global_update_permissions(global, client, old_perm, new_perm); } - def->permissions = new_perm; } else { struct pw_global *global; @@ -517,8 +518,8 @@ int pw_client_update_permissions(struct pw_client *client, pw_log_debug("client %p: set global %d permissions %08x -> %08x", client, global->id, old_perm, new_perm); - pw_global_update_permissions(global, client, old_perm, new_perm); p->permissions = new_perm; + pw_global_update_permissions(global, client, old_perm, new_perm); } } if (n_permissions > 0)