diff options
Diffstat (limited to 'hcid/adapter.c')
| -rw-r--r-- | hcid/adapter.c | 5 | 
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); | 
