diff --git a/src/adapter.c b/src/adapter.c
index 729d31e..b81b4e8 100644
--- a/src/adapter.c
+++ b/src/adapter.c
return dir;
}
+uint8_t btd_adapter_get_address_type(struct btd_adapter *adapter)
+{
+ return adapter->bdaddr_type;
+}
+
static void store_adapter_info(struct btd_adapter *adapter)
{
GKeyFile *key_file;
diff --git a/src/adapter.h b/src/adapter.h
index f2947fe..f9178d5 100644
--- a/src/adapter.h
+++ b/src/adapter.h
const char *adapter_get_path(struct btd_adapter *adapter);
const bdaddr_t *btd_adapter_get_address(struct btd_adapter *adapter);
+uint8_t btd_adapter_get_address_type(struct btd_adapter *adapter);
int adapter_set_name(struct btd_adapter *adapter, const char *name);
int adapter_service_add(struct btd_adapter *adapter, sdp_record_t *rec);
diff --git a/src/attrib-server.c b/src/attrib-server.c
index 4439c27..7c15a4e 100644
--- a/src/attrib-server.c
+++ b/src/attrib-server.c
server->le_io = bt_io_listen(connect_event, NULL,
&server->le_io, NULL, &gerr,
BT_IO_OPT_SOURCE_BDADDR, addr,
- BT_IO_OPT_SOURCE_TYPE, BDADDR_LE_PUBLIC,
+ BT_IO_OPT_SOURCE_TYPE,
+ btd_adapter_get_address_type(adapter),
BT_IO_OPT_CID, ATT_CID,
BT_IO_OPT_SEC_LEVEL, BT_IO_SEC_LOW,
BT_IO_OPT_INVALID);
diff --git a/src/device.c b/src/device.c
index 99454a7..8693eb8 100644
--- a/src/device.c
+++ b/src/device.c
io = bt_io_connect(att_connect_cb, dev, NULL, &gerr,
BT_IO_OPT_SOURCE_BDADDR,
btd_adapter_get_address(adapter),
- BT_IO_OPT_SOURCE_TYPE, BDADDR_LE_PUBLIC,
+ BT_IO_OPT_SOURCE_TYPE,
+ btd_adapter_get_address_type(adapter),
BT_IO_OPT_DEST_BDADDR, &dev->bdaddr,
BT_IO_OPT_DEST_TYPE, dev->bdaddr_type,
BT_IO_OPT_CID, ATT_CID,
device, NULL, NULL,
BT_IO_OPT_SOURCE_BDADDR,
btd_adapter_get_address(adapter),
- BT_IO_OPT_SOURCE_TYPE, BDADDR_LE_PUBLIC,
+ BT_IO_OPT_SOURCE_TYPE,
+ btd_adapter_get_address_type(adapter),
BT_IO_OPT_DEST_BDADDR, &device->bdaddr,
BT_IO_OPT_DEST_TYPE, device->bdaddr_type,
BT_IO_OPT_CID, ATT_CID,
diff --git a/src/gatt-database.c b/src/gatt-database.c
index d4bf5ad..7b3ec16 100644
--- a/src/gatt-database.c
+++ b/src/gatt-database.c
addr = btd_adapter_get_address(adapter);
database->le_io = bt_io_listen(connect_cb, NULL, NULL, NULL, &gerr,
BT_IO_OPT_SOURCE_BDADDR, addr,
- BT_IO_OPT_SOURCE_TYPE, BDADDR_LE_PUBLIC,
+ BT_IO_OPT_SOURCE_TYPE,
+ btd_adapter_get_address_type(adapter),
BT_IO_OPT_CID, ATT_CID,
BT_IO_OPT_SEC_LEVEL, BT_IO_SEC_LOW,
BT_IO_OPT_INVALID);