From 2fbbf95ff4f5388989039806f1f25801fd9e32db Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Sun, 6 Jan 2013 18:44:39 +0200 Subject: [PATCH] core: Move mgmt confirm name command sending to adapter code --- src/adapter.c | 29 ++++++++++++++++++++++++++--- src/mgmt.c | 27 --------------------------- src/mgmt.h | 3 --- 3 files changed, 26 insertions(+), 33 deletions(-) diff --git a/src/adapter.c b/src/adapter.c index 4aa224346..75faa8435 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -3530,10 +3530,33 @@ static gboolean connect_pending_cb(gpointer user_data) return FALSE; } +static int confirm_name(struct btd_adapter *adapter, const bdaddr_t *bdaddr, + uint8_t bdaddr_type, bool name_known) +{ + struct mgmt_cp_confirm_name cp; + char addr[18]; + + ba2str(bdaddr, addr); + DBG("hci%d bdaddr %s name_known %u", adapter->dev_id, addr, + name_known); + + memset(&cp, 0, sizeof(cp)); + bacpy(&cp.addr.bdaddr, bdaddr); + cp.addr.type = bdaddr_type; + cp.name_known = name_known; + + if (mgmt_send(adapter->mgmt, MGMT_OP_CONFIRM_NAME, + adapter->dev_id, sizeof(cp), &cp, + NULL, NULL, NULL) > 0) + return 0; + + return -EIO; +} + void adapter_update_found_devices(struct btd_adapter *adapter, const bdaddr_t *bdaddr, uint8_t bdaddr_type, int8_t rssi, - bool confirm_name, bool legacy, + bool confirm, bool legacy, uint8_t *data, uint8_t data_len) { struct discovery *discovery = adapter->discovery; @@ -3594,8 +3617,8 @@ void adapter_update_found_devices(struct btd_adapter *adapter, if (g_slist_find(discovery->found, dev)) return; - if (confirm_name) - mgmt_confirm_name(adapter->dev_id, bdaddr, bdaddr_type, + if (confirm) + confirm_name(adapter, bdaddr, bdaddr_type, device_name_known(dev)); discovery->found = g_slist_prepend(discovery->found, dev); diff --git a/src/mgmt.c b/src/mgmt.c index 5d2197a03..07c80fd54 100644 --- a/src/mgmt.c +++ b/src/mgmt.c @@ -1175,33 +1175,6 @@ int mgmt_remove_remote_oob_data(int index, const bdaddr_t *bdaddr) return 0; } -int mgmt_confirm_name(int index, const bdaddr_t *bdaddr, uint8_t bdaddr_type, - gboolean name_known) -{ - char buf[MGMT_HDR_SIZE + sizeof(struct mgmt_cp_confirm_name)]; - struct mgmt_hdr *hdr = (void *) buf; - struct mgmt_cp_confirm_name *cp = (void *) &buf[sizeof(*hdr)]; - char addr[18]; - - ba2str(bdaddr, addr); - DBG("hci%d bdaddr %s name_known %u", index, addr, name_known); - - memset(buf, 0, sizeof(buf)); - - hdr->opcode = htobs(MGMT_OP_CONFIRM_NAME); - hdr->index = htobs(index); - hdr->len = htobs(sizeof(*cp)); - - bacpy(&cp->addr.bdaddr, bdaddr); - cp->addr.type = bdaddr_type; - cp->name_known = name_known; - - 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 5c0755ca2..a097da158 100644 --- a/src/mgmt.h +++ b/src/mgmt.h @@ -44,6 +44,3 @@ int mgmt_read_local_oob_data(int index); 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); - -int mgmt_confirm_name(int index, const bdaddr_t *bdaddr, uint8_t bdaddr_type, - gboolean name_known); -- 2.47.3