/** * camel_nntp_store_summary_full_name: * @s: * @path: * * Retrieve a summary item by full name. * * A referenced to the summary item is returned, which may be * ref'd or free'd as appropriate. * * Return value: The summary item, or NULL if the @full_name name * is not available. * It must be freed using camel_store_summary_info_free(). **/ CamelNNTPStoreInfo * camel_nntp_store_summary_full_name(CamelNNTPStoreSummary *s, const char *full_name) { int count, i; CamelNNTPStoreInfo *info; count = camel_store_summary_count ((CamelStoreSummary *) s); for (i = 0; i < count; i++) { info = (CamelNNTPStoreInfo *)camel_store_summary_index ((CamelStoreSummary *) s, i); if (info) { if (strcmp (info->full_name, full_name) == 0) return info; camel_store_summary_info_free ((CamelStoreSummary *) s, (CamelStoreInfo *)info); } } return NULL; }
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; }