summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--hcid/adapter.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/hcid/adapter.c b/hcid/adapter.c
index a17ee5eb..3214820e 100644
--- a/hcid/adapter.c
+++ b/hcid/adapter.c
@@ -3764,7 +3764,7 @@ static DBusHandlerResult request_mode(DBusConnection *conn,
return error_invalid_arguments(conn, msg, NULL);
/* No need to change mode */
- if (adapter->mode > new_mode) {
+ if (adapter->mode >= new_mode) {
reply = dbus_message_new_method_return(msg);
if (!reply)
return DBUS_HANDLER_RESULT_NEED_MEMORY;
@@ -3772,6 +3772,9 @@ static DBusHandlerResult request_mode(DBusConnection *conn,
return send_message_and_unref(conn, reply);
}
+ if (!adapter->agent)
+ return error_failed(conn, msg, "No agent registered");
+
req = g_new0(struct mode_req, 1);
req->adapter = adapter;
req->conn = dbus_connection_ref(conn);