mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-01 22:58:50 -04:00
client: add function to check permissions of a client
This commit is contained in:
parent
a5ec68e61c
commit
bd8b239621
2 changed files with 21 additions and 0 deletions
|
|
@ -670,3 +670,20 @@ void pw_impl_client_set_busy(struct pw_impl_client *client, bool busy)
|
|||
pw_impl_client_emit_busy_changed(client, busy);
|
||||
}
|
||||
}
|
||||
SPA_EXPORT
|
||||
int pw_impl_client_check_permissions(struct pw_impl_client *client,
|
||||
uint32_t global_id, uint32_t permissions)
|
||||
{
|
||||
struct pw_context *context = client->context;
|
||||
struct pw_global *global;
|
||||
uint32_t perms;
|
||||
|
||||
if ((global = pw_context_find_global(context, global_id)) == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
perms = pw_global_get_permissions(global, client);
|
||||
if ((perms & permissions) != permissions)
|
||||
return -EPERM;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -135,6 +135,10 @@ int pw_impl_client_update_properties(struct pw_impl_client *client, const struct
|
|||
int pw_impl_client_update_permissions(struct pw_impl_client *client, uint32_t n_permissions,
|
||||
const struct pw_permission *permissions);
|
||||
|
||||
/** check if a client has permissions for global_id, Since 0.3.9 */
|
||||
int pw_impl_client_check_permissions(struct pw_impl_client *client,
|
||||
uint32_t global_id, uint32_t permissions);
|
||||
|
||||
/** Get the client properties */
|
||||
const struct pw_properties *pw_impl_client_get_properties(struct pw_impl_client *client);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue