From d6f93380ff280cf5c0c09086135f4496dc6f8073 Mon Sep 17 00:00:00 2001 From: Claudio Takahasi Date: Wed, 21 Dec 2011 18:41:50 -0300 Subject: [PATCH] attrib-client: Fix consecutive set value when disconnected SetProperty for "Value" property needs to be queued when disconnected. Registering ATTIO connection callback does not mean that the link is established, GAttrib instance is assigned in the connection callback. --- attrib/client.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/attrib/client.c b/attrib/client.c index 380a288ad..60cff016b 100644 --- a/attrib/client.c +++ b/attrib/client.c @@ -420,15 +420,17 @@ static DBusMessage *set_value(DBusConnection *conn, DBusMessage *msg, characteristic_set_value(chr, value, len); - if (gatt->attioid == 0) { + if (gatt->attioid == 0) gatt->attioid = btd_device_add_attio_callback(gatt->dev, attio_connected, attio_disconnected, gatt); - gatt->offline_chars = g_slist_append(gatt->offline_chars, chr); - } else + + if (gatt->attrib) gatt_write_cmd(gatt->attrib, chr->handle, value, len, NULL, NULL); + else + gatt->offline_chars = g_slist_append(gatt->offline_chars, chr); return dbus_message_new_method_return(msg); } -- 2.47.3