diff options
Diffstat (limited to 'sync/src/sync_group.c')
-rw-r--r-- | sync/src/sync_group.c | 49 |
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); |