mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-01 22:58:50 -04:00
permission: add some helpers
Add PW_PERM_ALL as a shortcut for all permissions Add PW_PERMISSION_FORMAT and PW_PERMISSION_ARGS to nicely format permissions.
This commit is contained in:
parent
f5e78196c4
commit
91d4806611
23 changed files with 58 additions and 61 deletions
|
|
@ -221,7 +221,7 @@ set_global_permissions(void *data, struct sm_object *object)
|
||||||
|
|
||||||
if (set_permission) {
|
if (set_permission) {
|
||||||
permissions[n_permissions++] =
|
permissions[n_permissions++] =
|
||||||
PW_PERMISSION_INIT(object->id, allowed ? PW_PERM_RWX : 0);
|
PW_PERMISSION_INIT(object->id, allowed ? PW_PERM_ALL : 0);
|
||||||
pw_log_info(NAME" %p: object %d allowed:%d", impl, object->id, allowed);
|
pw_log_info(NAME" %p: object %d allowed:%d", impl, object->id, allowed);
|
||||||
pw_client_update_permissions(client->obj->obj.proxy,
|
pw_client_update_permissions(client->obj->obj.proxy,
|
||||||
n_permissions, permissions);
|
n_permissions, permissions);
|
||||||
|
|
|
||||||
|
|
@ -210,7 +210,7 @@ granted:
|
||||||
pw_log_info(NAME" %p: client %p '%s' access granted", impl, client, access);
|
pw_log_info(NAME" %p: client %p '%s' access granted", impl, client, access);
|
||||||
items[0] = SPA_DICT_ITEM_INIT(PW_KEY_ACCESS, access);
|
items[0] = SPA_DICT_ITEM_INIT(PW_KEY_ACCESS, access);
|
||||||
pw_impl_client_update_properties(client, &SPA_DICT_INIT(items, 1));
|
pw_impl_client_update_properties(client, &SPA_DICT_INIT(items, 1));
|
||||||
permissions[0] = PW_PERMISSION_INIT(PW_ID_ANY, PW_PERM_RWX);
|
permissions[0] = PW_PERMISSION_INIT(PW_ID_ANY, PW_PERM_ALL);
|
||||||
pw_impl_client_update_permissions(client, 1, permissions);
|
pw_impl_client_update_permissions(client, 1, permissions);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -116,7 +116,7 @@ static void node_initialized(void *data)
|
||||||
global = pw_impl_node_get_global(nd->adapter);
|
global = pw_impl_node_get_global(nd->adapter);
|
||||||
|
|
||||||
res = pw_global_bind(global, client,
|
res = pw_global_bind(global, client,
|
||||||
PW_PERM_RWX, PW_VERSION_NODE, nd->new_id);
|
PW_PERM_ALL, PW_VERSION_NODE, nd->new_id);
|
||||||
if (res < 0)
|
if (res < 0)
|
||||||
goto error_bind;
|
goto error_bind;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,7 @@ static void *create_object(void *_data,
|
||||||
struct pw_impl_client *client = pw_resource_get_client(resource);
|
struct pw_impl_client *client = pw_resource_get_client(resource);
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
device_resource = pw_resource_new(client, new_id, PW_PERM_RWX, type, version, 0);
|
device_resource = pw_resource_new(client, new_id, PW_PERM_ALL, type, version, 0);
|
||||||
if (device_resource == NULL) {
|
if (device_resource == NULL) {
|
||||||
res = -errno;
|
res = -errno;
|
||||||
goto error_resource;
|
goto error_resource;
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,7 @@ static void *create_object(void *_data,
|
||||||
struct pw_impl_client *client = pw_resource_get_client(resource);
|
struct pw_impl_client *client = pw_resource_get_client(resource);
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
node_resource = pw_resource_new(client, new_id, PW_PERM_RWX, type, version, 0);
|
node_resource = pw_resource_new(client, new_id, PW_PERM_ALL, type, version, 0);
|
||||||
if (node_resource == NULL) {
|
if (node_resource == NULL) {
|
||||||
res = -errno;
|
res = -errno;
|
||||||
goto error_resource;
|
goto error_resource;
|
||||||
|
|
|
||||||
|
|
@ -1280,7 +1280,7 @@ void pw_impl_client_node_registered(struct pw_impl_client_node *this, struct pw_
|
||||||
sizeof(struct pw_node_activation));
|
sizeof(struct pw_node_activation));
|
||||||
|
|
||||||
if (impl->bind_node_id) {
|
if (impl->bind_node_id) {
|
||||||
pw_global_bind(global, client, PW_PERM_RWX,
|
pw_global_bind(global, client, PW_PERM_ALL,
|
||||||
impl->bind_node_version, impl->bind_node_id);
|
impl->bind_node_version, impl->bind_node_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,7 @@ static void link_initialized(void *data)
|
||||||
ld->global = pw_impl_link_get_global(ld->link);
|
ld->global = pw_impl_link_get_global(ld->link);
|
||||||
pw_global_add_listener(ld->global, &ld->global_listener, &global_events, ld);
|
pw_global_add_listener(ld->global, &ld->global_listener, &global_events, ld);
|
||||||
|
|
||||||
res = pw_global_bind(ld->global, client, PW_PERM_RWX, PW_VERSION_LINK, ld->new_id);
|
res = pw_global_bind(ld->global, client, PW_PERM_ALL, PW_VERSION_LINK, ld->new_id);
|
||||||
if (res < 0)
|
if (res < 0)
|
||||||
goto error_bind;
|
goto error_bind;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,7 @@ static void *create_object(void *_data,
|
||||||
struct pw_impl_client *client = pw_resource_get_client(resource);
|
struct pw_impl_client *client = pw_resource_get_client(resource);
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
metadata_resource = pw_resource_new(client, new_id, PW_PERM_RWX, type, version, 0);
|
metadata_resource = pw_resource_new(client, new_id, PW_PERM_ALL, type, version, 0);
|
||||||
if (metadata_resource == NULL) {
|
if (metadata_resource == NULL) {
|
||||||
res = -errno;
|
res = -errno;
|
||||||
goto error_resource;
|
goto error_resource;
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,7 @@ context_check_access(void *data, struct pw_impl_client *client)
|
||||||
|
|
||||||
/* portal makes this connection and will change the permissions before
|
/* portal makes this connection and will change the permissions before
|
||||||
* handing this connection to the client */
|
* handing this connection to the client */
|
||||||
permissions[0] = PW_PERMISSION_INIT(PW_ID_ANY, PW_PERM_RWX);
|
permissions[0] = PW_PERMISSION_INIT(PW_ID_ANY, PW_PERM_ALL);
|
||||||
pw_impl_client_update_permissions(client, 1, permissions);
|
pw_impl_client_update_permissions(client, 1, permissions);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -330,7 +330,7 @@ static void on_start(void *data, uint32_t version)
|
||||||
pw_resource_remove(client->core_resource);
|
pw_resource_remove(client->core_resource);
|
||||||
|
|
||||||
if (pw_global_bind(pw_impl_core_get_global(client->core), client,
|
if (pw_global_bind(pw_impl_core_get_global(client->core), client,
|
||||||
PW_PERM_RWX, version, 0) < 0)
|
PW_PERM_ALL, version, 0) < 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (version == 0)
|
if (version == 0)
|
||||||
|
|
@ -846,7 +846,7 @@ static int pw_protocol_native_connect_internal(struct pw_protocol_client *client
|
||||||
pw_log_error("server %p: failed to create client: %m", s);
|
pw_log_error("server %p: failed to create client: %m", s);
|
||||||
goto error_close;
|
goto error_close;
|
||||||
}
|
}
|
||||||
permissions[0] = PW_PERMISSION_INIT(PW_ID_ANY, PW_PERM_RWX);
|
permissions[0] = PW_PERMISSION_INIT(PW_ID_ANY, PW_PERM_ALL);
|
||||||
pw_impl_client_update_permissions(c->client, 1, permissions);
|
pw_impl_client_update_permissions(c->client, 1, permissions);
|
||||||
|
|
||||||
res = pw_protocol_client_connect_fd(client, sv[1], true);
|
res = pw_protocol_client_connect_fd(client, sv[1], true);
|
||||||
|
|
|
||||||
|
|
@ -189,7 +189,7 @@ static void *create_object(void *data,
|
||||||
pw_properties_setf(properties, PW_KEY_FACTORY_ID, "%d",
|
pw_properties_setf(properties, PW_KEY_FACTORY_ID, "%d",
|
||||||
pw_impl_factory_get_info(factory)->id);
|
pw_impl_factory_get_info(factory)->id);
|
||||||
|
|
||||||
this->resource = pw_resource_new(owner, new_id, PW_PERM_RWX, type, version, 0);
|
this->resource = pw_resource_new(owner, new_id, PW_PERM_ALL, type, version, 0);
|
||||||
if (this->resource == NULL)
|
if (this->resource == NULL)
|
||||||
goto no_mem;
|
goto no_mem;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -188,7 +188,7 @@ static void *create_object(void *data,
|
||||||
pw_properties_setf(properties, PW_KEY_FACTORY_ID, "%d",
|
pw_properties_setf(properties, PW_KEY_FACTORY_ID, "%d",
|
||||||
pw_impl_factory_get_info(factory)->id);
|
pw_impl_factory_get_info(factory)->id);
|
||||||
|
|
||||||
this->resource = pw_resource_new(owner, new_id, PW_PERM_RWX, type, version, 0);
|
this->resource = pw_resource_new(owner, new_id, PW_PERM_ALL, type, version, 0);
|
||||||
if (this->resource == NULL)
|
if (this->resource == NULL)
|
||||||
goto no_mem;
|
goto no_mem;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -439,7 +439,7 @@ static void *create_object(void *data,
|
||||||
void *result;
|
void *result;
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
impl_resource = pw_resource_new(client, new_id, PW_PERM_RWX, type, version, 0);
|
impl_resource = pw_resource_new(client, new_id, PW_PERM_ALL, type, version, 0);
|
||||||
if (impl_resource == NULL) {
|
if (impl_resource == NULL) {
|
||||||
res = -errno;
|
res = -errno;
|
||||||
goto error_resource;
|
goto error_resource;
|
||||||
|
|
|
||||||
|
|
@ -430,7 +430,7 @@ static void *create_object(void *data,
|
||||||
void *result;
|
void *result;
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
impl_resource = pw_resource_new(client, new_id, PW_PERM_RWX, type, version, 0);
|
impl_resource = pw_resource_new(client, new_id, PW_PERM_ALL, type, version, 0);
|
||||||
if (impl_resource == NULL) {
|
if (impl_resource == NULL) {
|
||||||
res = -errno;
|
res = -errno;
|
||||||
goto error_resource;
|
goto error_resource;
|
||||||
|
|
|
||||||
|
|
@ -439,7 +439,7 @@ static void *create_object(void *data,
|
||||||
void *result;
|
void *result;
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
impl_resource = pw_resource_new(client, new_id, PW_PERM_RWX, type, version, 0);
|
impl_resource = pw_resource_new(client, new_id, PW_PERM_ALL, type, version, 0);
|
||||||
if (impl_resource == NULL) {
|
if (impl_resource == NULL) {
|
||||||
res = -errno;
|
res = -errno;
|
||||||
goto error_resource;
|
goto error_resource;
|
||||||
|
|
|
||||||
|
|
@ -430,7 +430,7 @@ static void *create_object(void *data,
|
||||||
void *result;
|
void *result;
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
impl_resource = pw_resource_new(client, new_id, PW_PERM_RWX, type, version, 0);
|
impl_resource = pw_resource_new(client, new_id, PW_PERM_ALL, type, version, 0);
|
||||||
if (impl_resource == NULL) {
|
if (impl_resource == NULL) {
|
||||||
res = -errno;
|
res = -errno;
|
||||||
goto error_resource;
|
goto error_resource;
|
||||||
|
|
|
||||||
|
|
@ -144,7 +144,7 @@ static void *create_object(void *_data,
|
||||||
|
|
||||||
res = pw_global_bind(pw_impl_device_get_global(device),
|
res = pw_global_bind(pw_impl_device_get_global(device),
|
||||||
client,
|
client,
|
||||||
PW_PERM_RWX, version,
|
PW_PERM_ALL, version,
|
||||||
new_id);
|
new_id);
|
||||||
if (res < 0)
|
if (res < 0)
|
||||||
goto error_bind;
|
goto error_bind;
|
||||||
|
|
|
||||||
|
|
@ -144,9 +144,7 @@ static void *create_object(void *_data,
|
||||||
struct pw_resource *bound_resource;
|
struct pw_resource *bound_resource;
|
||||||
|
|
||||||
res = pw_global_bind(pw_impl_node_get_global(node),
|
res = pw_global_bind(pw_impl_node_get_global(node),
|
||||||
client,
|
client, PW_PERM_ALL, version, new_id);
|
||||||
PW_PERM_RWX,
|
|
||||||
version, new_id);
|
|
||||||
if (res < 0)
|
if (res < 0)
|
||||||
goto error_bind;
|
goto error_bind;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ SPA_EXPORT
|
||||||
uint32_t pw_global_get_permissions(struct pw_global *global, struct pw_impl_client *client)
|
uint32_t pw_global_get_permissions(struct pw_global *global, struct pw_impl_client *client)
|
||||||
{
|
{
|
||||||
if (client->permission_func == NULL)
|
if (client->permission_func == NULL)
|
||||||
return PW_PERM_RWX;
|
return PW_PERM_ALL;
|
||||||
|
|
||||||
return client->permission_func(global, client, client->permission_data);
|
return client->permission_func(global, client, client->permission_data);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -169,7 +169,7 @@ static int core_hello(void *object, uint32_t version)
|
||||||
|
|
||||||
if (version >= 3) {
|
if (version >= 3) {
|
||||||
if ((res = pw_global_bind(client->global, client,
|
if ((res = pw_global_bind(client->global, client,
|
||||||
PW_PERM_RWX, PW_VERSION_CLIENT, 1)) < 0)
|
PW_PERM_ALL, PW_VERSION_CLIENT, 1)) < 0)
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
@ -226,7 +226,7 @@ static struct pw_registry * core_get_registry(void *object, uint32_t version, si
|
||||||
|
|
||||||
registry_resource = pw_resource_new(client,
|
registry_resource = pw_resource_new(client,
|
||||||
new_id,
|
new_id,
|
||||||
PW_PERM_RWX,
|
PW_PERM_ALL,
|
||||||
PW_TYPE_INTERFACE_Registry,
|
PW_TYPE_INTERFACE_Registry,
|
||||||
version,
|
version,
|
||||||
sizeof(*data));
|
sizeof(*data));
|
||||||
|
|
|
||||||
|
|
@ -45,12 +45,14 @@ extern "C" {
|
||||||
#define PW_PERM_W 0200 /**< methods can be called that modify the object */
|
#define PW_PERM_W 0200 /**< methods can be called that modify the object */
|
||||||
#define PW_PERM_X 0100 /**< methods can be called on the object. The W flag must be
|
#define PW_PERM_X 0100 /**< methods can be called on the object. The W flag must be
|
||||||
* present in order to call methods that modify the object. */
|
* present in order to call methods that modify the object. */
|
||||||
|
|
||||||
#define PW_PERM_RWX (PW_PERM_R|PW_PERM_W|PW_PERM_X)
|
#define PW_PERM_RWX (PW_PERM_R|PW_PERM_W|PW_PERM_X)
|
||||||
|
|
||||||
#define PW_PERM_IS_R(p) (((p)&PW_PERM_R) == PW_PERM_R)
|
#define PW_PERM_IS_R(p) (((p)&PW_PERM_R) == PW_PERM_R)
|
||||||
#define PW_PERM_IS_W(p) (((p)&PW_PERM_W) == PW_PERM_W)
|
#define PW_PERM_IS_W(p) (((p)&PW_PERM_W) == PW_PERM_W)
|
||||||
#define PW_PERM_IS_X(p) (((p)&PW_PERM_X) == PW_PERM_X)
|
#define PW_PERM_IS_X(p) (((p)&PW_PERM_X) == PW_PERM_X)
|
||||||
|
|
||||||
|
#define PW_PERM_ALL PW_PERM_RWX
|
||||||
#define PW_PERM_INVALID (uint32_t)(0xffffffff)
|
#define PW_PERM_INVALID (uint32_t)(0xffffffff)
|
||||||
|
|
||||||
struct pw_permission {
|
struct pw_permission {
|
||||||
|
|
@ -60,6 +62,12 @@ struct pw_permission {
|
||||||
|
|
||||||
#define PW_PERMISSION_INIT(id,p) (struct pw_permission){ (id), (p) }
|
#define PW_PERMISSION_INIT(id,p) (struct pw_permission){ (id), (p) }
|
||||||
|
|
||||||
|
#define PW_PERMISSION_FORMAT "%c%c%c"
|
||||||
|
#define PW_PERMISSION_ARGS(permission) \
|
||||||
|
(permission) & PW_PERM_R ? 'r' : '-', \
|
||||||
|
(permission) & PW_PERM_W ? 'w' : '-', \
|
||||||
|
(permission) & PW_PERM_X ? 'x' : '-'
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -574,9 +574,8 @@ static void info_global(struct proxy_data *pd)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
fprintf(stdout, "\tid: %d\n", global->id);
|
fprintf(stdout, "\tid: %d\n", global->id);
|
||||||
fprintf(stdout, "\tpermissions: %c%c%c\n", global->permissions & PW_PERM_R ? 'r' : '-',
|
fprintf(stdout, "\tpermissions: "PW_PERMISSION_FORMAT"\n",
|
||||||
global->permissions & PW_PERM_W ? 'w' : '-',
|
PW_PERMISSION_ARGS(global->permissions));
|
||||||
global->permissions & PW_PERM_X ? 'x' : '-');
|
|
||||||
fprintf(stdout, "\ttype: %s/%d\n", global->type, global->version);
|
fprintf(stdout, "\ttype: %s/%d\n", global->type, global->version);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -893,9 +892,8 @@ static void client_event_permissions(void *object, uint32_t index,
|
||||||
fprintf(stdout, " default:");
|
fprintf(stdout, " default:");
|
||||||
else
|
else
|
||||||
fprintf(stdout, " %u:", permissions[i].id);
|
fprintf(stdout, " %u:", permissions[i].id);
|
||||||
fprintf(stdout, " %c%c%c\n", permissions[i].permissions & PW_PERM_R ? 'r' : '-',
|
fprintf(stdout, " "PW_PERMISSION_FORMAT"\n",
|
||||||
permissions[i].permissions & PW_PERM_W ? 'w' : '-',
|
PW_PERMISSION_ARGS(permissions[i].permissions));
|
||||||
permissions[i].permissions & PW_PERM_X ? 'x' : '-');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1525,8 +1523,8 @@ static bool do_permissions(struct data *data, const char *cmd, char *args, char
|
||||||
{
|
{
|
||||||
struct remote_data *rd = data->current;
|
struct remote_data *rd = data->current;
|
||||||
char *a[3];
|
char *a[3];
|
||||||
int n;
|
int n;
|
||||||
uint32_t id;
|
uint32_t id, p;
|
||||||
struct global *global;
|
struct global *global;
|
||||||
struct pw_permission permissions[1];
|
struct pw_permission permissions[1];
|
||||||
|
|
||||||
|
|
@ -1551,8 +1549,11 @@ static bool do_permissions(struct data *data, const char *cmd, char *args, char
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
permissions[0] = PW_PERMISSION_INIT(atoi(a[1]), atoi(a[2]));
|
p = strtol(a[2], NULL, 0);
|
||||||
|
fprintf(stderr, "setting permissions: "PW_PERMISSION_FORMAT"\n",
|
||||||
|
PW_PERMISSION_ARGS(p));
|
||||||
|
|
||||||
|
permissions[0] = PW_PERMISSION_INIT(atoi(a[1]), p);
|
||||||
pw_client_update_permissions((struct pw_client*)global->proxy,
|
pw_client_update_permissions((struct pw_client*)global->proxy,
|
||||||
1, permissions);
|
1, permissions);
|
||||||
|
|
||||||
|
|
@ -1956,10 +1957,8 @@ dump_global_common(struct data *data, struct global *global,
|
||||||
if (!(flags & is_short)) {
|
if (!(flags & is_short)) {
|
||||||
ind = INDENT(level + 1);
|
ind = INDENT(level + 1);
|
||||||
fprintf(stdout, "%sid: %"PRIu32"\n", ind, global->id);
|
fprintf(stdout, "%sid: %"PRIu32"\n", ind, global->id);
|
||||||
fprintf(stdout, "%spermissions: %c%c%c\n", ind,
|
fprintf(stdout, "%spermissions: "PW_PERMISSION_FORMAT"\n", ind,
|
||||||
global->permissions & PW_PERM_R ? 'r' : '-',
|
PW_PERMISSION_ARGS(global->permissions));
|
||||||
global->permissions & PW_PERM_W ? 'w' : '-',
|
|
||||||
global->permissions & PW_PERM_X ? 'x' : '-');
|
|
||||||
fprintf(stdout, "%stype: %s/%d\n", ind,
|
fprintf(stdout, "%stype: %s/%d\n", ind,
|
||||||
global->type, global->version);
|
global->type, global->version);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -221,9 +221,8 @@ static void module_event_info(void *object, const struct pw_module_info *info)
|
||||||
info = data->info = pw_module_info_update(data->info, info);
|
info = data->info = pw_module_info_update(data->info, info);
|
||||||
|
|
||||||
printf("\tid: %d\n", data->id);
|
printf("\tid: %d\n", data->id);
|
||||||
printf("\tpermissions: %c%c%c\n", data->permissions & PW_PERM_R ? 'r' : '-',
|
printf("\tpermissions: "PW_PERMISSION_FORMAT"\n",
|
||||||
data->permissions & PW_PERM_W ? 'w' : '-',
|
PW_PERMISSION_ARGS(data->permissions));
|
||||||
data->permissions & PW_PERM_X ? 'x' : '-');
|
|
||||||
printf("\ttype: %s (version %d)\n", data->type, data->version);
|
printf("\ttype: %s (version %d)\n", data->type, data->version);
|
||||||
printf("\tname: \"%s\"\n", info->name);
|
printf("\tname: \"%s\"\n", info->name);
|
||||||
printf("\tfilename: \"%s\"\n", info->filename);
|
printf("\tfilename: \"%s\"\n", info->filename);
|
||||||
|
|
@ -255,9 +254,8 @@ static void print_node(struct proxy_data *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("\tid: %d\n", data->id);
|
printf("\tid: %d\n", data->id);
|
||||||
printf("\tpermissions: %c%c%c\n", data->permissions & PW_PERM_R ? 'r' : '-',
|
printf("\tpermissions: "PW_PERMISSION_FORMAT"\n",
|
||||||
data->permissions & PW_PERM_W ? 'w' : '-',
|
PW_PERMISSION_ARGS(data->permissions));
|
||||||
data->permissions & PW_PERM_X ? 'x' : '-');
|
|
||||||
printf("\ttype: %s (version %d)\n", data->type, data->version);
|
printf("\ttype: %s (version %d)\n", data->type, data->version);
|
||||||
if (print_all) {
|
if (print_all) {
|
||||||
print_params(data, MARK_CHANGE(PW_NODE_CHANGE_MASK_PARAMS));
|
print_params(data, MARK_CHANGE(PW_NODE_CHANGE_MASK_PARAMS));
|
||||||
|
|
@ -323,9 +321,8 @@ static void print_port(struct proxy_data *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("\tid: %d\n", data->id);
|
printf("\tid: %d\n", data->id);
|
||||||
printf("\tpermissions: %c%c%c\n", data->permissions & PW_PERM_R ? 'r' : '-',
|
printf("\tpermissions: "PW_PERMISSION_FORMAT"\n",
|
||||||
data->permissions & PW_PERM_W ? 'w' : '-',
|
PW_PERMISSION_ARGS(data->permissions));
|
||||||
data->permissions & PW_PERM_X ? 'x' : '-');
|
|
||||||
printf("\ttype: %s (version %d)\n", data->type, data->version);
|
printf("\ttype: %s (version %d)\n", data->type, data->version);
|
||||||
|
|
||||||
printf("\tdirection: \"%s\"\n", pw_direction_as_string(info->direction));
|
printf("\tdirection: \"%s\"\n", pw_direction_as_string(info->direction));
|
||||||
|
|
@ -384,9 +381,8 @@ static void factory_event_info(void *object, const struct pw_factory_info *info)
|
||||||
info = data->info = pw_factory_info_update(data->info, info);
|
info = data->info = pw_factory_info_update(data->info, info);
|
||||||
|
|
||||||
printf("\tid: %d\n", data->id);
|
printf("\tid: %d\n", data->id);
|
||||||
printf("\tpermissions: %c%c%c\n", data->permissions & PW_PERM_R ? 'r' : '-',
|
printf("\tpermissions: "PW_PERMISSION_FORMAT"\n",
|
||||||
data->permissions & PW_PERM_W ? 'w' : '-',
|
PW_PERMISSION_ARGS(data->permissions));
|
||||||
data->permissions & PW_PERM_X ? 'x' : '-');
|
|
||||||
printf("\ttype: %s (version %d)\n", data->type, data->version);
|
printf("\ttype: %s (version %d)\n", data->type, data->version);
|
||||||
|
|
||||||
printf("\tname: \"%s\"\n", info->name);
|
printf("\tname: \"%s\"\n", info->name);
|
||||||
|
|
@ -419,9 +415,8 @@ static void client_event_info(void *object, const struct pw_client_info *info)
|
||||||
info = data->info = pw_client_info_update(data->info, info);
|
info = data->info = pw_client_info_update(data->info, info);
|
||||||
|
|
||||||
printf("\tid: %d\n", data->id);
|
printf("\tid: %d\n", data->id);
|
||||||
printf("\tpermissions: %c%c%c\n", data->permissions & PW_PERM_R ? 'r' : '-',
|
printf("\tpermissions: "PW_PERMISSION_FORMAT"\n",
|
||||||
data->permissions & PW_PERM_W ? 'w' : '-',
|
PW_PERMISSION_ARGS(data->permissions));
|
||||||
data->permissions & PW_PERM_X ? 'x' : '-');
|
|
||||||
printf("\ttype: %s (version %d)\n", data->type, data->version);
|
printf("\ttype: %s (version %d)\n", data->type, data->version);
|
||||||
|
|
||||||
if (print_all) {
|
if (print_all) {
|
||||||
|
|
@ -452,9 +447,8 @@ static void link_event_info(void *object, const struct pw_link_info *info)
|
||||||
info = data->info = pw_link_info_update(data->info, info);
|
info = data->info = pw_link_info_update(data->info, info);
|
||||||
|
|
||||||
printf("\tid: %d\n", data->id);
|
printf("\tid: %d\n", data->id);
|
||||||
printf("\tpermissions: %c%c%c\n", data->permissions & PW_PERM_R ? 'r' : '-',
|
printf("\tpermissions: "PW_PERMISSION_FORMAT"\n",
|
||||||
data->permissions & PW_PERM_W ? 'w' : '-',
|
PW_PERMISSION_ARGS(data->permissions));
|
||||||
data->permissions & PW_PERM_X ? 'x' : '-');
|
|
||||||
printf("\ttype: %s (version %d)\n", data->type, data->version);
|
printf("\ttype: %s (version %d)\n", data->type, data->version);
|
||||||
|
|
||||||
printf("\toutput-node-id: %u\n", info->output_node_id);
|
printf("\toutput-node-id: %u\n", info->output_node_id);
|
||||||
|
|
@ -499,9 +493,8 @@ static void print_device(struct proxy_data *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("\tid: %d\n", data->id);
|
printf("\tid: %d\n", data->id);
|
||||||
printf("\tpermissions: %c%c%c\n", data->permissions & PW_PERM_R ? 'r' : '-',
|
printf("\tpermissions: "PW_PERMISSION_FORMAT"\n",
|
||||||
data->permissions & PW_PERM_W ? 'w' : '-',
|
PW_PERMISSION_ARGS(data->permissions));
|
||||||
data->permissions & PW_PERM_X ? 'x' : '-');
|
|
||||||
printf("\ttype: %s (version %d)\n", data->type, data->version);
|
printf("\ttype: %s (version %d)\n", data->type, data->version);
|
||||||
|
|
||||||
if (print_all) {
|
if (print_all) {
|
||||||
|
|
@ -617,9 +610,8 @@ static void registry_event_global(void *data, uint32_t id,
|
||||||
} else {
|
} else {
|
||||||
printf("added:\n");
|
printf("added:\n");
|
||||||
printf("\tid: %u\n", id);
|
printf("\tid: %u\n", id);
|
||||||
printf("\tpermissions: %c%c%c\n", permissions & PW_PERM_R ? 'r' : '-',
|
printf("\tpermissions: "PW_PERMISSION_FORMAT"\n",
|
||||||
permissions & PW_PERM_W ? 'w' : '-',
|
PW_PERMISSION_ARGS(permissions));
|
||||||
permissions & PW_PERM_X ? 'x' : '-');
|
|
||||||
printf("\ttype: %s (version %d)\n", type, version);
|
printf("\ttype: %s (version %d)\n", type, version);
|
||||||
print_properties(props, ' ');
|
print_properties(props, ' ');
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue