summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.dentz@indt.org.br>2008-07-11 16:00:05 -0300
committerLuiz Augusto von Dentz <luiz.dentz@indt.org.br>2008-07-28 10:37:48 -0300
commit298878a17905e1cf34f284f57da16a5deea123b5 (patch)
tree6bd3d9deaaba5cb3b3fe4a6eb41dfba40335ba72
parentf6b4efed9836b86698cd383769f675ea6bc12365 (diff)
Remove get_device_name and set_device_name functions.
-rw-r--r--hcid/adapter.c68
-rw-r--r--hcid/hcid.h2
-rw-r--r--hcid/manager.c63
3 files changed, 58 insertions, 75 deletions
diff --git a/hcid/adapter.c b/hcid/adapter.c
index ba313b0a..2dccd6ea 100644
--- a/hcid/adapter.c
+++ b/hcid/adapter.c
@@ -49,6 +49,7 @@
#include <gdbus.h>
#include "hcid.h"
+#include "sdpd.h"
#include "adapter.h"
#include "device.h"
@@ -572,11 +573,65 @@ static DBusMessage *set_discoverable_timeout(DBusConnection *conn,
return dbus_message_new_method_return(msg);
}
+static void update_ext_inquiry_response(int dd, struct hci_dev *dev)
+{
+ uint8_t fec = 0, data[240];
+
+ if (!(dev->features[6] & LMP_EXT_INQ))
+ return;
+
+ memset(data, 0, sizeof(data));
+
+ if (dev->ssp_mode > 0)
+ create_ext_inquiry_response((char *) dev->name, data);
+
+ if (hci_write_ext_inquiry_response(dd, fec, data, 2000) < 0)
+ error("Can't write extended inquiry response: %s (%d)",
+ strerror(errno), errno);
+}
+
+static int adapter_set_name(struct adapter *adapter, const char *name)
+{
+ struct hci_dev *dev = &adapter->dev;
+ int dd, err;
+ bdaddr_t bdaddr;
+
+ str2ba(adapter->address, &bdaddr);
+
+ write_local_name(&bdaddr, (char *) name);
+
+ if (!adapter->up)
+ return 0;
+
+ dd = hci_open_dev(adapter->dev_id);
+ if (dd < 0) {
+ err = errno;
+ error("Can't open device hci%d: %s (%d)",
+ adapter->dev_id, strerror(err), err);
+ return -err;
+ }
+
+ if (hci_write_local_name(dd, name, 5000) < 0) {
+ err = errno;
+ error("Can't write name for hci%d: %s (%d)",
+ adapter->dev_id, strerror(err), err);
+ hci_close_dev(dd);
+ return -err;
+ }
+
+ strncpy((char *) dev->name, name, 248);
+
+ update_ext_inquiry_response(dd, dev);
+
+ hci_close_dev(dd);
+
+ return 0;
+}
+
static DBusMessage *set_name(DBusConnection *conn, DBusMessage *msg,
const char *name, void *data)
{
struct adapter *adapter = data;
- bdaddr_t bdaddr;
int ecode;
const char *path;
@@ -585,17 +640,10 @@ static DBusMessage *set_name(DBusConnection *conn, DBusMessage *msg,
return invalid_args(msg);
}
- str2ba(adapter->address, &bdaddr);
-
- write_local_name(&bdaddr, (char *) name);
-
- if (!adapter->up)
- goto done;
-
- ecode = set_device_name(adapter->dev_id, name);
+ ecode = adapter_set_name(adapter, name);
if (ecode < 0)
return failed_strerror(msg, -ecode);
-done:
+
path = dbus_message_get_path(msg);
dbus_connection_emit_property_changed(conn, path,
diff --git a/hcid/hcid.h b/hcid/hcid.h
index 9128d374..58358069 100644
--- a/hcid/hcid.h
+++ b/hcid/hcid.h
@@ -166,8 +166,6 @@ int get_device_class(uint16_t dev_id, uint8_t *class);
int set_device_class(uint16_t dev_id, uint8_t *class);
int set_simple_pairing_mode(uint16_t dev_id, uint8_t mode);
-int get_device_name(uint16_t dev_id, char *name, size_t size);
-int set_device_name(uint16_t dev_id, const char *name);
int get_device_alias(uint16_t dev_id, const bdaddr_t *bdaddr, char *alias, size_t size);
int set_device_alias(uint16_t dev_id, const bdaddr_t *bdaddr, const char *alias);
diff --git a/hcid/manager.c b/hcid/manager.c
index adb1455b..2ed7a6e6 100644
--- a/hcid/manager.c
+++ b/hcid/manager.c
@@ -395,69 +395,6 @@ int set_simple_pairing_mode(uint16_t dev_id, uint8_t mode)
return 0;
}
-int get_device_name(uint16_t dev_id, char *name, size_t size)
-{
- struct adapter *adapter = manager_find_adapter_by_id(dev_id);
- struct hci_dev *dev = &adapter->dev;
- char tmp[249];
- int dd, err;
-
- memset(tmp, 0, sizeof(tmp));
-
- dd = hci_open_dev(dev_id);
- if (dd < 0) {
- err = errno;
- error("Can't open device hci%d: %s (%d)",
- dev_id, strerror(err), err);
- return -err;
- }
-
- if (hci_read_local_name(dd, sizeof(tmp), tmp, 2000) < 0) {
- err = errno;
- error("Can't read name for hci%d: %s (%d)",
- dev_id, strerror(err), err);
- hci_close_dev(dd);
- return -err;
- }
-
- hci_close_dev(dd);
-
- memcpy(dev->name, tmp, 248);
-
- return snprintf(name, size, "%s", tmp);
-}
-
-int set_device_name(uint16_t dev_id, const char *name)
-{
- struct adapter *adapter = manager_find_adapter_by_id(dev_id);
- struct hci_dev *dev = &adapter->dev;
- int dd, err;
-
- dd = hci_open_dev(dev_id);
- if (dd < 0) {
- err = errno;
- error("Can't open device hci%d: %s (%d)",
- dev_id, strerror(err), err);
- return -err;
- }
-
- if (hci_write_local_name(dd, name, 5000) < 0) {
- err = errno;
- error("Can't write name for hci%d: %s (%d)",
- dev_id, strerror(err), err);
- hci_close_dev(dd);
- return -err;
- }
-
- strncpy((char *) dev->name, name, 248);
-
- update_ext_inquiry_response(dd, dev);
-
- hci_close_dev(dd);
-
- return 0;
-}
-
int get_device_alias(uint16_t dev_id, const bdaddr_t *bdaddr, char *alias, size_t size)
{
struct adapter *adapter = manager_find_adapter_by_id(dev_id);