diff --git a/src/adapter.c b/src/adapter.c
index 11ee19a..55ccabc 100644
--- a/src/adapter.c
+++ b/src/adapter.c
const bdaddr_t *bdaddr,
uint8_t *hash, uint8_t *randomizer)
{
- return mgmt_add_remote_oob_data(adapter->dev_id, bdaddr, hash,
- randomizer);
+ struct mgmt_cp_add_remote_oob_data cp;
+ char addr[18];
+
+ ba2str(bdaddr, addr);
+ DBG("hci%d bdaddr %s", adapter->dev_id, addr);
+
+ memset(&cp, 0, sizeof(cp));
+ bacpy(&cp.addr.bdaddr, bdaddr);
+ memcpy(cp.hash, hash, 16);
+
+ if (randomizer)
+ memcpy(cp.randomizer, randomizer, 16);
+
+ if (mgmt_send(adapter->mgmt, MGMT_OP_ADD_REMOTE_OOB_DATA,
+ adapter->dev_id, sizeof(cp), &cp,
+ NULL, NULL, NULL) > 0)
+ return 0;
+
+ return -EIO;
}
int btd_adapter_remove_remote_oob_data(struct btd_adapter *adapter,
const bdaddr_t *bdaddr)
{
- return mgmt_remove_remote_oob_data(adapter->dev_id, bdaddr);
+ struct mgmt_cp_remove_remote_oob_data cp;
+ char addr[18];
+
+ ba2str(bdaddr, addr);
+ DBG("hci%d bdaddr %s", adapter->dev_id, addr);
+
+ memset(&cp, 0, sizeof(cp));
+ bacpy(&cp.addr.bdaddr, bdaddr);
+
+ if (mgmt_send(adapter->mgmt, MGMT_OP_REMOVE_REMOTE_OOB_DATA,
+ adapter->dev_id, sizeof(cp), &cp,
+ NULL, NULL, NULL) > 0)
+ return 0;
+
+ return -EIO;
}
bool btd_adapter_ssp_enabled(struct btd_adapter *adapter)
diff --git a/src/mgmt.c b/src/mgmt.c
index a0919f3..7523cc7 100644
--- a/src/mgmt.c
+++ b/src/mgmt.c
return 0;
}
-int mgmt_add_remote_oob_data(int index, const bdaddr_t *bdaddr,
- uint8_t *hash, uint8_t *randomizer)
-{
- char buf[MGMT_HDR_SIZE + sizeof(struct mgmt_cp_add_remote_oob_data)];
- struct mgmt_hdr *hdr = (void *) buf;
- struct mgmt_cp_add_remote_oob_data *cp = (void *) &buf[sizeof(*hdr)];
- char addr[18];
-
- ba2str(bdaddr, addr);
- DBG("hci%d bdaddr %s", index, addr);
-
- memset(buf, 0, sizeof(buf));
-
- hdr->opcode = htobs(MGMT_OP_ADD_REMOTE_OOB_DATA);
- hdr->index = htobs(index);
- hdr->len = htobs(sizeof(*cp));
-
- bacpy(&cp->addr.bdaddr, bdaddr);
- memcpy(cp->hash, hash, 16);
-
- if (randomizer)
- memcpy(cp->randomizer, randomizer, 16);
-
- if (write(mgmt_sock, &buf, sizeof(buf)) < 0)
- return -errno;
-
- return 0;
-}
-
-int mgmt_remove_remote_oob_data(int index, const bdaddr_t *bdaddr)
-{
- char buf[MGMT_HDR_SIZE + sizeof(struct mgmt_cp_remove_remote_oob_data)];
- struct mgmt_hdr *hdr = (void *) buf;
- struct mgmt_cp_remove_remote_oob_data *cp = (void *) &buf[sizeof(*hdr)];
- char addr[18];
-
- ba2str(bdaddr, addr);
- DBG("hci%d bdaddr %s", index, addr);
-
- memset(buf, 0, sizeof(buf));
-
- hdr->opcode = htobs(MGMT_OP_REMOVE_REMOTE_OOB_DATA);
- hdr->index = htobs(index);
- hdr->len = htobs(sizeof(*cp));
-
- bacpy(&cp->addr.bdaddr, bdaddr);
-
- if (write(mgmt_sock, &buf, sizeof(buf)) < 0)
- return -errno;
-
- return 0;
-}
-
int mgmt_load_ltks(int index, GSList *keys)
{
char *buf;
diff --git a/src/mgmt.h b/src/mgmt.h
index d63bc10..174c6a7 100644
--- a/src/mgmt.h
+++ b/src/mgmt.h
gboolean success);
int mgmt_passkey_reply(int index, const bdaddr_t *bdaddr, uint8_t bdaddr_type,
uint32_t passkey);
-
-int mgmt_add_remote_oob_data(int index, const bdaddr_t *bdaddr,
- uint8_t *hash, uint8_t *randomizer);
-int mgmt_remove_remote_oob_data(int index, const bdaddr_t *bdaddr);