mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-02 09:01:50 -05:00
return ENOENT for unknown resources
Fix some other errors as well, ENOSYS for invalid interface, ENOTSUP for unimplemented methods.
This commit is contained in:
parent
12d831fc39
commit
387009e0d6
4 changed files with 6 additions and 6 deletions
|
|
@ -204,19 +204,19 @@ process_messages(struct client_data *data)
|
||||||
resource = pw_impl_client_find_resource(client, msg->id);
|
resource = pw_impl_client_find_resource(client, msg->id);
|
||||||
if (resource == NULL) {
|
if (resource == NULL) {
|
||||||
pw_resource_errorf(client->core_resource,
|
pw_resource_errorf(client->core_resource,
|
||||||
-EINVAL, "unknown resource %u op:%u", msg->id, msg->opcode);
|
-ENOENT, "unknown resource %u op:%u", msg->id, msg->opcode);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
marshal = pw_resource_get_marshal(resource);
|
marshal = pw_resource_get_marshal(resource);
|
||||||
if (marshal == NULL || msg->opcode >= marshal->n_client_methods) {
|
if (marshal == NULL || msg->opcode >= marshal->n_client_methods) {
|
||||||
res = -EINVAL;
|
res = -ENOSYS;
|
||||||
goto invalid_method;
|
goto invalid_method;
|
||||||
}
|
}
|
||||||
|
|
||||||
demarshal = marshal->server_demarshal;
|
demarshal = marshal->server_demarshal;
|
||||||
if (!demarshal[msg->opcode].func) {
|
if (!demarshal[msg->opcode].func) {
|
||||||
res = -ENOENT;
|
res = -ENOTSUP;
|
||||||
goto invalid_message;
|
goto invalid_message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -649,7 +649,7 @@ static int core_method_demarshal_destroy(void *object, const struct pw_protocol_
|
||||||
|
|
||||||
no_resource:
|
no_resource:
|
||||||
pw_log_debug("client %p: unknown resource %u op:%u", client, id, msg->opcode);
|
pw_log_debug("client %p: unknown resource %u op:%u", client, id, msg->opcode);
|
||||||
pw_resource_errorf(resource, -EINVAL, "unknown resource %d op:%u", id, msg->opcode);
|
pw_resource_errorf(resource, -ENOENT, "unknown resource %d op:%u", id, msg->opcode);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -747,7 +747,7 @@ static int core_demarshal_destroy(void *object, const struct pw_protocol_native_
|
||||||
|
|
||||||
no_resource:
|
no_resource:
|
||||||
pw_log_error("client %p: unknown resource %u op:%u", client, id, msg->opcode);
|
pw_log_error("client %p: unknown resource %u op:%u", client, id, msg->opcode);
|
||||||
pw_resource_errorf(resource, -EINVAL, "unknown resource %d op:%u", id, msg->opcode);
|
pw_resource_errorf(resource, -ENOENT, "unknown resource %d op:%u", id, msg->opcode);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,7 @@ error_no_id:
|
||||||
goto error_exit_clean;
|
goto error_exit_clean;
|
||||||
error_wrong_interface:
|
error_wrong_interface:
|
||||||
pw_log_debug("registry %p: global with id %u has no interface %s", resource, id, type);
|
pw_log_debug("registry %p: global with id %u has no interface %s", resource, id, type);
|
||||||
pw_resource_errorf_id(resource, new_id, -ENOENT, "no interface %s", type);
|
pw_resource_errorf_id(resource, new_id, -ENOSYS, "no interface %s", type);
|
||||||
goto error_exit_clean;
|
goto error_exit_clean;
|
||||||
error_exit_clean:
|
error_exit_clean:
|
||||||
/* unmark the new_id the map, the client does not yet know about the failed
|
/* unmark the new_id the map, the client does not yet know about the failed
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue