core: Fix not updating storage when mode changes
authorDoHyun Pyun <dh79.pyun@samsung.com>
Tue, 28 Aug 2012 06:47:24 +0000 (15:47 +0900)
committerDoHyun Pyun <dh79.pyun@samsung.com>
Tue, 28 Aug 2012 06:47:24 +0000 (15:47 +0900)
With mgmt interface bluetoothd is no longer requesting mode change for
things like DiscoverableTimeout as the kernel will do that automatically
when the timer expires.

packaging/bluez.spec
src/adapter.c
src/eir.c

index 441424f..cb78679 100644 (file)
@@ -17,7 +17,6 @@ BuildRequires:  readline-devel
 
 %description
 Utilities for use in Bluetooth applications:
-       --ciptool
        --dfutool
        --hcitool
        --l2ping
@@ -106,7 +105,6 @@ install -D -m 0644 network/network.conf %{buildroot}%{_prefix}/etc/bluetooth/net
 %{_sbindir}/bluetoothd
 %{_sbindir}/hciconfig
 %{_sbindir}/hciattach
-%{_bindir}/ciptool
 %{_bindir}/l2ping
 %{_bindir}/sdptool
 %{_bindir}/gatttool
index f922876..124dd32 100644 (file)
@@ -2267,7 +2267,10 @@ static void set_mode_complete(struct btd_adapter *adapter)
        const char *modestr;
        int err;
 
-       DBG("");
+       modestr = mode2str(adapter->mode);
+       write_device_mode(&adapter->bdaddr, modestr);
+
+       DBG("%s", modestr);
 
        if (adapter->mode == MODE_OFF) {
                g_slist_free_full(adapter->mode_sessions, session_free);
@@ -2298,15 +2301,8 @@ static void set_mode_complete(struct btd_adapter *adapter)
                g_dbus_send_message(connection, reply);
        }
 
-       modestr = mode2str(adapter->mode);
-
-       DBG("%s", modestr);
-
-       /* restore if the mode doesn't matches the pending */
-       if (err != 0) {
-               write_device_mode(&adapter->bdaddr, modestr);
+       if (err != 0)
                error("unable to set mode: %s", mode2str(pending->mode));
-       }
 
        session_unref(pending);
 }
index 9d42917..700729c 100644 (file)
--- a/src/eir.c
+++ b/src/eir.c
@@ -341,7 +341,10 @@ gboolean eir_has_data_type(uint8_t *data, size_t len, uint8_t type)
 {
        uint8_t field_len;
        size_t parsed = 0;
-
+#ifdef __TIZEN_PATCH__
+       if (len < 2)
+               return FALSE;
+#endif
        while (parsed < len - 1) {
                field_len = data[0];