static void finalize (GObject *object) { SoupCookieJarSqlitePrivate *priv = SOUP_COOKIE_JAR_SQLITE_GET_PRIVATE (object); g_free (priv->filename); G_OBJECT_CLASS (soup_cookie_jar_sqlite_parent_class)->finalize (object); }
static void load (SoupCookieJar *jar) { SoupCookieJarSqlitePrivate *priv = SOUP_COOKIE_JAR_SQLITE_GET_PRIVATE (jar); if (priv->db == NULL) { if (open_db (jar)) return; } exec_query_with_try_create_table (priv->db, QUERY_ALL, callback, jar); }
static void get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { SoupCookieJarSqlitePrivate *priv = SOUP_COOKIE_JAR_SQLITE_GET_PRIVATE (object); switch (prop_id) { case PROP_FILENAME: g_value_set_string (value, priv->filename); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }
static void load (SoupCookieJar *jar) { SoupCookieJarSqlitePrivate *priv = SOUP_COOKIE_JAR_SQLITE_GET_PRIVATE (jar); sqlite3 *db; if (sqlite3_open (priv->filename, &db)) { sqlite3_close (db); g_warning ("Can't open %s", priv->filename); return; } exec_query_with_try_create_table (db, QUERY_ALL, callback, jar); sqlite3_close (db); }
static void changed (SoupCookieJar *jar, SoupCookie *old_cookie, SoupCookie *new_cookie) { SoupCookieJarSqlitePrivate *priv = SOUP_COOKIE_JAR_SQLITE_GET_PRIVATE (jar); sqlite3 *db; char *query; if (sqlite3_open (priv->filename, &db)) { sqlite3_close (db); g_warning ("Can't open %s", priv->filename); return; } if (old_cookie) { query = sqlite3_mprintf (QUERY_DELETE, old_cookie->name, old_cookie->domain); exec_query_with_try_create_table (db, query, NULL, NULL); sqlite3_free (query); } if (new_cookie && new_cookie->expires) { gulong expires; expires = (gulong)soup_date_to_time_t (new_cookie->expires); query = sqlite3_mprintf (QUERY_INSERT, new_cookie->name, new_cookie->value, new_cookie->domain, new_cookie->path, expires, new_cookie->secure, new_cookie->http_only); exec_query_with_try_create_table (db, query, NULL, NULL); sqlite3_free (query); } sqlite3_close (db); }
/* Follows sqlite3 convention; returns TRUE on error */ static gboolean open_db (SoupCookieJar *jar) { SoupCookieJarSqlitePrivate *priv = SOUP_COOKIE_JAR_SQLITE_GET_PRIVATE (jar); char *error = NULL; if (sqlite3_open (priv->filename, &priv->db)) { sqlite3_close (priv->db); priv->db = NULL; g_warning ("Can't open %s", priv->filename); return TRUE; } if (sqlite3_exec (priv->db, "PRAGMA synchronous = OFF", NULL, NULL, &error)) { g_warning ("Failed to execute query: %s", error); sqlite3_free (error); } return FALSE; }
static void changed (SoupCookieJar *jar, SoupCookie *old_cookie, SoupCookie *new_cookie) { SoupCookieJarSqlitePrivate *priv = SOUP_COOKIE_JAR_SQLITE_GET_PRIVATE (jar); char *query; if (priv->db == NULL) { if (open_db (jar)) return; } if (old_cookie) { query = sqlite3_mprintf (QUERY_DELETE, old_cookie->name, old_cookie->domain); exec_query_with_try_create_table (priv->db, query, NULL, NULL); sqlite3_free (query); } if (new_cookie && new_cookie->expires) { gulong expires; expires = (gulong)soup_date_to_time_t (new_cookie->expires); query = sqlite3_mprintf (QUERY_INSERT, new_cookie->name, new_cookie->value, new_cookie->domain, new_cookie->path, expires, new_cookie->secure, new_cookie->http_only); exec_query_with_try_create_table (priv->db, query, NULL, NULL); sqlite3_free (query); } }