* [PATCH BlueZ] core: Fix Device1.Disconnect not always disabling auto connect
@ 2014-08-05 13:30 Luiz Augusto von Dentz
2014-08-05 19:07 ` Johan Hedberg
0 siblings, 1 reply; 2+ messages in thread
From: Luiz Augusto von Dentz @ 2014-08-05 13:30 UTC (permalink / raw)
To: linux-bluetooth
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Disconnect has the ability to disable auto connect temporarily until
Connect is then called again, but currently it can only do that if
the device is connected.
---
src/device.c | 77 ++++++++++++++++++++++++++++++++----------------------------
1 file changed, 41 insertions(+), 36 deletions(-)
diff --git a/src/device.c b/src/device.c
index 6eba0af..d63e627 100644
--- a/src/device.c
+++ b/src/device.c
@@ -1169,6 +1169,40 @@ void device_request_disconnect(struct btd_device *device, DBusMessage *msg)
device);
}
+static void device_set_auto_connect(struct btd_device *device, gboolean enable)
+{
+ char addr[18];
+
+ if (!device || !device->le)
+ return;
+
+ ba2str(&device->bdaddr, addr);
+
+ DBG("%s auto connect: %d", addr, enable);
+
+ if (device->auto_connect == enable)
+ return;
+
+ device->auto_connect = enable;
+
+ /* Disabling auto connect */
+ if (enable == FALSE) {
+ adapter_connect_list_remove(device->adapter, device);
+ adapter_auto_connect_remove(device->adapter, device);
+ return;
+ }
+
+ /* Enabling auto connect */
+ adapter_auto_connect_add(device->adapter, device);
+
+ if (device->attrib) {
+ DBG("Already connected");
+ return;
+ }
+
+ adapter_connect_list_add(device->adapter, device);
+}
+
static DBusMessage *dev_disconnect(DBusConnection *conn, DBusMessage *msg,
void *user_data)
{
@@ -1178,8 +1212,10 @@ static DBusMessage *dev_disconnect(DBusConnection *conn, DBusMessage *msg,
* Disable connections through passive scanning until
* Device1.Connect is called
*/
- if (device->auto_connect)
+ if (device->auto_connect) {
device->disable_auto_connect = TRUE;
+ device_set_auto_connect(device, FALSE);
+ }
device_request_disconnect(device, msg);
@@ -1484,7 +1520,10 @@ static DBusMessage *dev_connect(DBusConnection *conn, DBusMessage *msg,
btd_device_set_temporary(dev, FALSE);
- dev->disable_auto_connect = FALSE;
+ if (dev->disable_auto_connect) {
+ dev->disable_auto_connect = FALSE;
+ device_set_auto_connect(dev, TRUE);
+ }
err = device_connect_le(dev);
if (err < 0)
@@ -4099,40 +4138,6 @@ void device_set_rssi(struct btd_device *device, int8_t rssi)
DEVICE_INTERFACE, "RSSI");
}
-static void device_set_auto_connect(struct btd_device *device, gboolean enable)
-{
- char addr[18];
-
- if (!device || !device->le)
- return;
-
- ba2str(&device->bdaddr, addr);
-
- DBG("%s auto connect: %d", addr, enable);
-
- if (device->auto_connect == enable)
- return;
-
- device->auto_connect = enable;
-
- /* Disabling auto connect */
- if (enable == FALSE) {
- adapter_connect_list_remove(device->adapter, device);
- adapter_auto_connect_remove(device->adapter, device);
- return;
- }
-
- /* Enabling auto connect */
- adapter_auto_connect_add(device->adapter, device);
-
- if (device->attrib) {
- DBG("Already connected");
- return;
- }
-
- adapter_connect_list_add(device->adapter, device);
-}
-
static gboolean start_discovery(gpointer user_data)
{
struct btd_device *device = user_data;
--
1.9.3
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH BlueZ] core: Fix Device1.Disconnect not always disabling auto connect
2014-08-05 13:30 [PATCH BlueZ] core: Fix Device1.Disconnect not always disabling auto connect Luiz Augusto von Dentz
@ 2014-08-05 19:07 ` Johan Hedberg
0 siblings, 0 replies; 2+ messages in thread
From: Johan Hedberg @ 2014-08-05 19:07 UTC (permalink / raw)
To: Luiz Augusto von Dentz; +Cc: linux-bluetooth
Hi Luiz,
On Tue, Aug 05, 2014, Luiz Augusto von Dentz wrote:
> Disconnect has the ability to disable auto connect temporarily until
> Connect is then called again, but currently it can only do that if
> the device is connected.
> ---
> src/device.c | 77 ++++++++++++++++++++++++++++++++----------------------------
> 1 file changed, 41 insertions(+), 36 deletions(-)
Applied. Thanks.
Johan
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-08-05 19:07 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-05 13:30 [PATCH BlueZ] core: Fix Device1.Disconnect not always disabling auto connect Luiz Augusto von Dentz
2014-08-05 19:07 ` Johan Hedberg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).