mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-02 09:01:50 -05:00
pw-link: Improve error message if ports are not found
In a scenario where pw-link is called without a session manager running, the output port on a node will not exist. In such a case, we broke out of the for loop with all_links_exist set to true and returning EEXIST. The return of EEXIST gives a confusing error message. Fix this.
This commit is contained in:
parent
4574678424
commit
05a133f5b5
1 changed files with 13 additions and 2 deletions
|
|
@ -400,8 +400,16 @@ static int do_link_ports(struct data *data)
|
|||
struct object *port_out = find_node_port(data, out_node, PW_DIRECTION_OUTPUT, port_id);
|
||||
struct object *port_in = find_node_port(data, in_node, PW_DIRECTION_INPUT, port_id);
|
||||
|
||||
if (!port_out || !port_in)
|
||||
break;
|
||||
if (!port_out && !port_in) {
|
||||
fprintf(stderr, "Input & output port do not exist\n");
|
||||
goto no_port;
|
||||
} else if (!port_in) {
|
||||
fprintf(stderr, "Input port does not exist\n");
|
||||
goto no_port;
|
||||
} else if (!port_out) {
|
||||
fprintf(stderr, "Output port does not exist\n");
|
||||
goto no_port;
|
||||
}
|
||||
|
||||
pw_properties_setf(data->props, PW_KEY_LINK_OUTPUT_PORT, "%u", port_out->id);
|
||||
pw_properties_setf(data->props, PW_KEY_LINK_INPUT_PORT, "%u", port_in->id);
|
||||
|
|
@ -422,6 +430,9 @@ static int do_link_ports(struct data *data)
|
|||
pw_properties_setf(data->props, PW_KEY_LINK_INPUT_PORT, "%u", in_port);
|
||||
|
||||
return create_link(data);
|
||||
|
||||
no_port:
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
static int do_unlink_ports(struct data *data)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue