From 403e40597d20287316062bee423b2e1da4c0912e Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 21 Feb 2023 11:01:14 +1000 Subject: [PATCH] Replace remaining errno-based errors to proper brei_results --- src/libeis-client.c | 6 ++++-- src/libeis-connection-setup.c | 12 +++++++----- src/libeis-seat.c | 3 ++- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/libeis-client.c b/src/libeis-client.c index 0affeb2..dee74bd 100644 --- a/src/libeis-client.c +++ b/src/libeis-client.c @@ -284,8 +284,10 @@ client_msg_disconnect(struct eis_connection *connection) static struct brei_result * client_msg_sync(struct eis_connection *connection, uint32_t new_id) { - if (new_id == 0) - return brei_result_new_from_neg_errno(-EINVAL); + if (new_id == 0) { + return brei_result_new(EIS_CONNECTION_DISCONNECT_REASON_VALUE, + "Invalid object id zero for ei_connection.sync"); + } struct eis_client *client = eis_connection_get_client(connection); struct eis_callback *callback = eis_callback_new(client, new_id, client->interface_versions.ei_callback); diff --git a/src/libeis-connection-setup.c b/src/libeis-connection-setup.c index ff0fad3..0fedda5 100644 --- a/src/libeis-connection-setup.c +++ b/src/libeis-connection-setup.c @@ -91,7 +91,8 @@ client_msg_done(struct eis_connection_setup *setup) if (setup->client_versions.ei_connection == 0 || setup->client_versions.ei_callback == 0 || setup->client_versions.ei_pingpong == 0) - return brei_result_new_from_neg_errno(-EPROTO); + return brei_result_new(EIS_CONNECTION_DISCONNECT_REASON_PROTOCOL, + "Missing versions for required interfaces"); /* ei_callback needs a client-created object, so tell the client * about our version */ @@ -124,7 +125,7 @@ static struct brei_result * client_msg_name(struct eis_connection_setup *setup, const char *name) { if (setup->name) - return brei_result_new_from_neg_errno(-EPROTO); + return brei_result_new(EIS_CONNECTION_DISCONNECT_REASON_PROTOCOL, "Duplicate client name"); setup->name = xstrdup(name); @@ -141,7 +142,7 @@ client_msg_context_type(struct eis_connection_setup *setup, uint32_t type) return 0; } - return brei_result_new_from_neg_errno(-EPROTO); + return brei_result_new(EIS_CONNECTION_DISCONNECT_REASON_VALUE, "Invalid context type %u", type); } static struct brei_result * @@ -174,14 +175,15 @@ client_msg_interface_version(struct eis_connection_setup *setup, const char *nam log_debug(eis, "client %#x supports %s version %u", client->id, name, version); if (version == 0) - return brei_result_new_from_neg_errno(-EPROTO); + return brei_result_new(EIS_CONNECTION_DISCONNECT_REASON_VALUE, "Invalid %s version %u", name, version); struct v *v; ARRAY_FOR_EACH(version_map, v) { if (streq(v->name, name)) { /* Versions must not be set twice */ if (*v->client_version != 0) - return brei_result_new_from_neg_errno(-EPROTO); + return brei_result_new(EIS_CONNECTION_DISCONNECT_REASON_PROTOCOL, + "Duplicate %s version", name); *v->client_version = min(*v->server_version, version); return 0; } diff --git a/src/libeis-seat.c b/src/libeis-seat.c index fd24218..79ec9f0 100644 --- a/src/libeis-seat.c +++ b/src/libeis-seat.c @@ -106,7 +106,8 @@ client_msg_bind(struct eis_seat *seat, uint32_t caps) allowed_caps |= EIS_SEAT_CAPABILITIES_TOUCHSCREEN; if (caps & ~allowed_caps) - return brei_result_new_from_neg_errno(-EINVAL); + return brei_result_new(EIS_CONNECTION_DISCONNECT_REASON_VALUE, + "Invalid capabilities %#x", caps); eis_seat_bind(seat, caps);