static void mail_store_go_online_thread (GSimpleAsyncResult *simple, CamelStore *store, GCancellable *cancellable) { CamelService *service; gchar *service_name; GError *error = NULL; service = CAMEL_SERVICE (store); service_name = camel_service_get_name (service, TRUE); camel_operation_push_message ( cancellable, _("Reconnecting to '%s'"), service_name); g_free (service_name); if (CAMEL_IS_DISCO_STORE (store)) camel_disco_store_set_status ( CAMEL_DISCO_STORE (store), CAMEL_DISCO_STORE_ONLINE, cancellable, &error); else if (CAMEL_IS_OFFLINE_STORE (store)) camel_offline_store_set_online_sync ( CAMEL_OFFLINE_STORE (store), TRUE, cancellable, &error); if (error != NULL) g_simple_async_result_take_error (simple, error); camel_operation_pop_message (cancellable); }
gboolean e_mail_store_go_online_sync (CamelStore *store, GCancellable *cancellable, GError **error) { CamelService *service; const gchar *display_name; gboolean success = TRUE; g_return_val_if_fail (CAMEL_IS_STORE (store), FALSE); service = CAMEL_SERVICE (store); display_name = camel_service_get_display_name (service); if (display_name == NULL || *display_name == '\0') display_name = G_OBJECT_TYPE_NAME (service); camel_operation_push_message ( cancellable, _("Reconnecting to “%s”"), display_name); if (CAMEL_IS_OFFLINE_STORE (store)) success = camel_offline_store_set_online_sync ( CAMEL_OFFLINE_STORE (store), TRUE, cancellable, error); camel_operation_pop_message (cancellable); return success; }
static gboolean groupwise_connect_sync (CamelService *service, GCancellable *cancellable, GError **error) { CamelGroupwiseStore *store = CAMEL_GROUPWISE_STORE (service); CamelGroupwiseStorePrivate *priv = store->priv; CamelGroupwiseStoreNamespace *ns; CamelSession *session = service->session; d("in groupwise store connect\n"); if (service->status == CAMEL_SERVICE_DISCONNECTED) return FALSE; if (!priv) { store->priv = g_new0 (CamelGroupwiseStorePrivate, 1); priv = store->priv; camel_service_construct (service, service->session, service->provider, service->url, error); } camel_service_lock (service, CAMEL_SERVICE_REC_CONNECT_LOCK); if (priv->cnc) { camel_service_unlock (service, CAMEL_SERVICE_REC_CONNECT_LOCK); return TRUE; } if (!check_for_connection (service, cancellable, error) || !groupwise_auth_loop (service, cancellable, error)) { camel_service_unlock (service, CAMEL_SERVICE_REC_CONNECT_LOCK); camel_service_disconnect_sync (service, TRUE, NULL); return FALSE; } service->status = CAMEL_SERVICE_CONNECTED; camel_offline_store_set_online_sync ( CAMEL_OFFLINE_STORE (store), TRUE, cancellable, NULL); if (!e_gw_connection_get_version (priv->cnc)) { camel_session_alert_user (session, CAMEL_SESSION_ALERT_WARNING, _("Some features may not work correctly with your current server version"), FALSE); } ns = camel_groupwise_store_summary_namespace_new (store->summary, priv->storage_path, '/'); camel_groupwise_store_summary_namespace_set (store->summary, ns); if (camel_store_summary_count ((CamelStoreSummary *)store->summary) == 0) { /*Settting the refresh stamp to the current time*/ store->refresh_stamp = time (NULL); } camel_store_summary_save ((CamelStoreSummary *) store->summary); camel_service_unlock (service, CAMEL_SERVICE_REC_CONNECT_LOCK); if (E_IS_GW_CONNECTION (priv->cnc)) { return TRUE; } return FALSE; }