Linux bluetooth development
 help / color / mirror / Atom feed
* [PATCH BlueZ 1/5] tools: btpclient: Clear advertising data on reset
@ 2018-01-25 15:53 Grzegorz Kolodziejczyk
  2018-01-25 15:53 ` [PATCH BlueZ 2/5] tools/btpclient: Add set io capabilities command Grzegorz Kolodziejczyk
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Grzegorz Kolodziejczyk @ 2018-01-25 15:53 UTC (permalink / raw)
  To: linux-bluetooth

Advertising data should be cleared on gap reset command.
---
 tools/btpclient.c | 40 +++++++++++++++++++++-------------------
 1 file changed, 21 insertions(+), 19 deletions(-)

diff --git a/tools/btpclient.c b/tools/btpclient.c
index 3c88f1496..bdc404dd9 100644
--- a/tools/btpclient.c
+++ b/tools/btpclient.c
@@ -390,6 +390,24 @@ static void unreg_advertising_setup(struct l_dbus_message *message,
 	l_dbus_message_builder_destroy(builder);
 }
 
+static void ad_cleanup_service(void *service)
+{
+	struct service_data *s = service;
+
+	l_free(s->uuid);
+	l_free(s);
+}
+
+static void ad_cleanup(void)
+{
+	l_free(ad.local_name);
+	l_queue_destroy(ad.uuids, l_free);
+	l_queue_destroy(ad.services, ad_cleanup_service);
+	l_queue_destroy(ad.manufacturers, l_free);
+
+	memset(&ad, 0, sizeof(ad));
+}
+
 static void unreg_advertising_reply(struct l_dbus_proxy *proxy,
 						struct l_dbus_message *result,
 						void *user_data)
@@ -417,6 +435,8 @@ static void unreg_advertising_reply(struct l_dbus_proxy *proxy,
 		l_info("Unable to remove propety instance");
 	if (!l_dbus_unregister_interface(dbus, AD_IFACE))
 		l_info("Unable to unregister ad interface");
+
+	ad_cleanup();
 }
 
 static void btp_gap_reset(uint8_t index, const void *param, uint16_t length,
@@ -449,7 +469,7 @@ static void btp_gap_reset(uint8_t index, const void *param, uint16_t length,
 						NULL);
 	}
 
-	if (adapter->ad_proxy)
+	if (adapter->ad_proxy && ad.registered)
 		if (!l_dbus_proxy_method_call(adapter->ad_proxy,
 						"UnregisterAdvertisement",
 						unreg_advertising_setup,
@@ -646,24 +666,6 @@ failed:
 	btp_send_error(btp, BTP_GAP_SERVICE, index, status);
 }
 
-static void ad_cleanup_service(void *service)
-{
-	struct service_data *s = service;
-
-	l_free(s->uuid);
-	l_free(s);
-}
-
-static void ad_cleanup(void)
-{
-	l_free(ad.local_name);
-	l_queue_destroy(ad.uuids, l_free);
-	l_queue_destroy(ad.services, ad_cleanup_service);
-	l_queue_destroy(ad.manufacturers, l_free);
-
-	memset(&ad, 0, sizeof(ad));
-}
-
 static void ad_init(void)
 {
 	ad.uuids = l_queue_new();
-- 
2.13.6


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-01-31  9:09 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-25 15:53 [PATCH BlueZ 1/5] tools: btpclient: Clear advertising data on reset Grzegorz Kolodziejczyk
2018-01-25 15:53 ` [PATCH BlueZ 2/5] tools/btpclient: Add set io capabilities command Grzegorz Kolodziejczyk
2018-01-25 15:53 ` [PATCH BlueZ 3/5] tools/btpclient: Add pair, unpair commands Grzegorz Kolodziejczyk
2018-01-25 15:53 ` [PATCH BlueZ 4/5] tools/btpclient: Add passkey entry cmd and passkey display event Grzegorz Kolodziejczyk
2018-01-25 15:53 ` [PATCH BlueZ 5/5] tools/btpclient: Add passkey confirm ev and passkey confirm rsp cmd Grzegorz Kolodziejczyk
2018-01-31  9:09 ` [PATCH BlueZ 1/5] tools: btpclient: Clear advertising data on reset Szymon Janc

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox