Fix device address type tracking

This commit is contained in:
Johan Hedberg 2011-12-23 13:00:55 +02:00
parent 214087d7de
commit b06899eace
16 changed files with 128 additions and 97 deletions

View File

@ -151,7 +151,7 @@ static void gatt_get_address(struct gatt_service *gatt,
adapter = device_get_adapter(device);
adapter_get_address(adapter, sba);
device_get_address(device, dba);
device_get_address(device, dba, NULL);
}
static int characteristic_handle_cmp(gconstpointer a, gconstpointer b)

View File

@ -778,7 +778,7 @@ static int audio_probe(struct btd_device *device, GSList *uuids)
struct audio_device *audio_dev;
adapter_get_address(adapter, &src);
device_get_address(device, &dst);
device_get_address(device, &dst, NULL);
audio_dev = manager_get_device(&src, &dst, TRUE);
if (!audio_dev) {

View File

@ -222,7 +222,7 @@ static gint cmp_dev_addr(gconstpointer a, gconstpointer dst)
const struct hdp_device *device = a;
bdaddr_t addr;
device_get_address(device->dev, &addr);
device_get_address(device->dev, &addr, NULL);
return bacmp(&addr, dst);
}

View File

@ -859,7 +859,7 @@ gboolean hdp_get_mdep(struct hdp_device *device, struct hdp_application *app,
bdaddr_t dst, src;
uuid_t uuid;
device_get_address(device->dev, &dst);
device_get_address(device->dev, &dst, NULL);
adapter_get_address(device_get_adapter(device->dev), &src);
mdep_data = g_new0(struct get_mdep_data, 1);
@ -1065,7 +1065,7 @@ static void search_cb(sdp_list_t *recs, int err, gpointer user_data)
conn_data = con_mcl_data_ref(conn_data);
device_get_address(conn_data->dev->dev, &dst);
device_get_address(conn_data->dev->dev, &dst, NULL);
if (!mcap_create_mcl(conn_data->dev->hdp_adapter->mi, &dst, ccpsm,
create_mcl_cb, conn_data,
destroy_con_mcl_data, &gerr)) {
@ -1088,7 +1088,7 @@ gboolean hdp_establish_mcl(struct hdp_device *device,
bdaddr_t dst, src;
uuid_t uuid;
device_get_address(device->dev, &dst);
device_get_address(device->dev, &dst, NULL);
adapter_get_address(device_get_adapter(device->dev), &src);
conn_data = g_new0(struct conn_mcl_data, 1);
@ -1158,7 +1158,7 @@ gboolean hdp_get_dcpsm(struct hdp_device *device, hdp_continue_dcpsm_f func,
bdaddr_t dst, src;
uuid_t uuid;
device_get_address(device->dev, &dst);
device_get_address(device->dev, &dst, NULL);
adapter_get_address(device_get_adapter(device->dev), &src);
dcpsm_data = g_new0(struct get_dcpsm_data, 1);

View File

@ -69,7 +69,7 @@ static int hid_device_probe(struct btd_device *device, GSList *uuids)
return -1;
adapter_get_address(adapter, &src);
device_get_address(device, &dst);
device_get_address(device, &dst, NULL);
return input_device_register(connection, device, path, &src, &dst,
HID_UUID, rec->handle, idle_timeout * 60);
@ -112,7 +112,7 @@ static int headset_probe(struct btd_device *device, GSList *uuids)
}
adapter_get_address(adapter, &src);
device_get_address(device, &dst);
device_get_address(device, &dst, NULL);
return fake_input_register(connection, device, path, &src, &dst,
HSP_HS_UUID, ch);

View File

@ -80,7 +80,7 @@ static int network_probe(struct btd_device *device, GSList *uuids, uint16_t id)
DBG("path %s", path);
adapter_get_address(adapter, &src);
device_get_address(device, &dst);
device_get_address(device, &dst, NULL);
return connection_register(device, path, &src, &dst, id);
}

View File

@ -1868,8 +1868,8 @@ static inline void inquiry_result(int index, int plen, void *ptr)
(info->dev_class[1] << 8) |
(info->dev_class[2] << 16);
btd_event_device_found(&dev->bdaddr, &info->bdaddr, class,
0, 0, NULL, 0);
btd_event_device_found(&dev->bdaddr, &info->bdaddr,
ADDR_TYPE_BREDR, class, 0, 0, NULL, 0);
ptr += INQUIRY_INFO_SIZE;
}
}
@ -1891,7 +1891,8 @@ static inline void inquiry_result_with_rssi(int index, int plen, void *ptr)
| (info->dev_class[2] << 16);
btd_event_device_found(&dev->bdaddr, &info->bdaddr,
class, info->rssi, 0, NULL, 0);
ADDR_TYPE_BREDR, class,
info->rssi, 0, NULL, 0);
ptr += INQUIRY_INFO_WITH_RSSI_AND_PSCAN_MODE_SIZE;
}
} else {
@ -1902,7 +1903,8 @@ static inline void inquiry_result_with_rssi(int index, int plen, void *ptr)
| (info->dev_class[2] << 16);
btd_event_device_found(&dev->bdaddr, &info->bdaddr,
class, info->rssi, 0, NULL, 0);
ADDR_TYPE_BREDR, class,
info->rssi, 0, NULL, 0);
ptr += INQUIRY_INFO_WITH_RSSI_SIZE;
}
}
@ -1920,9 +1922,9 @@ static inline void extended_inquiry_result(int index, int plen, void *ptr)
| (info->dev_class[1] << 8)
| (info->dev_class[2] << 16);
btd_event_device_found(&dev->bdaddr, &info->bdaddr, class,
info->rssi, 0, info->data,
HCI_MAX_EIR_LENGTH);
btd_event_device_found(&dev->bdaddr, &info->bdaddr,
ADDR_TYPE_BREDR, class, info->rssi,
0, info->data, HCI_MAX_EIR_LENGTH);
ptr += EXTENDED_INQUIRY_INFO_SIZE;
}
}
@ -2137,6 +2139,17 @@ static inline void conn_request(int index, void *ptr)
btd_event_remote_class(&dev->bdaddr, &evt->bdaddr, class);
}
static inline addr_type_t le_addr_type(uint8_t bdaddr_type)
{
switch (bdaddr_type) {
case LE_RANDOM_ADDRESS:
return ADDR_TYPE_LE_RANDOM;
case LE_PUBLIC_ADDRESS:
default:
return ADDR_TYPE_LE_PUBLIC;
}
}
static inline void le_advertising_report(int index, evt_le_meta_event *meta)
{
struct dev_info *dev = &devs[index];
@ -2149,8 +2162,9 @@ static inline void le_advertising_report(int index, evt_le_meta_event *meta)
info = (le_advertising_info *) &meta->data[1];
rssi = *(info->data + info->length);
btd_event_device_found(&dev->bdaddr, &info->bdaddr, 0, rssi,
0, info->data, info->length);
btd_event_device_found(&dev->bdaddr, &info->bdaddr,
le_addr_type(info->bdaddr_type), 0, rssi, 0,
info->data, info->length);
num_reports--;
@ -2159,8 +2173,9 @@ static inline void le_advertising_report(int index, evt_le_meta_event *meta)
RSSI_SIZE);
rssi = *(info->data + info->length);
btd_event_device_found(&dev->bdaddr, &info->bdaddr, 0, rssi,
0, info->data, info->length);
btd_event_device_found(&dev->bdaddr, &info->bdaddr,
le_addr_type(info->bdaddr_type),
0, rssi, 0, info->data, info->length);
}
}

View File

@ -1236,6 +1236,20 @@ static void mgmt_local_name_changed(int sk, uint16_t index, void *buf, size_t le
adapter_name_changed(adapter, (char *) ev->name);
}
static inline addr_type_t mgmt_addr_type(uint8_t mgmt_addr_type)
{
switch (mgmt_addr_type) {
case MGMT_ADDR_BREDR:
return ADDR_TYPE_BREDR;
case MGMT_ADDR_LE_PUBLIC:
return ADDR_TYPE_LE_PUBLIC;
case MGMT_ADDR_LE_RANDOM:
return ADDR_TYPE_LE_RANDOM;
default:
return ADDR_TYPE_BREDR;
}
}
static void mgmt_device_found(int sk, uint16_t index, void *buf, size_t len)
{
struct mgmt_ev_device_found *ev = buf;
@ -1269,9 +1283,10 @@ static void mgmt_device_found(int sk, uint16_t index, void *buf, size_t len)
DBG("hci%u addr %s, class %u rssi %d %s", index, addr, cls,
ev->rssi, eir ? "eir" : "");
btd_event_device_found(&info->bdaddr, &ev->addr.bdaddr, cls,
ev->rssi, ev->confirm_name,
eir, HCI_MAX_EIR_LENGTH);
btd_event_device_found(&info->bdaddr, &ev->addr.bdaddr,
mgmt_addr_type(ev->addr.type), cls,
ev->rssi, ev->confirm_name,
eir, HCI_MAX_EIR_LENGTH);
}
static void mgmt_remote_name(int sk, uint16_t index, void *buf, size_t len)

View File

@ -417,7 +417,7 @@ static DBusMessage *set_link_loss_alert(DBusConnection *conn, DBusMessage *msg,
monitor->linklosslevel = g_strdup(level);
adapter_get_address(device_get_adapter(device), &sba);
device_get_address(device, &dba);
device_get_address(device, &dba, NULL);
write_proximity_config(&sba, &dba, "LinkLossAlertLevel", level);
@ -592,7 +592,7 @@ int monitor_register(DBusConnection *conn, struct btd_device *device,
char *level;
adapter_get_address(device_get_adapter(device), &sba);
device_get_address(device, &dba);
device_get_address(device, &dba, NULL);
level = read_proximity_config(&sba, &dba, "LinkLossAlertLevel");

View File

@ -95,7 +95,7 @@ static int serial_probe(struct btd_device *device, const char *uuid)
}
adapter_get_address(adapter, &src);
device_get_address(device, &dst);
device_get_address(device, &dst, NULL);
return port_register(connection, path, &src, &dst, uuid, ch);
}

View File

@ -621,7 +621,7 @@ static GSList *remove_bredr(GSList *all)
for (l = all, le = NULL; l; l = l->next) {
struct remote_dev_info *dev = l->data;
if (dev->le == FALSE) {
if (dev->type == ADDR_TYPE_BREDR) {
dev_info_free(dev);
continue;
}
@ -1072,7 +1072,7 @@ void adapter_service_remove(struct btd_adapter *adapter, void *r)
static struct btd_device *adapter_create_device(DBusConnection *conn,
struct btd_adapter *adapter,
const char *address,
device_type_t type)
addr_type_t type)
{
struct btd_device *device;
const char *path;
@ -1139,7 +1139,7 @@ struct btd_device *adapter_get_device(DBusConnection *conn,
return device;
return adapter_create_device(conn, adapter, address,
DEVICE_TYPE_BREDR);
ADDR_TYPE_BREDR);
}
static int start_discovery(struct btd_adapter *adapter)
@ -1543,21 +1543,21 @@ static DBusMessage *cancel_device_creation(DBusConnection *conn,
static struct btd_device *create_device_internal(DBusConnection *conn,
struct btd_adapter *adapter,
const gchar *address, int *err)
const char *address, int *err)
{
struct remote_dev_info *dev, match;
struct btd_device *device;
device_type_t type;
addr_type_t type;
memset(&match, 0, sizeof(struct remote_dev_info));
str2ba(address, &match.bdaddr);
match.name_status = NAME_ANY;
dev = adapter_search_found_devices(adapter, &match);
if (dev && dev->le)
type = DEVICE_TYPE_LE;
if (dev)
type = dev->type;
else
type = DEVICE_TYPE_BREDR;
type = ADDR_TYPE_BREDR;
device = adapter_create_device(conn, adapter, address, type);
if (!device && err)
@ -1594,7 +1594,7 @@ static DBusMessage *create_device(DBusConnection *conn,
if (!device)
goto failed;
if (device_get_type(device) != DEVICE_TYPE_LE)
if (device_is_bredr(device))
err = device_browse_sdp(device, conn, msg, NULL, FALSE);
else
err = device_browse_primary(device, conn, msg, FALSE);
@ -1676,7 +1676,7 @@ static DBusMessage *create_paired_device(DBusConnection *conn,
return btd_error_failed(msg, strerror(-err));
}
if (device_get_type(device) != DEVICE_TYPE_LE)
if (device_is_bredr(device))
return device_create_bonding(device, conn, msg,
agent_path, cap);
@ -1874,7 +1874,7 @@ static void create_stored_device_from_profiles(char *key, char *value,
key, (GCompareFunc) device_address_cmp))
return;
device = device_create(connection, adapter, key, DEVICE_TYPE_BREDR);
device = device_create(connection, adapter, key, ADDR_TYPE_BREDR);
if (!device)
return;
@ -1946,7 +1946,7 @@ static void create_stored_device_from_linkkeys(char *key, char *value,
(GCompareFunc) device_address_cmp))
return;
device = device_create(connection, adapter, key, DEVICE_TYPE_BREDR);
device = device_create(connection, adapter, key, ADDR_TYPE_BREDR);
if (device) {
device_set_temporary(device, FALSE);
adapter->devices = g_slist_append(adapter->devices, device);
@ -1963,7 +1963,7 @@ static void create_stored_device_from_blocked(char *key, char *value,
key, (GCompareFunc) device_address_cmp))
return;
device = device_create(connection, adapter, key, DEVICE_TYPE_BREDR);
device = device_create(connection, adapter, key, ADDR_TYPE_BREDR);
if (device) {
device_set_temporary(device, FALSE);
adapter->devices = g_slist_append(adapter->devices, device);
@ -2016,7 +2016,8 @@ static void create_stored_device_from_primary(char *key, char *value,
key, (GCompareFunc) device_address_cmp))
return;
device = device_create(connection, adapter, key, DEVICE_TYPE_LE);
/* FIXME: Get the correct LE addr type (public/random) */
device = device_create(connection, adapter, key, ADDR_TYPE_LE_PUBLIC);
if (!device)
return;
@ -2782,7 +2783,7 @@ void adapter_emit_device_found(struct btd_adapter *adapter,
} else
alias = g_strdup(dev->alias);
if (dev->le) {
if (dev->type != ADDR_TYPE_BREDR) {
gboolean broadcaster;
if (dev->flags & (EIR_LIM_DISC | EIR_GEN_DISC))
@ -2820,7 +2821,7 @@ void adapter_emit_device_found(struct btd_adapter *adapter,
}
static struct remote_dev_info *found_device_new(const bdaddr_t *bdaddr,
gboolean le, const char *name,
addr_type_t type, const char *name,
const char *alias, uint32_t class,
gboolean legacy, name_status_t status,
int flags)
@ -2829,7 +2830,7 @@ static struct remote_dev_info *found_device_new(const bdaddr_t *bdaddr,
dev = g_new0(struct remote_dev_info, 1);
bacpy(&dev->bdaddr, bdaddr);
dev->le = le;
dev->type = type;
dev->name = g_strdup(name);
dev->alias = g_strdup(alias);
dev->class = class;
@ -2899,14 +2900,15 @@ static char *read_stored_data(bdaddr_t *local, bdaddr_t *peer, const char *file)
}
void adapter_update_found_devices(struct btd_adapter *adapter,
bdaddr_t *bdaddr, uint32_t class,
int8_t rssi, uint8_t confirm_name,
bdaddr_t *bdaddr, addr_type_t type,
uint32_t class, int8_t rssi,
uint8_t confirm_name,
uint8_t *data, uint8_t data_len)
{
struct remote_dev_info *dev, match;
struct eir_data eir_data;
char *alias, *name;
gboolean legacy, le;
gboolean legacy;
name_status_t name_status;
int err;
@ -2941,9 +2943,7 @@ void adapter_update_found_devices(struct btd_adapter *adapter,
name = read_stored_data(&adapter->bdaddr, bdaddr, "names");
if (eir_data.flags < 0) {
le = FALSE;
if (type == ADDR_TYPE_BREDR) {
legacy = pairing_is_legacy(&adapter->bdaddr, bdaddr, data,
name);
@ -2953,7 +2953,6 @@ void adapter_update_found_devices(struct btd_adapter *adapter,
else
name_status = NAME_NOT_REQUIRED;
} else {
le = TRUE;
legacy = FALSE;
name_status = NAME_NOT_REQUIRED;
}
@ -2972,7 +2971,7 @@ void adapter_update_found_devices(struct btd_adapter *adapter,
alias = read_stored_data(&adapter->bdaddr, bdaddr, "aliases");
dev = found_device_new(bdaddr, le, name, alias, class, legacy,
dev = found_device_new(bdaddr, type, name, alias, class, legacy,
name_status, eir_data.flags);
free(name);
free(alias);
@ -3483,7 +3482,7 @@ ssize_t btd_adapter_get_pin(struct btd_adapter *adapter, struct btd_device *dev,
}
adapter_get_address(adapter, &sba);
device_get_address(dev, &dba);
device_get_address(dev, &dba, NULL);
return read_pin_code(&sba, &dba, pin_buf);
}

View File

@ -54,6 +54,12 @@ typedef enum {
NAME_REQUESTED, /* HCI remote name request was sent */
} name_status_t;
typedef enum {
ADDR_TYPE_BREDR,
ADDR_TYPE_LE_PUBLIC,
ADDR_TYPE_LE_RANDOM,
} addr_type_t;
struct btd_adapter;
struct link_key_info {
@ -65,13 +71,13 @@ struct link_key_info {
struct remote_dev_info {
bdaddr_t bdaddr;
addr_type_t type;
int8_t rssi;
uint32_t class;
char *name;
char *alias;
dbus_bool_t legacy;
name_status_t name_status;
gboolean le;
char **uuids;
size_t uuid_count;
GSList *services;
@ -110,8 +116,9 @@ int adapter_get_state(struct btd_adapter *adapter);
struct remote_dev_info *adapter_search_found_devices(struct btd_adapter *adapter,
struct remote_dev_info *match);
void adapter_update_found_devices(struct btd_adapter *adapter,
bdaddr_t *bdaddr, uint32_t class,
int8_t rssi, uint8_t confirm_name,
bdaddr_t *bdaddr, addr_type_t type,
uint32_t class, int8_t rssi,
uint8_t confirm_name,
uint8_t *data, uint8_t data_len);
int adapter_remove_found_device(struct btd_adapter *adapter, bdaddr_t *bdaddr);
void adapter_emit_device_found(struct btd_adapter *adapter,

View File

@ -121,7 +121,7 @@ struct attio_data {
struct btd_device {
bdaddr_t bdaddr;
device_type_t type;
addr_type_t type;
gchar *path;
char name[MAX_NAME_LENGTH + 1];
char *alias;
@ -255,6 +255,16 @@ static void device_free(gpointer user_data)
g_free(device);
}
gboolean device_is_bredr(struct btd_device *device)
{
return (device->type == ADDR_TYPE_BREDR);
}
gboolean device_is_le(struct btd_device *device)
{
return (device->type != ADDR_TYPE_BREDR);
}
gboolean device_is_paired(struct btd_device *device)
{
return device->paired;
@ -970,7 +980,7 @@ static void device_set_version(struct btd_device *device, uint16_t value)
struct btd_device *device_create(DBusConnection *conn,
struct btd_adapter *adapter,
const gchar *address, device_type_t type)
const gchar *address, addr_type_t type)
{
gchar *address_up;
struct btd_device *device;
@ -1051,11 +1061,6 @@ void device_get_name(struct btd_device *device, char *name, size_t len)
strncpy(name, device->name, len);
}
device_type_t device_get_type(struct btd_device *device)
{
return device->type;
}
uint16_t btd_device_get_vendor(struct btd_device *device)
{
return device->vendor;
@ -1590,7 +1595,7 @@ cleanup:
bdaddr_t sba, dba;
adapter_get_address(device->adapter, &sba);
device_get_address(device, &dba);
device_get_address(device, &dba, NULL);
store_profiles(device);
}
@ -1678,7 +1683,7 @@ static void store_services(struct btd_device *device)
char *str = primary_list_to_string(device->primaries);
adapter_get_address(adapter, &sba);
device_get_address(device, &dba);
device_get_address(device, &dba, NULL);
write_device_services(&sba, &dba, str);
@ -1852,7 +1857,7 @@ static gboolean att_connect(gpointer user_data)
DBG("Connection attempt to: %s", addr);
if (device->type != DEVICE_TYPE_LE) {
if (device_is_bredr(device)) {
io = bt_io_connect(BT_IO_L2CAP, att_connect_cb,
device, NULL, &gerr,
BT_IO_OPT_SOURCE_BDADDR, &sba,
@ -1991,9 +1996,12 @@ struct btd_adapter *device_get_adapter(struct btd_device *device)
return device->adapter;
}
void device_get_address(struct btd_device *device, bdaddr_t *bdaddr)
void device_get_address(struct btd_device *device, bdaddr_t *bdaddr,
addr_type_t *type)
{
bacpy(bdaddr, &device->bdaddr);
if (type != NULL)
*type = device->type;
}
const gchar *device_get_path(struct btd_device *device)
@ -2082,14 +2090,6 @@ void device_set_auto_connect(struct btd_device *device, gboolean enable)
att_connect_dispatched);
}
void device_set_type(struct btd_device *device, device_type_t type)
{
if (!device)
return;
device->type = type;
}
static gboolean start_discovery(gpointer user_data)
{
struct btd_device *device = user_data;

View File

@ -33,19 +33,11 @@ typedef enum {
AUTH_TYPE_NOTIFY,
} auth_type_t;
typedef enum {
DEVICE_TYPE_UNKNOWN,
DEVICE_TYPE_BREDR,
DEVICE_TYPE_LE,
DEVICE_TYPE_DUALMODE
} device_type_t;
struct btd_device *device_create(DBusConnection *conn,
struct btd_adapter *adapter,
const gchar *address, device_type_t type);
struct btd_adapter *adapter,
const char *address, addr_type_t type);
void device_set_name(struct btd_device *device, const char *name);
void device_get_name(struct btd_device *device, char *name, size_t len);
device_type_t device_get_type(struct btd_device *device);
uint16_t btd_device_get_vendor(struct btd_device *device);
uint16_t btd_device_get_product(struct btd_device *device);
uint16_t btd_device_get_version(struct btd_device *device);
@ -65,9 +57,12 @@ GSList *device_services_from_record(struct btd_device *device,
GSList *profiles);
void btd_device_add_uuid(struct btd_device *device, const char *uuid);
struct btd_adapter *device_get_adapter(struct btd_device *device);
void device_get_address(struct btd_device *device, bdaddr_t *bdaddr);
void device_get_address(struct btd_device *device, bdaddr_t *bdaddr,
addr_type_t *type);
const gchar *device_get_path(struct btd_device *device);
struct agent *device_get_agent(struct btd_device *device);
gboolean device_is_bredr(struct btd_device *device);
gboolean device_is_le(struct btd_device *device);
gboolean device_is_busy(struct btd_device *device);
gboolean device_is_temporary(struct btd_device *device);
gboolean device_is_paired(struct btd_device *device);
@ -75,7 +70,6 @@ gboolean device_is_bonded(struct btd_device *device);
gboolean device_is_trusted(struct btd_device *device);
void device_set_paired(struct btd_device *device, gboolean paired);
void device_set_temporary(struct btd_device *device, gboolean temporary);
void device_set_type(struct btd_device *device, device_type_t type);
void device_set_bonded(struct btd_device *device, gboolean bonded);
void device_set_auto_connect(struct btd_device *device, gboolean enable);
gboolean device_is_connected(struct btd_device *device);

View File

@ -93,7 +93,7 @@ static void pincode_cb(struct agent *agent, DBusError *derr,
bdaddr_t dba;
int err;
device_get_address(device, &dba);
device_get_address(device, &dba, NULL);
if (derr) {
err = btd_adapter_pincode_reply(adapter, &dba, NULL, 0);
@ -139,7 +139,7 @@ static int confirm_reply(struct btd_adapter *adapter,
{
bdaddr_t bdaddr;
device_get_address(device, &bdaddr);
device_get_address(device, &bdaddr, NULL);
return btd_adapter_confirm_reply(adapter, &bdaddr, success);
}
@ -160,7 +160,7 @@ static void passkey_cb(struct agent *agent, DBusError *err, uint32_t passkey,
struct btd_adapter *adapter = device_get_adapter(device);
bdaddr_t bdaddr;
device_get_address(device, &bdaddr);
device_get_address(device, &bdaddr, NULL);
if (err)
passkey = INVALID_PASSKEY;
@ -264,9 +264,10 @@ static void update_lastused(bdaddr_t *sba, bdaddr_t *dba)
write_lastused_info(sba, dba, tm);
}
void btd_event_device_found(bdaddr_t *local, bdaddr_t *peer, uint32_t class,
int8_t rssi, uint8_t confirm_name,
uint8_t *data, uint8_t data_len)
void btd_event_device_found(bdaddr_t *local, bdaddr_t *peer, addr_type_t type,
uint32_t class, int8_t rssi,
uint8_t confirm_name, uint8_t *data,
uint8_t data_len)
{
struct btd_adapter *adapter;
@ -282,7 +283,7 @@ void btd_event_device_found(bdaddr_t *local, bdaddr_t *peer, uint32_t class,
if (data)
write_remote_eir(local, peer, data);
adapter_update_found_devices(adapter, peer, class, rssi,
adapter_update_found_devices(adapter, peer, type, class, rssi,
confirm_name, data, data_len);
}

View File

@ -23,9 +23,9 @@
*/
int btd_event_request_pin(bdaddr_t *sba, bdaddr_t *dba, gboolean secure);
void btd_event_device_found(bdaddr_t *local, bdaddr_t *peer, uint32_t class,
int8_t rssi, uint8_t confirm_name,
uint8_t *data, uint8_t data_len);
void btd_event_device_found(bdaddr_t *local, bdaddr_t *peer, addr_type_t type,
uint32_t cls, int8_t rssi, uint8_t confirm_name,
uint8_t *data, uint8_t data_len);
void btd_event_set_legacy_pairing(bdaddr_t *local, bdaddr_t *peer, gboolean legacy);
void btd_event_remote_class(bdaddr_t *local, bdaddr_t *peer, uint32_t class);
void btd_event_remote_name(bdaddr_t *local, bdaddr_t *peer, uint8_t status, char *name);