diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2006-02-24 18:40:27 +0000 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2006-02-24 18:40:27 +0000 |
commit | 12100721445e1651a5b8d58f4b5c8190de8d517e (patch) | |
tree | 5bbd8679e84694b51c619c74c061e66262ef01d6 /hcid/dbus-device.c | |
parent | d2bc437c04a2048856ba3edc54b9553bfdbd6e55 (diff) |
Store the minor class changes
Diffstat (limited to 'hcid/dbus-device.c')
-rw-r--r-- | hcid/dbus-device.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/hcid/dbus-device.c b/hcid/dbus-device.c index a9313505..d44c1cfc 100644 --- a/hcid/dbus-device.c +++ b/hcid/dbus-device.c @@ -486,6 +486,7 @@ static DBusMessage *handle_dev_set_minor_class_req(DBusMessage *msg, void *data) DBusConnection *connection = get_dbus_connection(); DBusMessageIter iter; DBusMessage *reply, *signal; + bdaddr_t bdaddr; const char *minor; uint8_t cls[3]; uint32_t dev_class = 0xFFFFFFFF; @@ -524,6 +525,14 @@ static DBusMessage *handle_dev_set_minor_class_req(DBusMessage *msg, void *data) dev_class |= (cls[2] << 16) | (cls[1] << 8); + cls[2] = 0x00; /* no service classes */ + cls[1] = 0x01; /* major class computer */ + cls[0] = (dev_class & 0xff); + + hci_devba(dbus_data->dev_id, &bdaddr); + + write_local_class(&bdaddr, cls); + if (hci_write_class_of_dev(dd, dev_class, 2000) < 0) { syslog(LOG_ERR, "Can't write class of device on hci%d: %s(%d)", dbus_data->dev_id, strerror(errno), errno); |