diff options
Diffstat (limited to 'hcid/passkey-agent.c')
-rw-r--r-- | hcid/passkey-agent.c | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/hcid/passkey-agent.c b/hcid/passkey-agent.c index b2abb108..430581bb 100644 --- a/hcid/passkey-agent.c +++ b/hcid/passkey-agent.c @@ -91,9 +91,11 @@ static DBusHandlerResult request_message(DBusConnection *conn, reply = dbus_message_new_method_return(msg); if (!reply) { fprintf(stderr, "Can't create reply message\n"); - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + return DBUS_HANDLER_RESULT_NEED_MEMORY; } + printf("Passkey request for device %s\n", address); + dbus_message_append_args(reply, DBUS_TYPE_STRING, &passkey, DBUS_TYPE_INVALID); @@ -122,14 +124,14 @@ static DBusHandlerResult confirm_message(DBusConnection *conn, return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } + printf("Confirm request for device %s\n", address); + reply = dbus_message_new_method_return(msg); if (!reply) { fprintf(stderr, "Can't create reply message\n"); - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + return DBUS_HANDLER_RESULT_NEED_MEMORY; } - dbus_message_append_args(reply, DBUS_TYPE_INVALID); - dbus_connection_send(conn, reply, NULL); dbus_connection_flush(conn); @@ -143,15 +145,23 @@ static DBusHandlerResult cancel_message(DBusConnection *conn, DBusMessage *msg, void *data) { DBusMessage *reply; + const char *path, *address; + + if (!dbus_message_get_args(msg, NULL, + DBUS_TYPE_STRING, &path, DBUS_TYPE_STRING, &address, + DBUS_TYPE_INVALID)) { + fprintf(stderr, "Invalid arguments for passkey Confirm method"); + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + + printf("Request canceled for device %s\n", address); reply = dbus_message_new_method_return(msg); if (!reply) { fprintf(stderr, "Can't create reply message\n"); - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + return DBUS_HANDLER_RESULT_NEED_MEMORY; } - dbus_message_append_args(reply, DBUS_TYPE_INVALID); - dbus_connection_send(conn, reply, NULL); dbus_connection_flush(conn); @@ -179,11 +189,9 @@ static DBusHandlerResult release_message(DBusConnection *conn, reply = dbus_message_new_method_return(msg); if (!reply) { fprintf(stderr, "Can't create reply message\n"); - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + return DBUS_HANDLER_RESULT_NEED_MEMORY; } - dbus_message_append_args(reply, DBUS_TYPE_INVALID); - dbus_connection_send(conn, reply, NULL); dbus_connection_flush(conn); |