[evolution-data-server] Bug 788370 - Rename address book WebDAV backend to CardDAV
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Bug 788370 - Rename address book WebDAV backend to CardDAV
- Date: Tue, 17 Jul 2018 12:27:29 +0000 (UTC)
commit 73db49a612a8384b70ead3a0e6453d05102c475a
Author: Milan Crha <mcrha redhat com>
Date: Tue Jul 17 14:25:03 2018 +0200
Bug 788370 - Rename address book WebDAV backend to CardDAV
po/POTFILES.in | 4 +-
src/addressbook/backends/CMakeLists.txt | 3 +-
src/addressbook/backends/carddav/CMakeLists.txt | 44 +++
.../e-book-backend-carddav-factory.c} | 26 +-
.../e-book-backend-carddav.c} | 374 ++++++++++-----------
.../backends/carddav/e-book-backend-carddav.h | 63 ++++
src/addressbook/backends/webdav/CMakeLists.txt | 44 ---
.../backends/webdav/e-book-backend-webdav.h | 63 ----
src/libebackend/e-webdav-collection-backend.c | 2 +-
.../evolution-source-registry/CMakeLists.txt | 2 +-
...ebdav-stub.source.in => carddav-stub.source.in} | 0
.../evolution-source-registry-migrate-tweaks.c | 42 ++-
.../evolution-source-registry-resource.xml | 2 +-
13 files changed, 354 insertions(+), 315 deletions(-)
---
diff --git a/po/POTFILES.in b/po/POTFILES.in
index de740a4b2..286c7c310 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,12 +1,12 @@
# List of source files containing translatable strings.
# Please keep this list in alphabetic order.
[encoding: UTF-8]
+src/addressbook/backends/carddav/e-book-backend-carddav.c
src/addressbook/backends/file/e-book-backend-file.c
src/addressbook/backends/file/e-book-backend-file-migrate-bdb.c
src/addressbook/backends/google/e-book-backend-google.c
src/addressbook/backends/google/e-book-google-utils.c
src/addressbook/backends/ldap/e-book-backend-ldap.c
-src/addressbook/backends/webdav/e-book-backend-webdav.c
src/addressbook/libebook-contacts/e-book-contacts-types.c
src/addressbook/libebook-contacts/e-contact.c
src/addressbook/libebook-contacts/e-phone-number.c
@@ -240,6 +240,7 @@ src/services/evolution-alarm-notify/e-alarm-notify.c
src/services/evolution-calendar-factory/evolution-calendar-factory.c
[type: gettext/ini]src/services/evolution-source-registry/builtin/birthdays.source.in
[type: gettext/ini]src/services/evolution-source-registry/builtin/caldav-stub.source.in
+[type: gettext/ini]src/services/evolution-source-registry/builtin/carddav-stub.source.in
[type: gettext/ini]src/services/evolution-source-registry/builtin/contacts-stub.source.in
[type: gettext/ini]src/services/evolution-source-registry/builtin/google-stub.source.in
[type: gettext/ini]src/services/evolution-source-registry/builtin/ldap-stub.source.in
@@ -254,7 +255,6 @@ src/services/evolution-calendar-factory/evolution-calendar-factory.c
[type: gettext/ini]src/services/evolution-source-registry/builtin/vfolder.source.in
[type: gettext/ini]src/services/evolution-source-registry/builtin/weather-stub.source.in
[type: gettext/ini]src/services/evolution-source-registry/builtin/webcal-stub.source.in
-[type: gettext/ini]src/services/evolution-source-registry/builtin/webdav-stub.source.in
src/services/evolution-source-registry/evolution-source-registry.c
src/services/evolution-user-prompter/evolution-user-prompter.c
src/services/evolution-user-prompter/prompt-user-gtk.c
diff --git a/src/addressbook/backends/CMakeLists.txt b/src/addressbook/backends/CMakeLists.txt
index 2d1693d5b..dced9968e 100644
--- a/src/addressbook/backends/CMakeLists.txt
+++ b/src/addressbook/backends/CMakeLists.txt
@@ -1,3 +1,4 @@
+add_subdirectory(carddav)
add_subdirectory(file)
if(ENABLE_GOOGLE)
@@ -7,5 +8,3 @@ endif(ENABLE_GOOGLE)
if(HAVE_LDAP)
add_subdirectory(ldap)
endif(HAVE_LDAP)
-
-add_subdirectory(webdav)
diff --git a/src/addressbook/backends/carddav/CMakeLists.txt b/src/addressbook/backends/carddav/CMakeLists.txt
new file mode 100644
index 000000000..819911fa1
--- /dev/null
+++ b/src/addressbook/backends/carddav/CMakeLists.txt
@@ -0,0 +1,44 @@
+set(DEPENDENCIES
+ ebackend
+ ebook
+ ebook-contacts
+ edataserver
+ edata-book
+)
+
+add_library(ebookbackendcarddav MODULE
+ e-book-backend-carddav.c
+ e-book-backend-carddav.h
+ e-book-backend-carddav-factory.c
+)
+
+add_dependencies(ebookbackendcarddav
+ ${DEPENDENCIES}
+)
+
+target_compile_definitions(ebookbackendcarddav PRIVATE
+ -DG_LOG_DOMAIN=\"e-book-backend-carddav\"
+ -DBACKENDDIR=\"${ebook_backenddir}\"
+)
+
+target_compile_options(ebookbackendcarddav PUBLIC
+ ${ADDRESSBOOK_CFLAGS}
+)
+
+target_include_directories(ebookbackendcarddav PUBLIC
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}/src
+ ${CMAKE_SOURCE_DIR}/src
+ ${CMAKE_BINARY_DIR}/src/addressbook
+ ${CMAKE_SOURCE_DIR}/src/addressbook
+ ${ADDRESSBOOK_INCLUDE_DIRS}
+)
+
+target_link_libraries(ebookbackendcarddav
+ ${DEPENDENCIES}
+ ${ADDRESSBOOK_LDFLAGS}
+)
+
+install(TARGETS ebookbackendcarddav
+ DESTINATION ${ebook_backenddir}
+)
diff --git a/src/addressbook/backends/webdav/e-book-backend-webdav-factory.c
b/src/addressbook/backends/carddav/e-book-backend-carddav-factory.c
similarity index 67%
rename from src/addressbook/backends/webdav/e-book-backend-webdav-factory.c
rename to src/addressbook/backends/carddav/e-book-backend-carddav-factory.c
index 1887ef05e..b3fcd2f4a 100644
--- a/src/addressbook/backends/webdav/e-book-backend-webdav-factory.c
+++ b/src/addressbook/backends/carddav/e-book-backend-carddav-factory.c
@@ -1,4 +1,4 @@
-/* e-book-backend-webdav-factory.c - Webdav contact backend.
+/* e-book-backend-carddav-factory.c - CardDAV contact backend.
*
* Copyright (C) 2008 Matthias Braun <matze braunis de>
*
@@ -19,12 +19,12 @@
#include "evolution-data-server-config.h"
-#include "e-book-backend-webdav.h"
+#include "e-book-backend-carddav.h"
-#define FACTORY_NAME "webdav"
+#define FACTORY_NAME "carddav"
-typedef EBookBackendFactory EBookBackendWebdavFactory;
-typedef EBookBackendFactoryClass EBookBackendWebdavFactoryClass;
+typedef EBookBackendFactory EBookBackendCardDAVFactory;
+typedef EBookBackendFactoryClass EBookBackendCardDAVFactoryClass;
static EModule *e_module;
@@ -33,15 +33,15 @@ void e_module_load (GTypeModule *type_module);
void e_module_unload (GTypeModule *type_module);
/* Forward Declarations */
-GType e_book_backend_webdav_factory_get_type (void);
+GType e_book_backend_carddav_factory_get_type (void);
G_DEFINE_DYNAMIC_TYPE (
- EBookBackendWebdavFactory,
- e_book_backend_webdav_factory,
+ EBookBackendCardDAVFactory,
+ e_book_backend_carddav_factory,
E_TYPE_BOOK_BACKEND_FACTORY)
static void
-e_book_backend_webdav_factory_class_init (EBookBackendFactoryClass *class)
+e_book_backend_carddav_factory_class_init (EBookBackendFactoryClass *class)
{
EBackendFactoryClass *backend_factory_class;
@@ -50,16 +50,16 @@ e_book_backend_webdav_factory_class_init (EBookBackendFactoryClass *class)
backend_factory_class->share_subprocess = TRUE;
class->factory_name = FACTORY_NAME;
- class->backend_type = E_TYPE_BOOK_BACKEND_WEBDAV;
+ class->backend_type = E_TYPE_BOOK_BACKEND_CARDDAV;
}
static void
-e_book_backend_webdav_factory_class_finalize (EBookBackendFactoryClass *class)
+e_book_backend_carddav_factory_class_finalize (EBookBackendFactoryClass *class)
{
}
static void
-e_book_backend_webdav_factory_init (EBookBackendFactory *factory)
+e_book_backend_carddav_factory_init (EBookBackendFactory *factory)
{
}
@@ -68,7 +68,7 @@ e_module_load (GTypeModule *type_module)
{
e_module = E_MODULE (type_module);
- e_book_backend_webdav_factory_register_type (type_module);
+ e_book_backend_carddav_factory_register_type (type_module);
}
G_MODULE_EXPORT void
diff --git a/src/addressbook/backends/webdav/e-book-backend-webdav.c
b/src/addressbook/backends/carddav/e-book-backend-carddav.c
similarity index 79%
rename from src/addressbook/backends/webdav/e-book-backend-webdav.c
rename to src/addressbook/backends/carddav/e-book-backend-carddav.c
index 37012d411..29c27927e 100644
--- a/src/addressbook/backends/webdav/e-book-backend-webdav.c
+++ b/src/addressbook/backends/carddav/e-book-backend-carddav.c
@@ -26,7 +26,7 @@
#include "libedataserver/libedataserver.h"
-#include "e-book-backend-webdav.h"
+#include "e-book-backend-carddav.h"
#define E_WEBDAV_MAX_MULTIGET_AMOUNT 100 /* what's the maximum count of items to fetch within a multiget
request */
@@ -35,7 +35,7 @@
#define EDB_ERROR(_code) e_data_book_create_error (_code, NULL)
#define EDB_ERROR_EX(_code, _msg) e_data_book_create_error (_code, _msg)
-struct _EBookBackendWebDAVPrivate {
+struct _EBookBackendCardDAVPrivate {
/* The main WebDAV session */
EWebDAVSession *webdav;
GMutex webdav_lock;
@@ -47,14 +47,14 @@ struct _EBookBackendWebDAVPrivate {
gboolean is_google;
};
-G_DEFINE_TYPE (EBookBackendWebDAV, e_book_backend_webdav, E_TYPE_BOOK_META_BACKEND)
+G_DEFINE_TYPE (EBookBackendCardDAV, e_book_backend_carddav, E_TYPE_BOOK_META_BACKEND)
static EWebDAVSession *
-ebb_webdav_ref_session (EBookBackendWebDAV *bbdav)
+ebb_carddav_ref_session (EBookBackendCardDAV *bbdav)
{
EWebDAVSession *webdav;
- g_return_val_if_fail (E_IS_BOOK_BACKEND_WEBDAV (bbdav), NULL);
+ g_return_val_if_fail (E_IS_BOOK_BACKEND_CARDDAV (bbdav), NULL);
g_mutex_lock (&bbdav->priv->webdav_lock);
if (bbdav->priv->webdav)
@@ -67,25 +67,25 @@ ebb_webdav_ref_session (EBookBackendWebDAV *bbdav)
}
static gboolean
-ebb_webdav_connect_sync (EBookMetaBackend *meta_backend,
- const ENamedParameters *credentials,
- ESourceAuthenticationResult *out_auth_result,
- gchar **out_certificate_pem,
- GTlsCertificateFlags *out_certificate_errors,
- GCancellable *cancellable,
- GError **error)
+ebb_carddav_connect_sync (EBookMetaBackend *meta_backend,
+ const ENamedParameters *credentials,
+ ESourceAuthenticationResult *out_auth_result,
+ gchar **out_certificate_pem,
+ GTlsCertificateFlags *out_certificate_errors,
+ GCancellable *cancellable,
+ GError **error)
{
- EBookBackendWebDAV *bbdav;
+ EBookBackendCardDAV *bbdav;
EWebDAVSession *webdav;
GHashTable *capabilities = NULL, *allows = NULL;
ESource *source;
gboolean success, is_writable = FALSE;
GError *local_error = NULL;
- g_return_val_if_fail (E_IS_BOOK_BACKEND_WEBDAV (meta_backend), FALSE);
+ g_return_val_if_fail (E_IS_BOOK_BACKEND_CARDDAV (meta_backend), FALSE);
g_return_val_if_fail (out_auth_result != NULL, FALSE);
- bbdav = E_BOOK_BACKEND_WEBDAV (meta_backend);
+ bbdav = E_BOOK_BACKEND_CARDDAV (meta_backend);
g_mutex_lock (&bbdav->priv->webdav_lock);
if (bbdav->priv->webdav) {
@@ -154,7 +154,7 @@ ebb_webdav_connect_sync (EBookMetaBackend *meta_backend,
g_clear_error (&local_error);
success = TRUE;
- /* Google's WebDAV doesn't like OPTIONS, hard-code it */
+ /* Google's CardDAV doesn't like OPTIONS, hard-code it */
capabilities = g_hash_table_new_full (camel_strcase_hash,
camel_strcase_equal, g_free, NULL);
g_hash_table_insert (capabilities, g_strdup
(E_WEBDAV_CAPABILITY_ADDRESSBOOK), GINT_TO_POINTER (1));
@@ -217,7 +217,7 @@ ebb_webdav_connect_sync (EBookMetaBackend *meta_backend,
success = FALSE;
g_set_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_DATA,
- _("Given URL “%s” doesn’t reference WebDAV address book"), uri);
+ _("Given URL “%s” doesn’t reference CardDAV address book"), uri);
g_free (uri);
@@ -316,16 +316,16 @@ ebb_webdav_connect_sync (EBookMetaBackend *meta_backend,
}
static gboolean
-ebb_webdav_disconnect_sync (EBookMetaBackend *meta_backend,
- GCancellable *cancellable,
- GError **error)
+ebb_carddav_disconnect_sync (EBookMetaBackend *meta_backend,
+ GCancellable *cancellable,
+ GError **error)
{
- EBookBackendWebDAV *bbdav;
+ EBookBackendCardDAV *bbdav;
ESource *source;
- g_return_val_if_fail (E_IS_BOOK_BACKEND_WEBDAV (meta_backend), FALSE);
+ g_return_val_if_fail (E_IS_BOOK_BACKEND_CARDDAV (meta_backend), FALSE);
- bbdav = E_BOOK_BACKEND_WEBDAV (meta_backend);
+ bbdav = E_BOOK_BACKEND_CARDDAV (meta_backend);
g_mutex_lock (&bbdav->priv->webdav_lock);
@@ -343,9 +343,9 @@ ebb_webdav_disconnect_sync (EBookMetaBackend *meta_backend,
}
static void
-ebb_webdav_update_nfo_with_contact (EBookMetaBackendInfo *nfo,
- EContact *contact,
- const gchar *etag)
+ebb_carddav_update_nfo_with_contact (EBookMetaBackendInfo *nfo,
+ EContact *contact,
+ const gchar *etag)
{
const gchar *uid;
@@ -376,13 +376,13 @@ ebb_webdav_update_nfo_with_contact (EBookMetaBackendInfo *nfo,
}
static gboolean
-ebb_webdav_multiget_response_cb (EWebDAVSession *webdav,
- xmlXPathContextPtr xpath_ctx,
- const gchar *xpath_prop_prefix,
- const SoupURI *request_uri,
- const gchar *href,
- guint status_code,
- gpointer user_data)
+ebb_carddav_multiget_response_cb (EWebDAVSession *webdav,
+ xmlXPathContextPtr xpath_ctx,
+ const gchar *xpath_prop_prefix,
+ const SoupURI *request_uri,
+ const gchar *href,
+ guint status_code,
+ gpointer user_data)
{
GSList **from_link = user_data;
@@ -421,7 +421,7 @@ ebb_webdav_multiget_response_cb (EWebDAVSession *webdav,
if (link == *from_link)
*from_link = g_slist_next (*from_link);
- ebb_webdav_update_nfo_with_contact (nfo, contact,
etag);
+ ebb_carddav_update_nfo_with_contact (nfo, contact,
etag);
break;
}
@@ -440,12 +440,12 @@ ebb_webdav_multiget_response_cb (EWebDAVSession *webdav,
}
static gboolean
-ebb_webdav_multiget_from_sets_sync (EBookBackendWebDAV *bbdav,
- EWebDAVSession *webdav,
- GSList **in_link,
- GSList **set2,
- GCancellable *cancellable,
- GError **error)
+ebb_carddav_multiget_from_sets_sync (EBookBackendCardDAV *bbdav,
+ EWebDAVSession *webdav,
+ GSList **in_link,
+ GSList **set2,
+ GCancellable *cancellable,
+ GError **error)
{
EXmlDocument *xml;
gint left_to_go = E_WEBDAV_MAX_MULTIGET_AMOUNT;
@@ -501,7 +501,7 @@ ebb_webdav_multiget_from_sets_sync (EBookBackendWebDAV *bbdav,
GSList *from_link = *in_link;
success = e_webdav_session_report_sync (webdav, NULL, NULL, xml,
- ebb_webdav_multiget_response_cb, &from_link, NULL, NULL, cancellable, error);
+ ebb_carddav_multiget_response_cb, &from_link, NULL, NULL, cancellable, error);
}
g_object_unref (xml);
@@ -512,13 +512,13 @@ ebb_webdav_multiget_from_sets_sync (EBookBackendWebDAV *bbdav,
}
static gboolean
-ebb_webdav_get_contact_items_cb (EWebDAVSession *webdav,
- xmlXPathContextPtr xpath_ctx,
- const gchar *xpath_prop_prefix,
- const SoupURI *request_uri,
- const gchar *href,
- guint status_code,
- gpointer user_data)
+ebb_carddav_get_contact_items_cb (EWebDAVSession *webdav,
+ xmlXPathContextPtr xpath_ctx,
+ const gchar *xpath_prop_prefix,
+ const SoupURI *request_uri,
+ const gchar *href,
+ guint status_code,
+ gpointer user_data)
{
GHashTable *known_items = user_data; /* gchar *href ~> EBookMetaBackendInfo * */
@@ -554,22 +554,22 @@ ebb_webdav_get_contact_items_cb (EWebDAVSession *webdav,
return TRUE;
}
-typedef struct _WebDAVChangesData {
+typedef struct _CardDAVChangesData {
GSList **out_modified_objects;
GSList **out_removed_objects;
GHashTable *known_items; /* gchar *href ~> EBookMetaBackendInfo * */
-} WebDAVChangesData;
+} CardDAVChangesData;
static gboolean
-ebb_webdav_search_changes_cb (EBookCache *book_cache,
- const gchar *uid,
- const gchar *revision,
- const gchar *object,
- const gchar *extra,
- EOfflineState offline_state,
- gpointer user_data)
+ebb_carddav_search_changes_cb (EBookCache *book_cache,
+ const gchar *uid,
+ const gchar *revision,
+ const gchar *object,
+ const gchar *extra,
+ EOfflineState offline_state,
+ gpointer user_data)
{
- WebDAVChangesData *ccd = user_data;
+ CardDAVChangesData *ccd = user_data;
g_return_val_if_fail (ccd != NULL, FALSE);
g_return_val_if_fail (uid != NULL, FALSE);
@@ -603,11 +603,11 @@ ebb_webdav_search_changes_cb (EBookCache *book_cache,
}
static void
-ebb_webdav_check_credentials_error (EBookBackendWebDAV *bbdav,
- EWebDAVSession *webdav,
- GError *op_error)
+ebb_carddav_check_credentials_error (EBookBackendCardDAV *bbdav,
+ EWebDAVSession *webdav,
+ GError *op_error)
{
- g_return_if_fail (E_IS_BOOK_BACKEND_WEBDAV (bbdav));
+ g_return_if_fail (E_IS_BOOK_BACKEND_CARDDAV (bbdav));
if (g_error_matches (op_error, SOUP_HTTP_ERROR, SOUP_STATUS_SSL_FAILED) && webdav) {
op_error->domain = E_DATA_BOOK_ERROR;
@@ -630,18 +630,18 @@ ebb_webdav_check_credentials_error (EBookBackendWebDAV *bbdav,
}
static gboolean
-ebb_webdav_get_changes_sync (EBookMetaBackend *meta_backend,
- const gchar *last_sync_tag,
- gboolean is_repeat,
- gchar **out_new_sync_tag,
- gboolean *out_repeat,
- GSList **out_created_objects,
- GSList **out_modified_objects,
- GSList **out_removed_objects,
- GCancellable *cancellable,
- GError **error)
+ebb_carddav_get_changes_sync (EBookMetaBackend *meta_backend,
+ const gchar *last_sync_tag,
+ gboolean is_repeat,
+ gchar **out_new_sync_tag,
+ gboolean *out_repeat,
+ GSList **out_created_objects,
+ GSList **out_modified_objects,
+ GSList **out_removed_objects,
+ GCancellable *cancellable,
+ GError **error)
{
- EBookBackendWebDAV *bbdav;
+ EBookBackendCardDAV *bbdav;
EWebDAVSession *webdav;
EXmlDocument *xml;
GHashTable *known_items; /* gchar *href ~> EBookMetaBackendInfo * */
@@ -650,7 +650,7 @@ ebb_webdav_get_changes_sync (EBookMetaBackend *meta_backend,
gboolean success;
GError *local_error = NULL;
- g_return_val_if_fail (E_IS_BOOK_BACKEND_WEBDAV (meta_backend), FALSE);
+ g_return_val_if_fail (E_IS_BOOK_BACKEND_CARDDAV (meta_backend), FALSE);
g_return_val_if_fail (out_new_sync_tag, FALSE);
g_return_val_if_fail (out_created_objects, FALSE);
g_return_val_if_fail (out_modified_objects, FALSE);
@@ -661,8 +661,8 @@ ebb_webdav_get_changes_sync (EBookMetaBackend *meta_backend,
*out_modified_objects = NULL;
*out_removed_objects = NULL;
- bbdav = E_BOOK_BACKEND_WEBDAV (meta_backend);
- webdav = ebb_webdav_ref_session (bbdav);
+ bbdav = E_BOOK_BACKEND_CARDDAV (meta_backend);
+ webdav = ebb_carddav_ref_session (bbdav);
if (bbdav->priv->ctag_supported) {
gchar *new_sync_tag = NULL;
@@ -693,13 +693,13 @@ ebb_webdav_get_changes_sync (EBookMetaBackend *meta_backend,
known_items = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, e_book_meta_backend_info_free);
success = e_webdav_session_propfind_sync (webdav, NULL, E_WEBDAV_DEPTH_THIS_AND_CHILDREN, xml,
- ebb_webdav_get_contact_items_cb, known_items, cancellable, &local_error);
+ ebb_carddav_get_contact_items_cb, known_items, cancellable, &local_error);
g_object_unref (xml);
if (success) {
EBookCache *book_cache;
- WebDAVChangesData ccd;
+ CardDAVChangesData ccd;
ccd.out_modified_objects = out_modified_objects;
ccd.out_removed_objects = out_removed_objects;
@@ -707,7 +707,7 @@ ebb_webdav_get_changes_sync (EBookMetaBackend *meta_backend,
book_cache = e_book_meta_backend_ref_cache (meta_backend);
- success = e_book_cache_search_with_callback (book_cache, NULL, ebb_webdav_search_changes_cb,
&ccd, cancellable, &local_error);
+ success = e_book_cache_search_with_callback (book_cache, NULL, ebb_carddav_search_changes_cb,
&ccd, cancellable, &local_error);
g_clear_object (&book_cache);
}
@@ -732,12 +732,12 @@ ebb_webdav_get_changes_sync (EBookMetaBackend *meta_backend,
}
do {
- success = ebb_webdav_multiget_from_sets_sync (bbdav, webdav, &link, &set2,
cancellable, &local_error);
+ success = ebb_carddav_multiget_from_sets_sync (bbdav, webdav, &link, &set2,
cancellable, &local_error);
} while (success && link);
}
if (local_error) {
- ebb_webdav_check_credentials_error (bbdav, webdav, local_error);
+ ebb_carddav_check_credentials_error (bbdav, webdav, local_error);
g_propagate_error (error, local_error);
}
@@ -747,13 +747,13 @@ ebb_webdav_get_changes_sync (EBookMetaBackend *meta_backend,
}
static gboolean
-ebb_webdav_extract_existing_cb (EWebDAVSession *webdav,
- xmlXPathContextPtr xpath_ctx,
- const gchar *xpath_prop_prefix,
- const SoupURI *request_uri,
- const gchar *href,
- guint status_code,
- gpointer user_data)
+ebb_carddav_extract_existing_cb (EWebDAVSession *webdav,
+ xmlXPathContextPtr xpath_ctx,
+ const gchar *xpath_prop_prefix,
+ const SoupURI *request_uri,
+ const gchar *href,
+ guint status_code,
+ gpointer user_data)
{
GSList **out_existing_objects = user_data;
@@ -797,24 +797,24 @@ ebb_webdav_extract_existing_cb (EWebDAVSession *webdav,
}
static gboolean
-ebb_webdav_list_existing_sync (EBookMetaBackend *meta_backend,
- gchar **out_new_sync_tag,
- GSList **out_existing_objects,
- GCancellable *cancellable,
- GError **error)
+ebb_carddav_list_existing_sync (EBookMetaBackend *meta_backend,
+ gchar **out_new_sync_tag,
+ GSList **out_existing_objects,
+ GCancellable *cancellable,
+ GError **error)
{
- EBookBackendWebDAV *bbdav;
+ EBookBackendCardDAV *bbdav;
EWebDAVSession *webdav;
EXmlDocument *xml;
GError *local_error = NULL;
gboolean success;
- g_return_val_if_fail (E_IS_BOOK_BACKEND_WEBDAV (meta_backend), FALSE);
+ g_return_val_if_fail (E_IS_BOOK_BACKEND_CARDDAV (meta_backend), FALSE);
g_return_val_if_fail (out_existing_objects != NULL, FALSE);
*out_existing_objects = NULL;
- bbdav = E_BOOK_BACKEND_WEBDAV (meta_backend);
+ bbdav = E_BOOK_BACKEND_CARDDAV (meta_backend);
xml = e_xml_document_new (E_WEBDAV_NS_CARDDAV, "addressbook-query");
g_return_val_if_fail (xml != NULL, FALSE);
@@ -833,10 +833,10 @@ ebb_webdav_list_existing_sync (EBookMetaBackend *meta_backend,
e_xml_document_end_element (xml); /* address-data */
e_xml_document_end_element (xml); /* prop */
- webdav = ebb_webdav_ref_session (bbdav);
+ webdav = ebb_carddav_ref_session (bbdav);
success = e_webdav_session_report_sync (webdav, NULL, E_WEBDAV_DEPTH_THIS, xml,
- ebb_webdav_extract_existing_cb, out_existing_objects, NULL, NULL, cancellable, &local_error);
+ ebb_carddav_extract_existing_cb, out_existing_objects, NULL, NULL, cancellable, &local_error);
g_object_unref (xml);
@@ -844,7 +844,7 @@ ebb_webdav_list_existing_sync (EBookMetaBackend *meta_backend,
*out_existing_objects = g_slist_reverse (*out_existing_objects);
if (local_error) {
- ebb_webdav_check_credentials_error (bbdav, webdav, local_error);
+ ebb_carddav_check_credentials_error (bbdav, webdav, local_error);
g_propagate_error (error, local_error);
}
@@ -854,15 +854,15 @@ ebb_webdav_list_existing_sync (EBookMetaBackend *meta_backend,
}
static gchar *
-ebb_webdav_uid_to_uri (EBookBackendWebDAV *bbdav,
- const gchar *uid,
- const gchar *extension)
+ebb_carddav_uid_to_uri (EBookBackendCardDAV *bbdav,
+ const gchar *uid,
+ const gchar *extension)
{
ESourceWebdav *webdav_extension;
SoupURI *soup_uri;
gchar *uri, *tmp, *filename, *uid_hash = NULL;
- g_return_val_if_fail (E_IS_BOOK_BACKEND_WEBDAV (bbdav), NULL);
+ g_return_val_if_fail (E_IS_BOOK_BACKEND_CARDDAV (bbdav), NULL);
g_return_val_if_fail (uid != NULL, NULL);
webdav_extension = e_source_get_extension (e_backend_get_source (E_BACKEND (bbdav)),
E_SOURCE_EXTENSION_WEBDAV_BACKEND);
@@ -912,27 +912,27 @@ ebb_webdav_uid_to_uri (EBookBackendWebDAV *bbdav,
}
static gboolean
-ebb_webdav_load_contact_sync (EBookMetaBackend *meta_backend,
- const gchar *uid,
- const gchar *extra,
- EContact **out_contact,
- gchar **out_extra,
- GCancellable *cancellable,
- GError **error)
+ebb_carddav_load_contact_sync (EBookMetaBackend *meta_backend,
+ const gchar *uid,
+ const gchar *extra,
+ EContact **out_contact,
+ gchar **out_extra,
+ GCancellable *cancellable,
+ GError **error)
{
- EBookBackendWebDAV *bbdav;
+ EBookBackendCardDAV *bbdav;
EWebDAVSession *webdav;
gchar *uri = NULL, *href = NULL, *etag = NULL, *bytes = NULL;
gsize length = -1;
gboolean success = FALSE;
GError *local_error = NULL;
- g_return_val_if_fail (E_IS_BOOK_BACKEND_WEBDAV (meta_backend), FALSE);
+ g_return_val_if_fail (E_IS_BOOK_BACKEND_CARDDAV (meta_backend), FALSE);
g_return_val_if_fail (uid != NULL, FALSE);
g_return_val_if_fail (out_contact != NULL, FALSE);
g_return_val_if_fail (out_extra != NULL, FALSE);
- bbdav = E_BOOK_BACKEND_WEBDAV (meta_backend);
+ bbdav = E_BOOK_BACKEND_CARDDAV (meta_backend);
/* When called immediately after save and the server didn't change the vCard,
then the 'extra' contains "href" + "\n" + "vCard", to avoid unneeded GET
@@ -954,7 +954,7 @@ ebb_webdav_load_contact_sync (EBookMetaBackend *meta_backend,
}
}
- webdav = ebb_webdav_ref_session (bbdav);
+ webdav = ebb_carddav_ref_session (bbdav);
if (extra && *extra) {
uri = g_strdup (extra);
@@ -994,7 +994,7 @@ ebb_webdav_load_contact_sync (EBookMetaBackend *meta_backend,
}
if (!success) {
- uri = ebb_webdav_uid_to_uri (bbdav, uid, bbdav->priv->is_google ? NULL : ".vcf");
+ uri = ebb_carddav_uid_to_uri (bbdav, uid, bbdav->priv->is_google ? NULL : ".vcf");
g_return_val_if_fail (uri != NULL, FALSE);
g_clear_error (&local_error);
@@ -1006,7 +1006,7 @@ ebb_webdav_load_contact_sync (EBookMetaBackend *meta_backend,
if (!success && !bbdav->priv->is_google && !g_cancellable_is_cancelled (cancellable) &&
g_error_matches (local_error, SOUP_HTTP_ERROR, SOUP_STATUS_NOT_FOUND)) {
g_free (uri);
- uri = ebb_webdav_uid_to_uri (bbdav, uid, NULL);
+ uri = ebb_carddav_uid_to_uri (bbdav, uid, NULL);
if (uri) {
g_clear_error (&local_error);
@@ -1047,7 +1047,7 @@ ebb_webdav_load_contact_sync (EBookMetaBackend *meta_backend,
g_free (bytes);
if (local_error) {
- ebb_webdav_check_credentials_error (bbdav, webdav, local_error);
+ ebb_carddav_check_credentials_error (bbdav, webdav, local_error);
g_propagate_error (error, local_error);
}
@@ -1057,30 +1057,30 @@ ebb_webdav_load_contact_sync (EBookMetaBackend *meta_backend,
}
static gboolean
-ebb_webdav_save_contact_sync (EBookMetaBackend *meta_backend,
- gboolean overwrite_existing,
- EConflictResolution conflict_resolution,
- /* const */ EContact *contact,
- const gchar *extra,
- gchar **out_new_uid,
- gchar **out_new_extra,
- GCancellable *cancellable,
- GError **error)
+ebb_carddav_save_contact_sync (EBookMetaBackend *meta_backend,
+ gboolean overwrite_existing,
+ EConflictResolution conflict_resolution,
+ /* const */ EContact *contact,
+ const gchar *extra,
+ gchar **out_new_uid,
+ gchar **out_new_extra,
+ GCancellable *cancellable,
+ GError **error)
{
- EBookBackendWebDAV *bbdav;
+ EBookBackendCardDAV *bbdav;
EWebDAVSession *webdav;
gchar *href = NULL, *etag = NULL, *uid = NULL;
gchar *vcard_string = NULL;
GError *local_error = NULL;
gboolean success;
- g_return_val_if_fail (E_IS_BOOK_BACKEND_WEBDAV (meta_backend), FALSE);
+ g_return_val_if_fail (E_IS_BOOK_BACKEND_CARDDAV (meta_backend), FALSE);
g_return_val_if_fail (E_IS_CONTACT (contact), FALSE);
g_return_val_if_fail (out_new_uid, FALSE);
g_return_val_if_fail (out_new_extra, FALSE);
- bbdav = E_BOOK_BACKEND_WEBDAV (meta_backend);
- webdav = ebb_webdav_ref_session (bbdav);
+ bbdav = E_BOOK_BACKEND_CARDDAV (meta_backend);
+ webdav = ebb_carddav_ref_session (bbdav);
uid = e_contact_get (contact, E_CONTACT_UID);
etag = e_vcard_util_dup_x_attribute (E_VCARD (contact), E_WEBDAV_X_ETAG);
@@ -1094,7 +1094,7 @@ ebb_webdav_save_contact_sync (EBookMetaBackend *meta_backend,
gboolean force_write = FALSE;
if (!extra || !*extra)
- href = ebb_webdav_uid_to_uri (bbdav, uid, ".vcf");
+ href = ebb_carddav_uid_to_uri (bbdav, uid, ".vcf");
if (overwrite_existing) {
switch (conflict_resolution) {
@@ -1153,7 +1153,7 @@ ebb_webdav_save_contact_sync (EBookMetaBackend *meta_backend,
g_free (uid);
if (local_error) {
- ebb_webdav_check_credentials_error (bbdav, webdav, local_error);
+ ebb_carddav_check_credentials_error (bbdav, webdav, local_error);
g_propagate_error (error, local_error);
}
@@ -1163,26 +1163,26 @@ ebb_webdav_save_contact_sync (EBookMetaBackend *meta_backend,
}
static gboolean
-ebb_webdav_remove_contact_sync (EBookMetaBackend *meta_backend,
- EConflictResolution conflict_resolution,
- const gchar *uid,
- const gchar *extra,
- const gchar *object,
- GCancellable *cancellable,
- GError **error)
+ebb_carddav_remove_contact_sync (EBookMetaBackend *meta_backend,
+ EConflictResolution conflict_resolution,
+ const gchar *uid,
+ const gchar *extra,
+ const gchar *object,
+ GCancellable *cancellable,
+ GError **error)
{
- EBookBackendWebDAV *bbdav;
+ EBookBackendCardDAV *bbdav;
EWebDAVSession *webdav;
EContact *contact;
gchar *etag = NULL;
gboolean success;
GError *local_error = NULL;
- g_return_val_if_fail (E_IS_BOOK_BACKEND_WEBDAV (meta_backend), FALSE);
+ g_return_val_if_fail (E_IS_BOOK_BACKEND_CARDDAV (meta_backend), FALSE);
g_return_val_if_fail (uid != NULL, FALSE);
g_return_val_if_fail (object != NULL, FALSE);
- bbdav = E_BOOK_BACKEND_WEBDAV (meta_backend);
+ bbdav = E_BOOK_BACKEND_CARDDAV (meta_backend);
if (!extra || !*extra) {
g_propagate_error (error, EDB_ERROR (E_DATA_BOOK_STATUS_INVALID_ARG));
@@ -1198,7 +1198,7 @@ ebb_webdav_remove_contact_sync (EBookMetaBackend *meta_backend,
if (conflict_resolution == E_CONFLICT_RESOLUTION_FAIL)
etag = e_vcard_util_dup_x_attribute (E_VCARD (contact), E_WEBDAV_X_ETAG);
- webdav = ebb_webdav_ref_session (bbdav);
+ webdav = ebb_carddav_ref_session (bbdav);
success = e_webdav_session_delete_sync (webdav, extra,
NULL, etag, cancellable, &local_error);
@@ -1206,7 +1206,7 @@ ebb_webdav_remove_contact_sync (EBookMetaBackend *meta_backend,
if (g_error_matches (local_error, SOUP_HTTP_ERROR, SOUP_STATUS_NOT_FOUND)) {
gchar *href;
- href = ebb_webdav_uid_to_uri (bbdav, uid, ".vcf");
+ href = ebb_carddav_uid_to_uri (bbdav, uid, ".vcf");
if (href) {
g_clear_error (&local_error);
success = e_webdav_session_delete_sync (webdav, href,
@@ -1216,7 +1216,7 @@ ebb_webdav_remove_contact_sync (EBookMetaBackend *meta_backend,
}
if (g_error_matches (local_error, SOUP_HTTP_ERROR, SOUP_STATUS_NOT_FOUND)) {
- href = ebb_webdav_uid_to_uri (bbdav, uid, NULL);
+ href = ebb_carddav_uid_to_uri (bbdav, uid, NULL);
if (href) {
g_clear_error (&local_error);
success = e_webdav_session_delete_sync (webdav, href,
@@ -1231,7 +1231,7 @@ ebb_webdav_remove_contact_sync (EBookMetaBackend *meta_backend,
g_free (etag);
if (local_error) {
- ebb_webdav_check_credentials_error (bbdav, webdav, local_error);
+ ebb_carddav_check_credentials_error (bbdav, webdav, local_error);
g_propagate_error (error, local_error);
}
@@ -1241,18 +1241,18 @@ ebb_webdav_remove_contact_sync (EBookMetaBackend *meta_backend,
}
static gboolean
-ebb_webdav_get_ssl_error_details (EBookMetaBackend *meta_backend,
- gchar **out_certificate_pem,
- GTlsCertificateFlags *out_certificate_errors)
+ebb_carddav_get_ssl_error_details (EBookMetaBackend *meta_backend,
+ gchar **out_certificate_pem,
+ GTlsCertificateFlags *out_certificate_errors)
{
- EBookBackendWebDAV *bbdav;
+ EBookBackendCardDAV *bbdav;
EWebDAVSession *webdav;
gboolean res;
- g_return_val_if_fail (E_IS_BOOK_BACKEND_WEBDAV (meta_backend), FALSE);
+ g_return_val_if_fail (E_IS_BOOK_BACKEND_CARDDAV (meta_backend), FALSE);
- bbdav = E_BOOK_BACKEND_WEBDAV (meta_backend);
- webdav = ebb_webdav_ref_session (bbdav);
+ bbdav = E_BOOK_BACKEND_CARDDAV (meta_backend);
+ webdav = ebb_carddav_ref_session (bbdav);
if (!webdav)
return FALSE;
@@ -1265,10 +1265,10 @@ ebb_webdav_get_ssl_error_details (EBookMetaBackend *meta_backend,
}
static gchar *
-ebb_webdav_get_backend_property (EBookBackend *book_backend,
- const gchar *prop_name)
+ebb_carddav_get_backend_property (EBookBackend *book_backend,
+ const gchar *prop_name)
{
- g_return_val_if_fail (E_IS_BOOK_BACKEND_WEBDAV (book_backend), NULL);
+ g_return_val_if_fail (E_IS_BOOK_BACKEND_CARDDAV (book_backend), NULL);
g_return_val_if_fail (prop_name != NULL, NULL);
if (g_str_equal (prop_name, CLIENT_BACKEND_PROPERTY_CAPABILITIES)) {
@@ -1281,12 +1281,12 @@ ebb_webdav_get_backend_property (EBookBackend *book_backend,
}
/* Chain up to parent's method. */
- return E_BOOK_BACKEND_CLASS (e_book_backend_webdav_parent_class)->get_backend_property (book_backend,
prop_name);
+ return E_BOOK_BACKEND_CLASS (e_book_backend_carddav_parent_class)->get_backend_property
(book_backend, prop_name);
}
static gchar *
-ebb_webdav_dup_contact_revision_cb (EBookCache *book_cache,
- EContact *contact)
+ebb_carddav_dup_contact_revision_cb (EBookCache *book_cache,
+ EContact *contact)
{
g_return_val_if_fail (E_IS_CONTACT (contact), NULL);
@@ -1294,80 +1294,80 @@ ebb_webdav_dup_contact_revision_cb (EBookCache *book_cache,
}
static void
-e_book_backend_webdav_constructed (GObject *object)
+e_book_backend_carddav_constructed (GObject *object)
{
- EBookBackendWebDAV *bbdav = E_BOOK_BACKEND_WEBDAV (object);
+ EBookBackendCardDAV *bbdav = E_BOOK_BACKEND_CARDDAV (object);
EBookCache *book_cache;
/* Chain up to parent's method. */
- G_OBJECT_CLASS (e_book_backend_webdav_parent_class)->constructed (object);
+ G_OBJECT_CLASS (e_book_backend_carddav_parent_class)->constructed (object);
book_cache = e_book_meta_backend_ref_cache (E_BOOK_META_BACKEND (bbdav));
g_signal_connect (book_cache, "dup-contact-revision",
- G_CALLBACK (ebb_webdav_dup_contact_revision_cb), NULL);
+ G_CALLBACK (ebb_carddav_dup_contact_revision_cb), NULL);
g_clear_object (&book_cache);
}
static void
-e_book_backend_webdav_dispose (GObject *object)
+e_book_backend_carddav_dispose (GObject *object)
{
- EBookBackendWebDAV *bbdav = E_BOOK_BACKEND_WEBDAV (object);
+ EBookBackendCardDAV *bbdav = E_BOOK_BACKEND_CARDDAV (object);
g_mutex_lock (&bbdav->priv->webdav_lock);
g_clear_object (&bbdav->priv->webdav);
g_mutex_unlock (&bbdav->priv->webdav_lock);
/* Chain up to parent's method. */
- G_OBJECT_CLASS (e_book_backend_webdav_parent_class)->dispose (object);
+ G_OBJECT_CLASS (e_book_backend_carddav_parent_class)->dispose (object);
}
static void
-e_book_backend_webdav_finalize (GObject *object)
+e_book_backend_carddav_finalize (GObject *object)
{
- EBookBackendWebDAV *bbdav = E_BOOK_BACKEND_WEBDAV (object);
+ EBookBackendCardDAV *bbdav = E_BOOK_BACKEND_CARDDAV (object);
g_mutex_clear (&bbdav->priv->webdav_lock);
/* Chain up to parent's method. */
- G_OBJECT_CLASS (e_book_backend_webdav_parent_class)->finalize (object);
+ G_OBJECT_CLASS (e_book_backend_carddav_parent_class)->finalize (object);
}
static void
-e_book_backend_webdav_init (EBookBackendWebDAV *bbdav)
+e_book_backend_carddav_init (EBookBackendCardDAV *bbdav)
{
- bbdav->priv = G_TYPE_INSTANCE_GET_PRIVATE (bbdav, E_TYPE_BOOK_BACKEND_WEBDAV,
EBookBackendWebDAVPrivate);
+ bbdav->priv = G_TYPE_INSTANCE_GET_PRIVATE (bbdav, E_TYPE_BOOK_BACKEND_CARDDAV,
EBookBackendCardDAVPrivate);
g_mutex_init (&bbdav->priv->webdav_lock);
}
static void
-e_book_backend_webdav_class_init (EBookBackendWebDAVClass *klass)
+e_book_backend_carddav_class_init (EBookBackendCardDAVClass *klass)
{
GObjectClass *object_class;
EBookBackendClass *book_backend_class;
EBookMetaBackendClass *book_meta_backend_class;
- g_type_class_add_private (klass, sizeof (EBookBackendWebDAVPrivate));
+ g_type_class_add_private (klass, sizeof (EBookBackendCardDAVPrivate));
book_meta_backend_class = E_BOOK_META_BACKEND_CLASS (klass);
- book_meta_backend_class->backend_module_filename = "libebookbackendwebdav.so";
- book_meta_backend_class->backend_factory_type_name = "EBookBackendWebdavFactory";
- book_meta_backend_class->connect_sync = ebb_webdav_connect_sync;
- book_meta_backend_class->disconnect_sync = ebb_webdav_disconnect_sync;
- book_meta_backend_class->get_changes_sync = ebb_webdav_get_changes_sync;
- book_meta_backend_class->list_existing_sync = ebb_webdav_list_existing_sync;
- book_meta_backend_class->load_contact_sync = ebb_webdav_load_contact_sync;
- book_meta_backend_class->save_contact_sync = ebb_webdav_save_contact_sync;
- book_meta_backend_class->remove_contact_sync = ebb_webdav_remove_contact_sync;
- book_meta_backend_class->get_ssl_error_details = ebb_webdav_get_ssl_error_details;
+ book_meta_backend_class->backend_module_filename = "libebookbackendcarddav.so";
+ book_meta_backend_class->backend_factory_type_name = "EBookBackendCardDAVFactory";
+ book_meta_backend_class->connect_sync = ebb_carddav_connect_sync;
+ book_meta_backend_class->disconnect_sync = ebb_carddav_disconnect_sync;
+ book_meta_backend_class->get_changes_sync = ebb_carddav_get_changes_sync;
+ book_meta_backend_class->list_existing_sync = ebb_carddav_list_existing_sync;
+ book_meta_backend_class->load_contact_sync = ebb_carddav_load_contact_sync;
+ book_meta_backend_class->save_contact_sync = ebb_carddav_save_contact_sync;
+ book_meta_backend_class->remove_contact_sync = ebb_carddav_remove_contact_sync;
+ book_meta_backend_class->get_ssl_error_details = ebb_carddav_get_ssl_error_details;
book_backend_class = E_BOOK_BACKEND_CLASS (klass);
- book_backend_class->get_backend_property = ebb_webdav_get_backend_property;
+ book_backend_class->get_backend_property = ebb_carddav_get_backend_property;
object_class = G_OBJECT_CLASS (klass);
- object_class->constructed = e_book_backend_webdav_constructed;
- object_class->dispose = e_book_backend_webdav_dispose;
- object_class->finalize = e_book_backend_webdav_finalize;
+ object_class->constructed = e_book_backend_carddav_constructed;
+ object_class->dispose = e_book_backend_carddav_dispose;
+ object_class->finalize = e_book_backend_carddav_finalize;
}
diff --git a/src/addressbook/backends/carddav/e-book-backend-carddav.h
b/src/addressbook/backends/carddav/e-book-backend-carddav.h
new file mode 100644
index 000000000..91674a917
--- /dev/null
+++ b/src/addressbook/backends/carddav/e-book-backend-carddav.h
@@ -0,0 +1,63 @@
+/* e-book-backend-carddav.h - CardDAV contact backend.
+ *
+ * Copyright (C) 2008 Matthias Braun <matze braunis de>
+ *
+ * This library is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Authors: Matthias Braun <matze braunis de>
+ */
+
+#ifndef E_BOOK_BACKEND_CARDDAV_H
+#define E_BOOK_BACKEND_CARDDAV_H
+
+#include <libedata-book/libedata-book.h>
+
+/* Standard GObject macros */
+#define E_TYPE_BOOK_BACKEND_CARDDAV \
+ (e_book_backend_carddav_get_type ())
+#define E_BOOK_BACKEND_CARDDAV(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST \
+ ((obj), E_TYPE_BOOK_BACKEND_CARDDAV, EBookBackendCardDAV))
+#define E_BOOK_BACKEND_CARDDAV_CLASS(cls) \
+ (G_TYPE_CHECK_CLASS_CAST \
+ ((cls), E_TYPE_BOOK_BACKEND_CARDDAV, EBookBackendCardDAVClass))
+#define E_IS_BOOK_BACKEND_CARDDAV(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE \
+ ((obj), E_TYPE_BOOK_BACKEND_CARDDAV))
+#define E_IS_BOOK_BACKEND_CARDDAV_CLASS(cls) \
+ (G_TYPE_CHECK_CLASS_TYPE \
+ ((cls), E_TYPE_BOOK_BACKEND_CARDDAV))
+#define E_BOOK_BACKEND_CARDDAV_GET_CLASS(cls) \
+ (G_TYPE_INSTANCE_GET_CLASS \
+ ((obj), E_TYPE_BOOK_BACKEND_CARDDAV, EBookBackendCardDAVClass))
+
+G_BEGIN_DECLS
+
+typedef struct _EBookBackendCardDAV EBookBackendCardDAV;
+typedef struct _EBookBackendCardDAVClass EBookBackendCardDAVClass;
+typedef struct _EBookBackendCardDAVPrivate EBookBackendCardDAVPrivate;
+
+struct _EBookBackendCardDAV {
+ EBookMetaBackend parent;
+ EBookBackendCardDAVPrivate *priv;
+};
+
+struct _EBookBackendCardDAVClass {
+ EBookMetaBackendClass parent_class;
+};
+
+GType e_book_backend_carddav_get_type (void);
+
+G_END_DECLS
+
+#endif /* E_BOOK_BACKEND_CARDDAV_H */
diff --git a/src/libebackend/e-webdav-collection-backend.c b/src/libebackend/e-webdav-collection-backend.c
index 3fe35f612..03c50c21b 100644
--- a/src/libebackend/e-webdav-collection-backend.c
+++ b/src/libebackend/e-webdav-collection-backend.c
@@ -109,7 +109,7 @@ webdav_collection_add_found_source (ECollectionBackend *collection,
switch (source_type) {
case E_WEBDAV_DISCOVER_SUPPORTS_CONTACTS:
backend_name = E_SOURCE_EXTENSION_ADDRESS_BOOK;
- provider = "webdav";
+ provider = "carddav";
identity_prefix = "contacts";
break;
case E_WEBDAV_DISCOVER_SUPPORTS_EVENTS:
diff --git a/src/services/evolution-source-registry/CMakeLists.txt
b/src/services/evolution-source-registry/CMakeLists.txt
index 3ade922ef..a6462a4d0 100644
--- a/src/services/evolution-source-registry/CMakeLists.txt
+++ b/src/services/evolution-source-registry/CMakeLists.txt
@@ -23,13 +23,13 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.gnome.evolution.dataserver.Sources
set(builtin_sources_files
caldav-stub.source
+ carddav-stub.source
contacts-stub.source
google-stub.source
ldap-stub.source
local-stub.source
weather-stub.source
webcal-stub.source
- webdav-stub.source
birthdays.source
local.source
sendmail.source
diff --git a/src/services/evolution-source-registry/builtin/webdav-stub.source.in
b/src/services/evolution-source-registry/builtin/carddav-stub.source.in
similarity index 100%
rename from src/services/evolution-source-registry/builtin/webdav-stub.source.in
rename to src/services/evolution-source-registry/builtin/carddav-stub.source.in
diff --git a/src/services/evolution-source-registry/evolution-source-registry-migrate-tweaks.c
b/src/services/evolution-source-registry/evolution-source-registry-migrate-tweaks.c
index 07d896d8b..82d113d98 100644
--- a/src/services/evolution-source-registry/evolution-source-registry-migrate-tweaks.c
+++ b/src/services/evolution-source-registry/evolution-source-registry-migrate-tweaks.c
@@ -168,6 +168,46 @@ evolution_source_registry_migrate_owncloud_to_webdav (ESourceRegistryServer *ser
return modified;
}
+#define PRIMARY_GROUP_NAME "Data Source"
+
+static gboolean
+evolution_source_registry_migrate_webdav_book_to_carddav (ESourceRegistryServer *server,
+ GKeyFile *key_file,
+ const gchar *uid)
+{
+ gboolean modified = FALSE;
+
+ g_return_val_if_fail (key_file != NULL, FALSE);
+
+ if (g_key_file_has_group (key_file, E_SOURCE_EXTENSION_ADDRESS_BOOK) &&
+ g_key_file_has_key (key_file, E_SOURCE_EXTENSION_ADDRESS_BOOK, "BackendName", NULL)) {
+ gchar *backend_name;
+
+ backend_name = g_key_file_get_string (key_file, E_SOURCE_EXTENSION_ADDRESS_BOOK,
"BackendName", NULL);
+ if (g_strcmp0 (backend_name, "webdav") == 0) {
+ g_key_file_set_string (key_file, E_SOURCE_EXTENSION_ADDRESS_BOOK, "BackendName",
"carddav");
+ modified = TRUE;
+ }
+
+ g_free (backend_name);
+ }
+
+ if (g_key_file_has_group (key_file, PRIMARY_GROUP_NAME) &&
+ g_key_file_has_key (key_file, PRIMARY_GROUP_NAME, "Parent", NULL)) {
+ gchar *parent;
+
+ parent = g_key_file_get_string (key_file, PRIMARY_GROUP_NAME, "Parent", NULL);
+ if (g_strcmp0 (parent, "webdav-stub") == 0) {
+ g_key_file_set_string (key_file, PRIMARY_GROUP_NAME, "Parent", "carddav-stub");
+ modified = TRUE;
+ }
+
+ g_free (parent);
+ }
+
+ return modified;
+}
+
gboolean
evolution_source_registry_migrate_tweak_key_file (ESourceRegistryServer *server,
GKeyFile *key_file,
@@ -176,8 +216,8 @@ evolution_source_registry_migrate_tweak_key_file (ESourceRegistryServer *server,
gboolean modified;
modified = evolution_source_registry_migrate_imap_to_imapx (server, key_file, uid);
-
modified = evolution_source_registry_migrate_owncloud_to_webdav (server, key_file, uid) || modified;
+ modified = evolution_source_registry_migrate_webdav_book_to_carddav (server, key_file, uid) ||
modified;
return modified;
}
diff --git a/src/services/evolution-source-registry/evolution-source-registry-resource.xml
b/src/services/evolution-source-registry/evolution-source-registry-resource.xml
index af0776bec..828dd2a64 100644
--- a/src/services/evolution-source-registry/evolution-source-registry-resource.xml
+++ b/src/services/evolution-source-registry/evolution-source-registry-resource.xml
@@ -2,13 +2,13 @@
<gresources>
<gresource prefix="/org/gnome/evolution-data-server/ro-sources">
<file>caldav-stub.source</file>
+ <file>carddav-stub.source</file>
<file>contacts-stub.source</file>
<file>google-stub.source</file>
<file>ldap-stub.source</file>
<file>local-stub.source</file>
<file>weather-stub.source</file>
<file>webcal-stub.source</file>
- <file>webdav-stub.source</file>
</gresource>
<gresource prefix="/org/gnome/evolution-data-server/rw-sources">
<file>birthdays.source</file>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]