diff options
Diffstat (limited to 'hcid/device.c')
-rw-r--r-- | hcid/device.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/hcid/device.c b/hcid/device.c index 706dcc1d..f94c610c 100644 --- a/hcid/device.c +++ b/hcid/device.c @@ -1058,15 +1058,16 @@ static DBusMessage *discover_services(DBusConnection *conn, goto fail; if (strlen(pattern) == 0) { - err = device_browse(device, conn, msg, 0); + err = device_browse(device, conn, msg, NULL); if (err < 0) goto fail; } else { - search = bt_string2class(pattern); - if (!search) + uuid_t uuid; + + if (bt_string2uuid(&uuid, pattern) < 0) return invalid_args(msg); - err = device_browse(device, conn, msg, search); + err = device_browse(device, conn, msg, &uuid); if (err < 0) goto fail; } @@ -1538,7 +1539,7 @@ cleanup: } int device_browse(struct device *device, DBusConnection *conn, - DBusMessage *msg, uint16_t search) + DBusMessage *msg, uuid_t *search) { struct adapter *adapter = device->adapter; struct browse_req *req; @@ -1559,7 +1560,7 @@ int device_browse(struct device *device, DBusConnection *conn, str2ba(device->address, &dst); if (search) { - sdp_uuid16_create(&uuid, search); + memcpy(&uuid, search, sizeof(uuid_t)); req->browse = FALSE; } else { sdp_uuid16_create(&uuid, uuid_list[req->search_uuid]); @@ -1568,8 +1569,8 @@ int device_browse(struct device *device, DBusConnection *conn, device->discov_active = 1; device->discov_requestor = g_strdup(dbus_message_get_sender(msg)); - /* track the request owner to cancel it automatically if the owner - * exits */ + /* Track the request owner to cancel it + * automatically if the owner exits */ device->discov_listener = g_dbus_add_disconnect_watch(conn, dbus_message_get_sender(msg), discover_services_req_exit, |