summaryrefslogtreecommitdiffstats
path: root/src/dbus-hci.c
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.dentz@openbossa.org>2009-02-12 16:41:23 -0300
committerLuiz Augusto von Dentz <luiz.dentz@openbossa.org>2009-02-12 16:41:23 -0300
commit81fdab9c7eb725146a6de14b12cbd3fab2903625 (patch)
treefade6a0eccd52b0c5677ac12516b9604526ad505 /src/dbus-hci.c
parent13fd71450abf7f4ac2d6b1d6c2c70b81b0796f80 (diff)
Fix not handling properly local name changes.
Changing adapter name via dbus was emitting PropertyChanged right away. This not only can cause consistency problems but also makes bluetoothd to not emit a PropertyChanged when a third application such as hciconfig changes the adapter name.
Diffstat (limited to 'src/dbus-hci.c')
-rw-r--r--src/dbus-hci.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/dbus-hci.c b/src/dbus-hci.c
index ff89043f..6d6696f2 100644
--- a/src/dbus-hci.c
+++ b/src/dbus-hci.c
@@ -1047,20 +1047,20 @@ int set_major_and_minor_class(int dd, const uint8_t *cls,
void hcid_dbus_setname_complete(bdaddr_t *local)
{
+ struct btd_adapter *adapter;
int id, dd = -1;
read_local_name_rp rp;
struct hci_request rq;
const char *pname = (char *) rp.name;
- char local_addr[18], name[249];
-
- ba2str(local, local_addr);
+ char name[249];
- id = hci_devid(local_addr);
- if (id < 0) {
- error("No matching device id for %s", local_addr);
+ adapter = manager_find_adapter(local);
+ if (!adapter) {
+ error("No matching adapter found");
return;
}
+ id = adapter_get_dev_id(adapter);
dd = hci_open_dev(id);
if (dd < 0) {
error("HCI device open failed: hci%d", id);
@@ -1088,6 +1088,8 @@ void hcid_dbus_setname_complete(bdaddr_t *local)
strncpy(name, pname, sizeof(name) - 1);
name[248] = '\0';
pname = name;
+
+ adapter_name_changed(adapter, pname);
}
void hcid_dbus_setscan_enable_complete(bdaddr_t *local)