summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWim Taymans <wtaymans@redhat.com>2020-07-30 16:26:29 +0200
committerWim Taymans <wtaymans@redhat.com>2020-07-30 16:26:29 +0200
commit91d48066115dca31fe3a3a9ae740ab47ce4c926b (patch)
tree0dd91fa0847a538770abd6ed6002db45c683865b
parentf5e78196c45f52b8e2acb404733c077e4a091b7d (diff)
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.
-rw-r--r--src/examples/media-session/access-portal.c2
-rw-r--r--src/modules/module-access.c2
-rw-r--r--src/modules/module-adapter.c2
-rw-r--r--src/modules/module-client-device.c2
-rw-r--r--src/modules/module-client-node.c2
-rw-r--r--src/modules/module-client-node/client-node.c2
-rw-r--r--src/modules/module-link-factory.c2
-rw-r--r--src/modules/module-metadata.c2
-rw-r--r--src/modules/module-portal.c2
-rw-r--r--src/modules/module-protocol-native.c4
-rw-r--r--src/modules/module-session-manager/client-endpoint/client-endpoint.c2
-rw-r--r--src/modules/module-session-manager/client-session/client-session.c2
-rw-r--r--src/modules/module-session-manager/endpoint-link.c2
-rw-r--r--src/modules/module-session-manager/endpoint-stream.c2
-rw-r--r--src/modules/module-session-manager/endpoint.c2
-rw-r--r--src/modules/module-session-manager/session.c2
-rw-r--r--src/modules/spa/module-device-factory.c2
-rw-r--r--src/modules/spa/module-node-factory.c4
-rw-r--r--src/pipewire/global.c2
-rw-r--r--src/pipewire/impl-core.c4
-rw-r--r--src/pipewire/permission.h8
-rw-r--r--src/tools/pw-cli.c25
-rw-r--r--src/tools/pw-mon.c40
23 files changed, 58 insertions, 61 deletions
diff --git a/src/examples/media-session/access-portal.c b/src/examples/media-session/access-portal.c
index ee196e6b..02737976 100644
--- a/src/examples/media-session/access-portal.c
+++ b/src/examples/media-session/access-portal.c
@@ -221,7 +221,7 @@ set_global_permissions(void *data, struct sm_object *object)
if (set_permission) {
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_client_update_permissions(client->obj->obj.proxy,
n_permissions, permissions);
diff --git a/src/modules/module-access.c b/src/modules/module-access.c
index 302c96dc..7560a1ce 100644
--- a/src/modules/module-access.c
+++ b/src/modules/module-access.c
@@ -210,7 +210,7 @@ granted:
pw_log_info(NAME" %p: client %p '%s' access granted", impl, client, access);
items[0] = SPA_DICT_ITEM_INIT(PW_KEY_ACCESS, access);
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);
return;
diff --git a/src/modules/module-adapter.c b/src/modules/module-adapter.c
index 06202f59..34d6a899 100644
--- a/src/modules/module-adapter.c
+++ b/src/modules/module-adapter.c
@@ -116,7 +116,7 @@ static void node_initialized(void *data)
global = pw_impl_node_get_global(nd->adapter);
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)
goto error_bind;
diff --git a/src/modules/module-client-device.c b/src/modules/module-client-device.c
index 1350216b..ec122949 100644
--- a/src/modules/module-client-device.c
+++ b/src/modules/module-client-device.c
@@ -72,7 +72,7 @@ static void *create_object(void *_data,
struct pw_impl_client *client = pw_resource_get_client(resource);
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) {
res = -errno;
goto error_resource;
diff --git a/src/modules/module-client-node.c b/src/modules/module-client-node.c
index a5b5f9c1..471a1c81 100644
--- a/src/modules/module-client-node.c
+++ b/src/modules/module-client-node.c
@@ -74,7 +74,7 @@ static void *create_object(void *_data,
struct pw_impl_client *client = pw_resource_get_client(resource);
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) {
res = -errno;
goto error_resource;
diff --git a/src/modules/module-client-node/client-node.c b/src/modules/module-client-node/client-node.c
index 9c17b6b8..3beedc75 100644
--- a/src/modules/module-client-node/client-node.c
+++ b/src/modules/module-client-node/client-node.c
@@ -1280,7 +1280,7 @@ void pw_impl_client_node_registered(struct pw_impl_client_node *this, struct pw_
sizeof(struct pw_node_activation));
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);
}
}
diff --git a/src/modules/module-link-factory.c b/src/modules/module-link-factory.c
index 8c23d862..2f1d73ab 100644
--- a/src/modules/module-link-factory.c
+++ b/src/modules/module-link-factory.c
@@ -119,7 +119,7 @@ static void link_initialized(void *data)
ld->global = pw_impl_link_get_global(ld->link);
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)
goto error_bind;
diff --git a/src/modules/module-metadata.c b/src/modules/module-metadata.c
index 38a32d82..0f3b719a 100644
--- a/src/modules/module-metadata.c
+++ b/src/modules/module-metadata.c
@@ -72,7 +72,7 @@ static void *create_object(void *_data,
struct pw_impl_client *client = pw_resource_get_client(resource);
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) {
res = -errno;
goto error_resource;
diff --git a/src/modules/module-portal.c b/src/modules/module-portal.c
index e6eff22f..1629508d 100644
--- a/src/modules/module-portal.c
+++ b/src/modules/module-portal.c
@@ -86,7 +86,7 @@ context_check_access(void *data, struct pw_impl_client *client)
/* portal makes this connection and will change the permissions before
* 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);
return;
}
diff --git a/src/modules/module-protocol-native.c b/src/modules/module-protocol-native.c
index f562ff49..854372a7 100644
--- a/src/modules/module-protocol-native.c
+++ b/src/modules/module-protocol-native.c
@@ -330,7 +330,7 @@ static void on_start(void *data, uint32_t version)
pw_resource_remove(client->core_resource);
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;
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);
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);
res = pw_protocol_client_connect_fd(client, sv[1], true);
diff --git a/src/modules/module-session-manager/client-endpoint/client-endpoint.c b/src/modules/module-session-manager/client-endpoint/client-endpoint.c
index c48fd641..c845cf05 100644
--- a/src/modules/module-session-manager/client-endpoint/client-endpoint.c
+++ b/src/modules/module-session-manager/client-endpoint/client-endpoint.c
@@ -189,7 +189,7 @@ static void *create_object(void *data,
pw_properties_setf(properties, PW_KEY_FACTORY_ID, "%d",
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)
goto no_mem;
diff --git a/src/modules/module-session-manager/client-session/client-session.c b/src/modules/module-session-manager/client-session/client-session.c
index 3953962f..6490d4cc 100644
--- a/src/modules/module-session-manager/client-session/client-session.c
+++ b/src/modules/module-session-manager/client-session/client-session.c
@@ -188,7 +188,7 @@ static void *create_object(void *data,
pw_properties_setf(properties, PW_KEY_FACTORY_ID, "%d",
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)
goto no_mem;
diff --git a/src/modules/module-session-manager/endpoint-link.c b/src/modules/module-session-manager/endpoint-link.c
index f751f716..bfebe081 100644
--- a/src/modules/module-session-manager/endpoint-link.c
+++ b/src/modules/module-session-manager/endpoint-link.c
@@ -439,7 +439,7 @@ static void *create_object(void *data,
void *result;
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) {
res = -errno;
goto error_resource;
diff --git a/src/modules/module-session-manager/endpoint-stream.c b/src/modules/module-session-manager/endpoint-stream.c
index e0ed3a1c..8e8435d8 100644
--- a/src/modules/module-session-manager/endpoint-stream.c
+++ b/src/modules/module-session-manager/endpoint-stream.c
@@ -430,7 +430,7 @@ static void *create_object(void *data,
void *result;
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) {
res = -errno;
goto error_resource;
diff --git a/src/modules/module-session-manager/endpoint.c b/src/modules/module-session-manager/endpoint.c
index 331f69b5..32b97bcb 100644
--- a/src/modules/module-session-manager/endpoint.c
+++ b/src/modules/module-session-manager/endpoint.c
@@ -439,7 +439,7 @@ static void *create_object(void *data,
void *result;
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) {
res = -errno;
goto error_resource;
diff --git a/src/modules/module-session-manager/session.c b/src/modules/module-session-manager/session.c
index 65ad6e17..80907bec 100644
--- a/src/modules/module-session-manager/session.c
+++ b/src/modules/module-session-manager/session.c
@@ -430,7 +430,7 @@ static void *create_object(void *data,
void *result;
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) {
res = -errno;
goto error_resource;
diff --git a/src/modules/spa/module-device-factory.c b/src/modules/spa/module-device-factory.c
index 9396e5a8..ad0b7c48 100644
--- a/src/modules/spa/module-device-factory.c
+++ b/src/modules/spa/module-device-factory.c
@@ -144,7 +144,7 @@ static void *create_object(void *_data,
res = pw_global_bind(pw_impl_device_get_global(device),
client,
- PW_PERM_RWX, version,
+ PW_PERM_ALL, version,
new_id);
if (res < 0)
goto error_bind;
diff --git a/src/modules/spa/module-node-factory.c b/src/modules/spa/module-node-factory.c
index 6cc58f1e..e93c3f1d 100644
--- a/src/modules/spa/module-node-factory.c
+++ b/src/modules/spa/module-node-factory.c
@@ -144,9 +144,7 @@ static void *create_object(void *_data,
struct pw_resource *bound_resource;
res = pw_global_bind(pw_impl_node_get_global(node),
- client,
- PW_PERM_RWX,
- version, new_id);
+ client, PW_PERM_ALL, version, new_id);
if (res < 0)
goto error_bind;
diff --git a/src/pipewire/global.c b/src/pipewire/global.c
index eb4805cf..2247ce19 100644
--- a/src/pipewire/global.c
+++ b/src/pipewire/global.c
@@ -45,7 +45,7 @@ SPA_EXPORT
uint32_t pw_global_get_permissions(struct pw_global *global, struct pw_impl_client *client)
{
if (client->permission_func == NULL)
- return PW_PERM_RWX;
+ return PW_PERM_ALL;
return client->permission_func(global, client, client->permission_data);
}
diff --git a/src/pipewire/impl-core.c b/src/pipewire/impl-core.c
index 103c2863..9d3a00e4 100644
--- a/src/pipewire/impl-core.c
+++ b/src/pipewire/impl-core.c
@@ -169,7 +169,7 @@ static int core_hello(void *object, uint32_t version)
if (version >= 3) {
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 0;
@@ -226,7 +226,7 @@ static struct pw_registry * core_get_registry(void *object, uint32_t version, si
registry_resource = pw_resource_new(client,
new_id,
- PW_PERM_RWX,
+ PW_PERM_ALL,
PW_TYPE_INTERFACE_Registry,
version,
sizeof(*data));
diff --git a/src/pipewire/permission.h b/src/pipewire/permission.h
index 58189a17..eaff24ef 100644
--- a/src/pipewire/permission.h
+++ b/src/pipewire/permission.h
@@ -45,12 +45,14 @@ extern "C" {
#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
* 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_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_X(p) (((p)&PW_PERM_X) == PW_PERM_X)
+#define PW_PERM_ALL PW_PERM_RWX
#define PW_PERM_INVALID (uint32_t)(0xffffffff)
struct pw_permission {
@@ -60,6 +62,12 @@ struct pw_permission {
#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
}
#endif
diff --git a/src/tools/pw-cli.c b/src/tools/pw-cli.c
index 7ecadb16..82bc72ea 100644
--- a/src/tools/pw-cli.c
+++ b/src/tools/pw-cli.c
@@ -574,9 +574,8 @@ static void info_global(struct proxy_data *pd)
return;
fprintf(stdout, "\tid: %d\n", global->id);
- fprintf(stdout, "\tpermissions: %c%c%c\n", global->permissions & PW_PERM_R ? 'r' : '-',
- global->permissions & PW_PERM_W ? 'w' : '-',
- global->permissions & PW_PERM_X ? 'x' : '-');
+ fprintf(stdout, "\tpermissions: "PW_PERMISSION_FORMAT"\n",
+ PW_PERMISSION_ARGS(global->permissions));
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:");
else
fprintf(stdout, " %u:", permissions[i].id);
- fprintf(stdout, " %c%c%c\n", permissions[i].permissions & PW_PERM_R ? 'r' : '-',
- permissions[i].permissions & PW_PERM_W ? 'w' : '-',
- permissions[i].permissions & PW_PERM_X ? 'x' : '-');
+ fprintf(stdout, " "PW_PERMISSION_FORMAT"\n",
+ PW_PERMISSION_ARGS(permissions[i].permissions));
}
}
@@ -1525,8 +1523,8 @@ static bool do_permissions(struct data *data, const char *cmd, char *args, char
{
struct remote_data *rd = data->current;
char *a[3];
- int n;
- uint32_t id;
+ int n;
+ uint32_t id, p;
struct global *global;
struct pw_permission permissions[1];
@@ -1551,8 +1549,11 @@ static bool do_permissions(struct data *data, const char *cmd, char *args, char
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,
1, permissions);
@@ -1956,10 +1957,8 @@ dump_global_common(struct data *data, struct global *global,
if (!(flags & is_short)) {
ind = INDENT(level + 1);
fprintf(stdout, "%sid: %"PRIu32"\n", ind, global->id);
- fprintf(stdout, "%spermissions: %c%c%c\n", ind,
- global->permissions & PW_PERM_R ? 'r' : '-',
- global->permissions & PW_PERM_W ? 'w' : '-',
- global->permissions & PW_PERM_X ? 'x' : '-');
+ fprintf(stdout, "%spermissions: "PW_PERMISSION_FORMAT"\n", ind,
+ PW_PERMISSION_ARGS(global->permissions));
fprintf(stdout, "%stype: %s/%d\n", ind,
global->type, global->version);
} else {
diff --git a/src/tools/pw-mon.c b/src/tools/pw-mon.c
index a0839903..15a392c8 100644
--- a/src/tools/pw-mon.c
+++ b/src/tools/pw-mon.c
@@ -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);
printf("\tid: %d\n", data->id);
- printf("\tpermissions: %c%c%c\n", data->permissions & PW_PERM_R ? 'r' : '-',
- data->permissions & PW_PERM_W ? 'w' : '-',
- data->permissions & PW_PERM_X ? 'x' : '-');
+ printf("\tpermissions: "PW_PERMISSION_FORMAT"\n",
+ PW_PERMISSION_ARGS(data->permissions));
printf("\ttype: %s (version %d)\n", data->type, data->version);
printf("\tname: \"%s\"\n", info->name);
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("\tpermissions: %c%c%c\n", data->permissions & PW_PERM_R ? 'r' : '-',
- data->permissions & PW_PERM_W ? 'w' : '-',
- data->permissions & PW_PERM_X ? 'x' : '-');
+ printf("\tpermissions: "PW_PERMISSION_FORMAT"\n",
+ PW_PERMISSION_ARGS(data->permissions));
printf("\ttype: %s (version %d)\n", data->type, data->version);
if (print_all) {
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("\tpermissions: %c%c%c\n", data->permissions & PW_PERM_R ? 'r' : '-',
- data->permissions & PW_PERM_W ? 'w' : '-',
- data->permissions & PW_PERM_X ? 'x' : '-');
+ printf("\tpermissions: "PW_PERMISSION_FORMAT"\n",
+ PW_PERMISSION_ARGS(data->permissions));
printf("\ttype: %s (version %d)\n", data->type, data->version);
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);
printf("\tid: %d\n", data->id);
- printf("\tpermissions: %c%c%c\n", data->permissions & PW_PERM_R ? 'r' : '-',
- data->permissions & PW_PERM_W ? 'w' : '-',
- data->permissions & PW_PERM_X ? 'x' : '-');
+ printf("\tpermissions: "PW_PERMISSION_FORMAT"\n",
+ PW_PERMISSION_ARGS(data->permissions));
printf("\ttype: %s (version %d)\n", data->type, data->version);
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);
printf("\tid: %d\n", data->id);
- printf("\tpermissions: %c%c%c\n", data->permissions & PW_PERM_R ? 'r' : '-',
- data->permissions & PW_PERM_W ? 'w' : '-',
- data->permissions & PW_PERM_X ? 'x' : '-');
+ printf("\tpermissions: "PW_PERMISSION_FORMAT"\n",
+ PW_PERMISSION_ARGS(data->permissions));
printf("\ttype: %s (version %d)\n", data->type, data->version);
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);
printf("\tid: %d\n", data->id);
- printf("\tpermissions: %c%c%c\n", data->permissions & PW_PERM_R ? 'r' : '-',
- data->permissions & PW_PERM_W ? 'w' : '-',
- data->permissions & PW_PERM_X ? 'x' : '-');
+ printf("\tpermissions: "PW_PERMISSION_FORMAT"\n",
+ PW_PERMISSION_ARGS(data->permissions));
printf("\ttype: %s (version %d)\n", data->type, data->version);
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("\tpermissions: %c%c%c\n", data->permissions & PW_PERM_R ? 'r' : '-',
- data->permissions & PW_PERM_W ? 'w' : '-',
- data->permissions & PW_PERM_X ? 'x' : '-');
+ printf("\tpermissions: "PW_PERMISSION_FORMAT"\n",
+ PW_PERMISSION_ARGS(data->permissions));
printf("\ttype: %s (version %d)\n", data->type, data->version);
if (print_all) {
@@ -617,9 +610,8 @@ static void registry_event_global(void *data, uint32_t id,
} else {
printf("added:\n");
printf("\tid: %u\n", id);
- printf("\tpermissions: %c%c%c\n", permissions & PW_PERM_R ? 'r' : '-',
- permissions & PW_PERM_W ? 'w' : '-',
- permissions & PW_PERM_X ? 'x' : '-');
+ printf("\tpermissions: "PW_PERMISSION_FORMAT"\n",
+ PW_PERMISSION_ARGS(permissions));
printf("\ttype: %s (version %d)\n", type, version);
print_properties(props, ' ');
return;