diff --git a/obexd/plugins/phonebook-ebook.c b/obexd/plugins/phonebook-ebook.c
index b2f16e0..0b2878a 100644
--- a/obexd/plugins/phonebook-ebook.c
+++ b/obexd/plugins/phonebook-ebook.c
static int traverse_sources(GSList *sources, char *default_src) {
GError *gerr;
- int status;
while (sources != NULL) {
EBook *ebook = e_book_new(E_SOURCE(sources->data), &gerr);
if (ebook == NULL) {
error("Can't create user's address book: %s",
gerr->message);
+ sources = sources->next;
- status = -EIO;
- goto fail;
+ g_error_free(gerr);
+ continue;
}
if (g_strcmp0(default_src, e_source_get_uri(
if (e_book_open(ebook, FALSE, &gerr) == FALSE) {
error("Can't open e-book address book: %s",
gerr->message);
+ sources = sources->next;
- status = -EIO;
- goto fail;
+ g_object_unref(ebook);
+ g_error_free(gerr);
+ continue;
}
if (default_src == NULL)
}
return 0;
-
-fail:
- g_error_free(gerr);
-
- return status;
}
int phonebook_init(void)
GSList *sources = e_source_group_peek_sources(group);
- status = traverse_sources(sources, default_src);
- if (status != 0)
- goto fail;
+ traverse_sources(sources, default_src);
list = list->next;
}