Diff between 89cb88b0f030cd1b4dc96cfd1760332122957ec3 and 4dea3fb932f815b0b1be470cc0aaa213d82bf213

Changed Files

File Additions Deletions Status
client/advertising.c +5 -3 modified

Full Patch

diff --git a/client/advertising.c b/client/advertising.c
index a7474d6..a9b865a 100644
--- a/client/advertising.c
+++ b/client/advertising.c
@@ -43,6 +43,7 @@ struct manufacturer_data {
 };
 
 struct data {
+	bool valid;
 	uint8_t type;
 	struct ad_data data;
 };
@@ -157,7 +158,7 @@ static void print_ad(void)
 						ad.manufacturer.data.len);
 	}
 
-	if (ad.data.data.len) {
+	if (ad.data.valid) {
 		bt_shell_printf("Data Type: 0x%02x\n", ad.data.type);
 		bt_shell_hexdump(ad.data.data.data, ad.data.data.len);
 	}
@@ -395,7 +396,7 @@ static gboolean get_timeout(const GDBusPropertyTable *property,
 
 static gboolean data_exists(const GDBusPropertyTable *property, void *data)
 {
-	return ad.data.type != 0;
+	return ad.data.valid;
 }
 
 static gboolean get_data(const GDBusPropertyTable *property,
@@ -757,7 +758,7 @@ void ad_disable_manufacturer(DBusConnection *conn)
 
 static void ad_clear_data(void)
 {
-	memset(&ad.manufacturer, 0, sizeof(ad.manufacturer));
+	memset(&ad.data, 0, sizeof(ad.data));
 
 	return bt_shell_noninteractive_quit(EXIT_SUCCESS);
 }
@@ -787,6 +788,7 @@ void ad_advertise_data(DBusConnection *conn, int argc, char *argv[])
 		return bt_shell_noninteractive_quit(EXIT_FAILURE);
 
 	ad_clear_data();
+	ad.data.valid = true;
 	ad.data.type = val;
 	ad.data.data = data;