diff options
author | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2022-08-01 17:05:36 -0700 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2022-08-02 09:34:01 -0700 |
commit | a65ddf710584f2b3dad04fb5e3d725ba340ea1ef (patch) | |
tree | 00a4f11208a14a3ba3e79c9df1da2940dfd02449 /plugins | |
parent | 7adb3aa7efc3d70381c411c031f579ff63786994 (diff) | |
download | bluez-a65ddf710584f2b3dad04fb5e3d725ba340ea1ef.tar.gz |
sixaxis: Fix fliping device.trusted automatically
device.trusted is a user preference which controls if the devices needs
to be authorized or not so the plugin shall not overwrite it and instead
just honor what user has set and skip authorizing if already trusted.
Fixes: https://github.com/bluez/bluez/issues/372
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/sixaxis.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/plugins/sixaxis.c b/plugins/sixaxis.c index 10cf15948..544ab399a 100644 --- a/plugins/sixaxis.c +++ b/plugins/sixaxis.c @@ -294,7 +294,6 @@ static void agent_auth_cb(DBusError *derr, void *user_data) } remove_device = false; - btd_device_set_trusted(closure->device, true); btd_device_set_temporary(closure->device, false); if (closure->type == CABLE_PAIRING_SIXAXIS) @@ -336,10 +335,9 @@ static bool setup_device(int fd, const char *sysfs_path, * connected eg. to charge up battery. */ device = btd_adapter_find_device(adapter, &device_bdaddr, BDADDR_BREDR); - if (device != NULL && - btd_device_is_connected(device) && - g_slist_find_custom(btd_device_get_uuids(device), HID_UUID, - (GCompareFunc)strcasecmp)) { + if (device && btd_device_has_uuid(device, HID_UUID) && + (btd_device_is_connected(device) || + btd_device_is_trusted(device))) { char device_addr[18]; ba2str(&device_bdaddr, device_addr); DBG("device %s already known, skipping", device_addr); @@ -352,7 +350,6 @@ static bool setup_device(int fd, const char *sysfs_path, btd_device_device_set_name(device, cp->name); btd_device_set_pnpid(device, cp->source, cp->vid, cp->pid, cp->version); - btd_device_set_trusted(device, false); btd_device_set_temporary(device, true); closure = g_new0(struct authentication_closure, 1); |