summaryrefslogtreecommitdiffstats
path: root/hcid/device.c
diff options
context:
space:
mode:
Diffstat (limited to 'hcid/device.c')
-rw-r--r--hcid/device.c17
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,