From 5de0ab35639c1011865da3da7accb58019c840cc Mon Sep 17 00:00:00 2001 From: Claudio Takahasi Date: Wed, 18 May 2011 18:33:54 -0300 Subject: [PATCH] Change the order to write/read the remote's name When discovering, write the EIR "complete" name first before to read the name. Only names retrieved from EIR "complete" name and HCI Remote Name Request Complete event are stored. This patch doesn't change the final result: the value of the name sent in the signal. --- src/adapter.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/src/adapter.c b/src/adapter.c index 556de1aa4..161636ece 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -3007,7 +3007,6 @@ void adapter_update_found_devices(struct btd_adapter *adapter, bdaddr_t *bdaddr, char *name; gboolean new_dev, legacy, le; name_status_t name_status = NAME_NOT_REQUIRED; - const char *dev_name; int err; memset(&eir_data, 0, sizeof(eir_data)); @@ -3017,6 +3016,9 @@ void adapter_update_found_devices(struct btd_adapter *adapter, bdaddr_t *bdaddr, return; } + if (eir_data.name != NULL && eir_data.name_complete) + write_device_name(&adapter->bdaddr, bdaddr, eir_data.name); + name = read_stored_data(&adapter->bdaddr, bdaddr, "names"); if (eir_data.flags < 0) { @@ -3035,23 +3037,12 @@ void adapter_update_found_devices(struct btd_adapter *adapter, bdaddr_t *bdaddr, legacy = FALSE; } - /* Complete EIR names are always used. Shortened EIR names are only - * used if there is no name already in storage. */ - dev_name = name; - if (eir_data.name != NULL) { - if (eir_data.name_complete) { - write_device_name(&adapter->bdaddr, bdaddr, - eir_data.name); - name_status = NAME_NOT_REQUIRED; - dev_name = eir_data.name; - } else if (name == NULL) - dev_name = eir_data.name; - } - dev = get_found_dev(adapter, bdaddr, &new_dev); if (new_dev) { + const char *dev_name = (name ? name : eir_data.name); char *alias; + if (dev_name) dev->name = g_strdup(dev_name); -- 2.47.3