diff --git a/src/device.c b/src/device.c
index 0ef95a6..516958e 100644
--- a/src/device.c
+++ b/src/device.c
gboolean secure;
};
+enum {
+ BROWSE_SDP,
+ BROWSE_GATT
+};
+
struct browse_req {
DBusMessage *msg;
struct btd_device *device;
- uint8_t bdaddr_type;
+ uint8_t type;
GSList *match_uuids;
GSList *profiles_added;
sdp_list_t *records;
}
-static void browse_request_complete(struct browse_req *req, uint8_t bdaddr_type,
- int err)
+static void browse_request_complete(struct browse_req *req, uint8_t type,
+ uint8_t bdaddr_type, int err)
{
struct btd_device *dev = req->device;
DBusMessage *reply = NULL;
- if (req->bdaddr_type != bdaddr_type)
+ if (req->type != type)
return;
if (!req->msg)
DEVICE_INTERFACE, "ServicesResolved");
}
-static void device_svc_resolved(struct btd_device *dev, uint8_t bdaddr_type,
- int err)
+static void device_svc_resolved(struct btd_device *dev, uint8_t browse_type,
+ uint8_t bdaddr_type, int err)
{
struct bearer_state *state = get_state(dev, bdaddr_type);
struct browse_req *req = dev->browse;
if (!req)
return;
- browse_request_complete(req, bdaddr_type, err);
+ browse_request_complete(req, browse_type, bdaddr_type, err);
}
static struct bonding_req *bonding_request_new(DBusMessage *msg,
DEVICE_INTERFACE, "UUIDs");
send_reply:
- device_svc_resolved(device, BDADDR_BREDR, err);
+ device_svc_resolved(device, BROWSE_SDP, BDADDR_BREDR, err);
}
static void browse_cb(sdp_list_t *recs, int err, gpointer user_data)
DBG("status: %s, error: %u", success ? "success" : "failed", att_ecode);
if (!success) {
- device_svc_resolved(device, device->bdaddr_type, -EIO);
+ device_svc_resolved(device, BROWSE_GATT, device->bdaddr_type,
+ -EIO);
return;
}
btd_gatt_client_ready(device->client_dbus);
- device_svc_resolved(device, device->bdaddr_type, 0);
+ device_svc_resolved(device, BROWSE_GATT, device->bdaddr_type, 0);
store_gatt_db(device);
}
if (device->browse)
browse_request_complete(device->browse,
+ BROWSE_GATT,
device->bdaddr_type,
-ECONNABORTED);
}
static struct browse_req *browse_request_new(struct btd_device *device,
- uint8_t bdaddr_type,
+ uint8_t type,
DBusMessage *msg)
{
struct browse_req *req;
req = g_new0(struct browse_req, 1);
req->device = device;
- req->bdaddr_type = bdaddr_type;
+ req->type = type;
device->browse = req;
struct btd_adapter *adapter = device->adapter;
struct browse_req *req;
- req = browse_request_new(device, device->bdaddr_type, msg);
+ req = browse_request_new(device, BROWSE_GATT, msg);
if (!req)
return -EBUSY;
* Services have already been discovered, so signal this browse
* request as resolved.
*/
- device_svc_resolved(device, device->bdaddr_type, 0);
+ device_svc_resolved(device, BROWSE_GATT, device->bdaddr_type,
+ 0);
return 0;
}
uuid_t uuid;
int err;
- req = browse_request_new(device, BDADDR_BREDR, msg);
+ req = browse_request_new(device, BROWSE_SDP, msg);
if (!req)
return -EBUSY;