mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-03 09:01:54 -05:00
improve error messages
Send create_object error messages to the new resource id so that the client can better know what proxy is failing. Use resource_remove when create_object fails because the core will already send a remove_id on failure. Try to send other errors to the proxy that made the request if possible.
This commit is contained in:
parent
b96daabb2f
commit
65d72bb87c
9 changed files with 40 additions and 33 deletions
|
|
@ -200,7 +200,7 @@ process_messages(struct client_data *data)
|
|||
required = demarshal[msg->opcode].permissions | PW_PERM_X;
|
||||
|
||||
if ((required & permissions) != required) {
|
||||
pw_resource_errorf(resource,
|
||||
pw_resource_errorf_id(resource, msg->id,
|
||||
-EACCES, "no permission to call method %u on %u (requires %08x, have %08x)",
|
||||
msg->opcode, msg->id, required, permissions);
|
||||
continue;
|
||||
|
|
@ -215,17 +215,18 @@ done:
|
|||
return res;
|
||||
|
||||
invalid_method:
|
||||
pw_resource_errorf(resource, res, "invalid method id:%u op:%u",
|
||||
pw_resource_errorf_id(resource, msg->id, res, "invalid method id:%u op:%u",
|
||||
msg->id, msg->opcode);
|
||||
goto done;
|
||||
invalid_message:
|
||||
pw_resource_errorf(resource, res, "invalid message received id:%u op:%u (%s)",
|
||||
pw_resource_errorf_id(resource, msg->id, res, "invalid message id:%u op:%u (%s)",
|
||||
msg->id, msg->opcode, spa_strerror(res));
|
||||
debug_msg("*invalid message*", msg, true);
|
||||
goto done;
|
||||
error:
|
||||
pw_resource_errorf(client->core_resource, res, "client error %d (%s)",
|
||||
res, spa_strerror(res));
|
||||
if (client->core_resource)
|
||||
pw_resource_errorf(client->core_resource, res, "client error %d (%s)",
|
||||
res, spa_strerror(res));
|
||||
goto done;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue