From ca8c7a536c8935db00e50be9a2f2c997878bc6b2 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Fri, 4 Jan 2013 11:32:23 -0800 Subject: [PATCH] core: Handle result callback for setting local name --- src/adapter.c | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/src/adapter.c b/src/adapter.c index 25de5e647..44f4ea36a 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -617,6 +617,30 @@ void adapter_name_changed(struct btd_adapter *adapter, const char *name) (const uint8_t *) name, strlen(name)); } + +static void set_local_name_complete(uint8_t status, uint16_t length, + const void *param, void *user_data) +{ + struct btd_adapter *adapter = user_data; + const struct mgmt_cp_set_local_name *rp = param; + + if (status != MGMT_STATUS_SUCCESS) { + error("Failed to set local name: %s (0x%02x)", + mgmt_errstr(status), status); + return; + } + + if (length < sizeof(*rp)) { + error("Wrong size of set local name response"); + return; + } + + DBG("Name: %s", rp->name); + DBG("Short name: %s", rp->short_name); + + adapter_name_changed(adapter, (const char *) rp->name); +} + static int set_name(struct btd_adapter *adapter, const char *name) { struct mgmt_cp_set_local_name cp; @@ -634,8 +658,8 @@ static int set_name(struct btd_adapter *adapter, const char *name) strncpy((char *) cp.name, maxname, sizeof(cp.name) - 1); if (mgmt_send(adapter->mgmt, MGMT_OP_SET_LOCAL_NAME, - adapter->dev_id, sizeof(cp), &cp, - NULL, adapter, NULL) > 0) + adapter->dev_id, sizeof(cp), &cp, + set_local_name_complete, adapter, NULL) > 0) return 0; error("Failed to set local name for index %u", adapter->dev_id); -- 2.47.3