mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
jack: Assign unique name to client_name
First try to make a unique node name and then assign this as the client_name. This ensures we can detect a client name change because of a name conflict and we properly handle the JackNameNotUnique and JackUseExactName client open options. Also emit a new client event when the client name existed but was from another client and we made a unique name. Fixes #2833
This commit is contained in:
parent
249cf9bfbe
commit
5485db09dc
1 changed files with 6 additions and 7 deletions
|
|
@ -2925,7 +2925,7 @@ static void registry_event_global(void *data, uint32_t id,
|
|||
struct client *c = (struct client *) data;
|
||||
struct object *o, *ot, *op;
|
||||
const char *str;
|
||||
bool is_first = false;
|
||||
bool is_first = true;
|
||||
uint32_t serial;
|
||||
|
||||
if (props == NULL)
|
||||
|
|
@ -2950,12 +2950,6 @@ static void registry_event_global(void *data, uint32_t id,
|
|||
|
||||
node_name = spa_dict_lookup(props, PW_KEY_NODE_NAME);
|
||||
|
||||
if (id == c->node_id) {
|
||||
pw_log_debug("%p: add our node %d", c, id);
|
||||
if (node_name != NULL)
|
||||
snprintf(c->name, sizeof(c->name), "%s", node_name);
|
||||
c->serial = serial;
|
||||
}
|
||||
snprintf(o->node.node_name, sizeof(o->node.node_name),
|
||||
"%s", node_name);
|
||||
|
||||
|
|
@ -2991,6 +2985,11 @@ static void registry_event_global(void *data, uint32_t id,
|
|||
is_first = ot == NULL;
|
||||
snprintf(o->node.name, sizeof(o->node.name), "%s", tmp);
|
||||
}
|
||||
if (id == c->node_id) {
|
||||
pw_log_debug("%p: add our node %d", c, id);
|
||||
snprintf(c->name, sizeof(c->name), "%s", o->node.name);
|
||||
c->serial = serial;
|
||||
}
|
||||
|
||||
if ((str = spa_dict_lookup(props, PW_KEY_PRIORITY_SESSION)) != NULL)
|
||||
o->node.priority = pw_properties_parse_int(str);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue