mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-01 22:58:50 -04:00
module-access: make access.allowed an array
Reformat the config file a little
This commit is contained in:
parent
ab4223601f
commit
b8ef0fc5bb
2 changed files with 48 additions and 25 deletions
|
|
@ -47,13 +47,13 @@ modules = {
|
|||
# If ifexists is given, the module is ignoed when it is not found.
|
||||
# If nofail is given, module initialization failures are ignored.
|
||||
#
|
||||
libpipewire-module-rtkit = { "#args" = { nice.level = -11
|
||||
rt.prio = 20
|
||||
rt.time.soft = 200000
|
||||
rt.time.hard = 200000
|
||||
}
|
||||
"flags" = "ifexists|nofail"
|
||||
}
|
||||
libpipewire-module-rtkit = {
|
||||
"#args" = { nice.level = -11
|
||||
rt.prio = 20
|
||||
rt.time.soft = 200000
|
||||
rt.time.hard = 200000 }
|
||||
"flags" = "ifexists|nofail"
|
||||
}
|
||||
libpipewire-module-protocol-native = null
|
||||
libpipewire-module-profiler = null
|
||||
libpipewire-module-metadata = null
|
||||
|
|
@ -62,7 +62,18 @@ modules = {
|
|||
libpipewire-module-client-node = null
|
||||
libpipewire-module-client-device = null
|
||||
libpipewire-module-portal = null
|
||||
libpipewire-module-access = { "#args" = { access.allowed = @media_session_path@ access.force = flatpak" } }
|
||||
libpipewire-module-access = {
|
||||
"#args" = {
|
||||
# access.allowed to list an array of paths of allowed
|
||||
# apps.
|
||||
access.allowed = [
|
||||
@media_session_path@
|
||||
]
|
||||
# anything not in the above lists gets assigned the
|
||||
# access.force permission.
|
||||
access.force = flatpak
|
||||
}
|
||||
}
|
||||
libpipewire-module-adapter = null
|
||||
libpipewire-module-link-factory = null
|
||||
libpipewire-module-session-manager = null
|
||||
|
|
@ -84,11 +95,12 @@ objects = {
|
|||
|
||||
# A default dummy driver. This handles nodes marked with the "node.always-driver"
|
||||
# property when no other driver is currently active. JACK clients need this.
|
||||
spa-node-factory = { args = { factory.name = support.node.driver
|
||||
node.name = Dummy-Driver
|
||||
priority.driver = 8000
|
||||
}
|
||||
}
|
||||
spa-node-factory = {
|
||||
args = { factory.name = support.node.driver
|
||||
node.name = Dummy-Driver
|
||||
priority.driver = 8000
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
exec = {
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@
|
|||
#include "config.h"
|
||||
|
||||
#include <spa/utils/result.h>
|
||||
#include <spa/utils/json.h>
|
||||
|
||||
#include <pipewire/impl.h>
|
||||
#include <pipewire/private.h>
|
||||
|
|
@ -62,29 +63,39 @@ struct impl {
|
|||
|
||||
static int check_cmdline(struct pw_impl_client *client, int pid, const char *str)
|
||||
{
|
||||
char path[2048];
|
||||
char path[2048], key[1024];
|
||||
ssize_t len;
|
||||
int fd;
|
||||
int fd, res;
|
||||
struct spa_json it[2];
|
||||
|
||||
sprintf(path, "/proc/%u/cmdline", pid);
|
||||
|
||||
fd = open(path, O_RDONLY);
|
||||
if (fd < 0)
|
||||
return -errno;
|
||||
|
||||
if (fd < 0) {
|
||||
res = -errno;
|
||||
goto exit;
|
||||
}
|
||||
if ((len = read(fd, path, sizeof(path)-1)) < 0) {
|
||||
close(fd);
|
||||
return -errno;
|
||||
res = -errno;
|
||||
goto exit_close;
|
||||
}
|
||||
path[len] = '\0';
|
||||
|
||||
if (strcmp(path, str) == 0) {
|
||||
close(fd);
|
||||
return 1;
|
||||
}
|
||||
spa_json_init(&it[0], str, strlen(str));
|
||||
if ((res = spa_json_enter_array(&it[0], &it[1])) <= 0)
|
||||
goto exit_close;
|
||||
|
||||
while (spa_json_get_string(&it[1], key, sizeof(key)) > 0) {
|
||||
if (strcmp(path, key) == 0) {
|
||||
res = 1;
|
||||
goto exit_close;
|
||||
}
|
||||
}
|
||||
res = 0;
|
||||
exit_close:
|
||||
close(fd);
|
||||
return 0;
|
||||
exit:
|
||||
return res;
|
||||
}
|
||||
|
||||
static int check_flatpak(struct pw_impl_client *client, int pid)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue