summaryrefslogtreecommitdiffstats
path: root/sync/src/sync_group.c
diff options
context:
space:
mode:
Diffstat (limited to 'sync/src/sync_group.c')
-rw-r--r--sync/src/sync_group.c49
1 files changed, 27 insertions, 22 deletions
diff --git a/sync/src/sync_group.c b/sync/src/sync_group.c
index adf9d49..4cf32e9 100644
--- a/sync/src/sync_group.c
+++ b/sync/src/sync_group.c
@@ -200,11 +200,38 @@ sync_group_class_init (SyncGroupClass *klass)
object_class->finalize = sync_group_finalize;
}
+static OSyncEnv *
+sync_group_get_default_env ()
+{
+ if (!default_env) {
+ OSyncError *error = NULL;
+
+ /* FIXME: Must be called due to buggy OpenSync */
+ gconf_client_get_default ();
+
+ /* Threads must be initialised for autostart, do it here */
+ if (!g_thread_supported ()) g_thread_init (NULL);
+
+ default_env = osync_env_new ();
+ g_debug ("Creating new environment");
+ if (!osync_env_initialize (default_env, &error)) {
+ g_error ("Unable to initialise OSyncEnv: %s",
+ osync_error_print (&error));
+ osync_env_free (default_env);
+ default_env = NULL;
+ }
+ }
+
+ return default_env;
+}
+
static void
sync_group_init (SyncGroup *self)
{
SyncGroupPrivate *priv = GROUP_PRIVATE (self);
+ sync_group_get_default_env ();
+
priv->mutex = g_mutex_new ();
priv->namespace = g_strdup ("libsync");
}
@@ -279,28 +306,6 @@ sync_group_get_namespace (SyncGroup *group)
return priv->namespace;
}
-static OSyncEnv *
-sync_group_get_default_env ()
-{
- if (!default_env) {
- OSyncError *error = NULL;
-
- /* Threads must be initialised for autostart, do it here */
- if (!g_thread_supported ()) g_thread_init (NULL);
-
- default_env = osync_env_new ();
- g_debug ("Creating new environment");
- if (!osync_env_initialize (default_env, &error)) {
- g_error ("Unable to initialise OSyncEnv: %s",
- osync_error_print (&error));
- osync_env_free (default_env);
- default_env = NULL;
- }
- }
-
- return default_env;
-}
-
gchar *sync_group_get_name (SyncGroup *group)
{
SyncGroupPrivate *priv = GROUP_PRIVATE (group);