[PATCH obexd 1/5] Fix pulling vCard for multiple ebooks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Problem occurred when there were multiple ebooks and the last one was
empty. Reported vCard number was 0 and no data was transported.
---
 plugins/phonebook-ebook.c |   15 ++++++++-------
 1 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/plugins/phonebook-ebook.c b/plugins/phonebook-ebook.c
index b51d34d..b2f16e0 100644
--- a/plugins/phonebook-ebook.c
+++ b/plugins/phonebook-ebook.c
@@ -51,7 +51,7 @@ struct query_context {
 	phonebook_entry_cb entry_cb;
 	phonebook_cache_ready_cb ready_cb;
 	EBookQuery *query;
-	int count;
+	unsigned int count;
 	GString *buf;
 	char *id;
 	unsigned queued_calls;
@@ -158,7 +158,7 @@ static void ebookpull_cb(EBook *book, const GError *gerr, GList *contacts,
 {
 	struct query_context *data = user_data;
 	GList *l;
-	unsigned int count = data->count, maxcount;
+	unsigned int count = 0, maxcount;
 
 	if (gerr != NULL) {
 		error("E-Book query failed: %s", gerr->message);
@@ -180,9 +180,8 @@ static void ebookpull_cb(EBook *book, const GError *gerr, GList *contacts,
 
 	l = g_list_nth(contacts, data->params->liststartoffset);
 
-	/* FIXME: Missing 0.vcf */
-
-	for (; l && count < maxcount; l = g_list_next(l), count++) {
+	for (; l && count + data->count < maxcount; l = g_list_next(l),
+								count++) {
 		EContact *contact = E_CONTACT(l->data);
 		EVCard *evcard = E_VCARD(contact);
 		char *vcard;
@@ -195,6 +194,8 @@ static void ebookpull_cb(EBook *book, const GError *gerr, GList *contacts,
 		g_free(vcard);
 	}
 
+	data->count += count;
+
 done:
 	g_list_free_full(contacts, g_object_unref);
 
@@ -202,8 +203,8 @@ done:
 
 	data->queued_calls--;
 	if (data->queued_calls == 0)
-		data->contacts_cb(data->buf->str, data->buf->len, count, 0,
-							TRUE, data->user_data);
+		data->contacts_cb(data->buf->str, data->buf->len, data->count,
+						0, TRUE, data->user_data);
 }
 
 static void ebook_entry_cb(EBook *book, const GError *gerr,
-- 
1.7.5.3

--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux