From c95cdbbf157765752d7d9f8700ee721587d56f70 Mon Sep 17 00:00:00 2001 From: Claudio Takahasi Date: Wed, 21 Mar 2007 19:19:27 +0000 Subject: input: return an input error instead of forward it(from hcid). --- input/error.c | 15 +++++++-------- input/error.h | 6 +++--- input/manager.c | 52 ++++++++++++++++++++++++++++++++++++++-------------- 3 files changed, 48 insertions(+), 25 deletions(-) diff --git a/input/error.c b/input/error.c index 24492ae2..3049b47f 100644 --- a/input/error.c +++ b/input/error.c @@ -41,14 +41,6 @@ DBusHandlerResult err_unknown_device(DBusConnection *conn, "Invalid device")); } -DBusHandlerResult err_generic(DBusConnection *conn, DBusMessage *msg, - const char *name, const char *str) -{ - return send_message_and_unref(conn, - dbus_message_new_error(msg, name, str)); - -} - DBusHandlerResult err_failed(DBusConnection *conn, DBusMessage *msg, const char *str) { @@ -98,3 +90,10 @@ DBusHandlerResult err_not_supported(DBusConnection *conn, DBusMessage *msg) "The service is not supported by the remote device")); } +DBusHandlerResult err_invalid_args(DBusConnection *conn, + DBusMessage *msg, const char *str) +{ + return send_message_and_unref(conn, + dbus_message_new_error(msg, + INPUT_ERROR_INTERFACE ".InvalidArguments", str)); +} diff --git a/input/error.h b/input/error.h index 45981be5..32f080fb 100644 --- a/input/error.h +++ b/input/error.h @@ -24,9 +24,6 @@ DBusHandlerResult err_unknown_device(DBusConnection *conn, DBusMessage *msg); -DBusHandlerResult err_generic(DBusConnection *conn, DBusMessage *msg, - const char *name, const char *str); - DBusHandlerResult err_failed(DBusConnection *conn, DBusMessage *msg, const char *str); @@ -42,3 +39,6 @@ DBusHandlerResult err_does_not_exist(DBusConnection *conn, DBusMessage *msg, const char *str); DBusHandlerResult err_not_supported(DBusConnection *conn, DBusMessage *msg); + +DBusHandlerResult err_invalid_args(DBusConnection *conn, + DBusMessage *msg, const char *str); diff --git a/input/manager.c b/input/manager.c index 2ad8948e..4a973023 100644 --- a/input/manager.c +++ b/input/manager.c @@ -266,8 +266,12 @@ static void hid_record_reply(DBusPendingCall *call, void *data) dbus_error_init(&derr); if (dbus_set_error_from_message(&derr, reply)) { - err_generic(pr->conn, pr->msg, derr.name, derr.message); - error("%s: %s", derr.name, derr.message); + if (dbus_error_has_name(&derr, "org.bluez.Error.ConnectionAttemptFailed")) + err_connection_failed(pr->conn, pr->msg, derr.message); + else + err_not_supported(pr->conn, pr->msg); + + error("GetRemoteServiceRecord failed: %s(%s)", derr.name, derr.message); goto fail; } @@ -329,8 +333,12 @@ static void hid_handle_reply(DBusPendingCall *call, void *data) dbus_error_init(&derr); if (dbus_set_error_from_message(&derr, reply)) { - err_generic(pr->conn, pr->msg, derr.name, derr.message); - error("%s: %s", derr.name, derr.message); + if (dbus_error_has_name(&derr, "org.bluez.Error.ConnectionAttemptFailed")) + err_connection_failed(pr->conn, pr->msg, derr.message); + else + err_not_supported(pr->conn, pr->msg); + + error("GetRemoteServiceHandles: %s(%s)", derr.name, derr.message); goto fail; } @@ -374,8 +382,12 @@ static void pnp_record_reply(DBusPendingCall *call, void *data) dbus_error_init(&derr); if (dbus_set_error_from_message(&derr, reply)) { - err_generic(pr->conn, pr->msg, derr.name, derr.message); - error("%s: %s", derr.name, derr.message); + if (dbus_error_has_name(&derr, "org.bluez.Error.ConnectionAttemptFailed")) + err_connection_failed(pr->conn, pr->msg, derr.message); + else + err_not_supported(pr->conn, pr->msg); + + error("GetRemoteServiceRecord: %s(%s)", derr.name, derr.message); goto fail; } @@ -421,8 +433,12 @@ static void pnp_handle_reply(DBusPendingCall *call, void *data) dbus_error_init(&derr); if (dbus_set_error_from_message(&derr, reply)) { - err_generic(pr->conn, pr->msg, derr.name, derr.message); - error("%s: %s", derr.name, derr.message); + if (dbus_error_has_name(&derr, "org.bluez.Error.ConnectionAttemptFailed")) + err_connection_failed(pr->conn, pr->msg, derr.message); + else + err_not_supported(pr->conn, pr->msg); + + error("GetRemoteServiceHandles: %s(%s)", derr.name, derr.message); goto fail; } @@ -477,8 +493,12 @@ static void headset_record_reply(DBusPendingCall *call, void *data) dbus_error_init(&derr); if (dbus_set_error_from_message(&derr, reply)) { - err_generic(pr->conn, pr->msg, derr.name, derr.message); - error("%s: %s", derr.name, derr.message); + if (dbus_error_has_name(&derr, "org.bluez.Error.ConnectionAttemptFailed")) + err_connection_failed(pr->conn, pr->msg, derr.message); + else + err_not_supported(pr->conn, pr->msg); + + error("GetRemoteServiceRecord: %s(%s)", derr.name, derr.message); goto fail; } @@ -551,8 +571,12 @@ static void headset_handle_reply(DBusPendingCall *call, void *data) dbus_error_init(&derr); if (dbus_set_error_from_message(&derr, reply)) { - err_generic(pr->conn, pr->msg, derr.name, derr.message); - error("%s: %s", derr.name, derr.message); + if (dbus_error_has_name(&derr, "org.bluez.Error.ConnectionAttemptFailed")) + err_connection_failed(pr->conn, pr->msg, derr.message); + else + err_not_supported(pr->conn, pr->msg); + + error("GetRemoteServiceHandles: %s(%s)", derr.name, derr.message); goto fail; } @@ -601,7 +625,7 @@ static DBusHandlerResult manager_create_device(DBusConnection *conn, if (!dbus_message_get_args(msg, &derr, DBUS_TYPE_STRING, &addr, DBUS_TYPE_INVALID)) { - err_generic(conn, msg, derr.name, derr.message); + err_invalid_args(conn, msg, derr.message); dbus_error_free(&derr); return DBUS_HANDLER_RESULT_HANDLED; } @@ -658,7 +682,7 @@ static DBusHandlerResult manager_remove_device(DBusConnection *conn, if (!dbus_message_get_args(msg, &derr, DBUS_TYPE_STRING, &path, DBUS_TYPE_INVALID)) { - err_generic(conn, msg, derr.name, derr.message); + err_invalid_args(conn, msg, derr.message); dbus_error_free(&derr); return DBUS_HANDLER_RESULT_HANDLED; } -- cgit