linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/5] device : Add EndGroupHandle key in attributes storage
@ 2012-12-14 16:45 Frédéric Danis
  2012-12-14 16:45 ` [PATCH 2/5] device: Store services in device's attributes file Frédéric Danis
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Frédéric Danis @ 2012-12-14 16:45 UTC (permalink / raw)
  To: linux-bluetooth

End group handle should also be converted/saved for each
group in device's attributes file.
---
 doc/settings-storage.txt |    8 +++++---
 src/adapter.c            |    8 +++++---
 src/device.c             |   10 ++++++++++
 3 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/doc/settings-storage.txt b/doc/settings-storage.txt
index 351b17e..11b127f 100644
--- a/doc/settings-storage.txt
+++ b/doc/settings-storage.txt
@@ -94,10 +94,12 @@ Attributes are stored using their handle as group name (decimal format).
 
 Each group contains:
 
-  UUID		String		128-bit UUID of the attribute
+  UUID			String		128-bit UUID of the attribute
 
-  Value		String		Value of the attribute as hexadecimal encoded
-				string
+  Value			String		Value of the attribute as hexadecimal encoded
+					string
+
+  EndGroupHandle	Integer		End group handle in decimal format
 
 Sample:
   [1]
diff --git a/src/adapter.c b/src/adapter.c
index b962bc1..37e85ed 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -2419,7 +2419,8 @@ static gboolean record_has_uuid(const sdp_record_t *rec,
 }
 
 static void store_attribute_uuid(GKeyFile *key_file, uint16_t start,
-					char *att_uuid, uuid_t uuid)
+					uint16_t end, char *att_uuid,
+					uuid_t uuid)
 {
 	char handle[6], uuid_str[33];
 	int i;
@@ -2443,6 +2444,7 @@ static void store_attribute_uuid(GKeyFile *key_file, uint16_t start,
 	sprintf(handle, "%hu", start);
 	g_key_file_set_string(key_file, handle, "UUID", att_uuid);
 	g_key_file_set_string(key_file, handle, "Value", uuid_str);
+	g_key_file_set_integer(key_file, handle, "EndGroupHandle", end);
 }
 
 static void store_sdp_record(char *local, char *peer, int handle, char *value)
@@ -2535,7 +2537,7 @@ static void convert_sdp_entry(char *key, char *value, void *user_data)
 	key_file = g_key_file_new();
 	g_key_file_load_from_file(key_file, filename, 0, NULL);
 
-	store_attribute_uuid(key_file, start, prim_uuid, uuid);
+	store_attribute_uuid(key_file, start, end, prim_uuid, uuid);
 
 	data = g_key_file_to_data(key_file, &length, NULL);
 	if (length > 0) {
@@ -2597,7 +2599,7 @@ static void convert_primaries_entry(char *key, char *value, void *user_data)
 		bt_string2uuid(&uuid, uuid_str);
 		sdp_uuid128_to_uuid(&uuid);
 
-		store_attribute_uuid(key_file, start, prim_uuid, uuid);
+		store_attribute_uuid(key_file, start, end, prim_uuid, uuid);
 	}
 
 	g_strfreev(services);
diff --git a/src/device.c b/src/device.c
index 77466ff..780a496 100644
--- a/src/device.c
+++ b/src/device.c
@@ -1907,6 +1907,7 @@ static void load_att_info(struct btd_device *device, const gchar *local,
 
 	for (handle = groups; *handle; handle++) {
 		gboolean uuid_ok;
+		gint end;
 
 		str = g_key_file_get_string(key_file, *handle, "UUID", NULL);
 		if (!str)
@@ -1922,8 +1923,16 @@ static void load_att_info(struct btd_device *device, const gchar *local,
 		if (!str)
 			continue;
 
+		end = g_key_file_get_integer(key_file, *handle,
+						"EndGroupHandle", NULL);
+		if (end == 0) {
+			g_free(str);
+			continue;
+		}
+
 		prim = g_new0(struct gatt_primary, 1);
 		prim->range.start = atoi(*handle);
+		prim->range.end = end;
 
 		switch (strlen(str)) {
 		case 4:
@@ -2524,6 +2533,7 @@ static void store_primaries_from_sdp_record(GKeyFile *key_file,
 
 	g_key_file_set_string(key_file, handle, "UUID", prim_uuid);
 	g_key_file_set_string(key_file, handle, "Value", uuid_str);
+	g_key_file_set_integer(key_file, handle, "EndGroupHandle", end);
 
 done:
 	g_free(prim_uuid);
-- 
1.7.9.5


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

end of thread, other threads:[~2012-12-14 17:31 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-14 16:45 [PATCH 1/5] device : Add EndGroupHandle key in attributes storage Frédéric Danis
2012-12-14 16:45 ` [PATCH 2/5] device: Store services in device's attributes file Frédéric Danis
2012-12-14 16:45 ` [PATCH 3/5] adapter: Convert ccc file Frédéric Danis
2012-12-14 17:31   ` Anderson Lizardo
2012-12-14 16:45 ` [PATCH 4/5] device: Add btd_device_get_storage_path() Frédéric Danis
2012-12-14 16:45 ` [PATCH 5/5] attrib-server: Read/write CCC info from new storage Frédéric Danis

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).