From ebea63ad0a292b75aa7b793e23024d1de967ffac Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 4 Sep 2017 20:19:27 +0200 Subject: [PATCH] client: set ucred properties --- src/modules/module-jack.c | 5 ----- src/modules/module-protocol-native.c | 8 +++++++- src/pipewire/client.c | 12 ++++++++++++ 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/modules/module-jack.c b/src/modules/module-jack.c index 7d56c2519..f19182369 100644 --- a/src/modules/module-jack.c +++ b/src/modules/module-jack.c @@ -1038,11 +1038,6 @@ static struct client *client_new(struct impl *impl, int fd) if (properties == NULL) goto no_props; - if (ucredp) { - pw_properties_setf(properties, "application.process.id", "%d", ucredp->pid); - pw_properties_setf(properties, "application.process.userid", "%d", ucredp->uid); - } - client = pw_client_new(impl->core, pw_module_get_global(impl->module), ucredp, properties, sizeof(struct client)); if (client == NULL) diff --git a/src/modules/module-protocol-native.c b/src/modules/module-protocol-native.c index 4eef16c4d..acf121934 100644 --- a/src/modules/module-protocol-native.c +++ b/src/modules/module-protocol-native.c @@ -230,6 +230,7 @@ static struct pw_client *client_new(struct server *s, int fd) socklen_t len; struct ucred ucred, *ucredp; struct pw_core *core = protocol->core; + struct pw_properties *props; len = sizeof(ucred); if (getsockopt(fd, SOL_SOCKET, SO_PEERCRED, &ucred, &len) < 0) { @@ -239,10 +240,14 @@ static struct pw_client *client_new(struct server *s, int fd) ucredp = &ucred; } + props = pw_properties_new("pipewire.protocol", "protocol-native", NULL); + if (props == NULL) + goto no_props; + client = pw_client_new(protocol->core, pw_module_get_global(pd->module), ucredp, - NULL, + props, sizeof(struct client_data)); if (client == NULL) goto no_client; @@ -272,6 +277,7 @@ static struct pw_client *client_new(struct server *s, int fd) no_source: pw_client_destroy(client); no_client: + no_props: return NULL; } diff --git a/src/pipewire/client.c b/src/pipewire/client.c index 16a8fe9d3..20ab8621c 100644 --- a/src/pipewire/client.c +++ b/src/pipewire/client.c @@ -108,6 +108,18 @@ struct pw_client *pw_client_new(struct pw_core *core, this->core = core; if ((this->ucred_valid = (ucred != NULL))) this->ucred = *ucred; + + if (properties == NULL) + properties = pw_properties_new(NULL, NULL); + if (properties == NULL) + return NULL; + + if (ucred) { + pw_properties_setf(properties, "pipewire.ucred.pid", "%d", ucred->pid); + pw_properties_setf(properties, "pipewire.ucred.uid", "%d", ucred->uid); + pw_properties_setf(properties, "pipewire.ucred.gid", "%d", ucred->gid); + } + this->properties = properties; if (user_data_size > 0)