OssiferSession * ossifer_session_initialize (const gchar *cookie_db_path, OssiferSessionCookieJarChanged cookie_jar_changed_callback) { static OssiferSession *session_instance = NULL; SoupSession *session; SoupCookieJar *cookie_jar; gchar *path; if (session_instance != NULL) { return session_instance; } session_instance = g_new0 (OssiferSession, 1); session_instance->cookie_jar_changed = cookie_jar_changed_callback; session = webkit_get_default_session (); g_object_set (session, SOUP_SESSION_SSL_USE_SYSTEM_CA_FILE, TRUE, NULL); path = g_strdup_printf ("%s.sqlite", cookie_db_path); cookie_jar = soup_cookie_jar_db_new (path, FALSE); soup_session_add_feature (session, SOUP_SESSION_FEATURE (cookie_jar)); g_object_unref (cookie_jar); g_free (path); g_signal_connect (cookie_jar, "changed", G_CALLBACK (ossifer_session_cookie_jar_changed), session_instance); return session_instance; }
void rss_soup_init(void) { g_print("soup init()\n"); settings = g_settings_new(RSS_CONF_SCHEMA); #if LIBSOUP_VERSION > 2026002 && defined(HAVE_LIBSOUP_GNOME) #if EVOLUTION_VERSION < 30304 if (gconf_client_get_bool (rss_gconf, GCONF_KEY_ACCEPT_COOKIES, NULL)) { #else if (g_settings_get_boolean (settings, CONF_ACCEPT_COOKIES)) { #endif gchar *feed_dir = rss_component_peek_base_directory(); gchar *cookie_path = g_build_path( G_DIR_SEPARATOR_S, feed_dir, "rss-cookies.sqlite", NULL); gchar *moz_cookie_path = g_build_path( G_DIR_SEPARATOR_S, feed_dir, "mozembed-rss", "cookies.sqlite", NULL); g_free(feed_dir); rss_soup_jar = soup_cookie_jar_db_new (cookie_path, FALSE); if (!g_file_test(moz_cookie_path, G_FILE_TEST_EXISTS|G_FILE_TEST_IS_SYMLINK)) { sync_gecko_cookies(); } g_free(cookie_path); g_free(moz_cookie_path); } #endif if (!rf->stqueue) rf->stqueue = g_queue_new(); }