]> git.ipfire.org Git - pakfire.git/commitdiff
libpakfire: db: Set some sensible defaults for the connection
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 21 Jan 2021 11:24:07 +0000 (11:24 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 21 Jan 2021 11:24:07 +0000 (11:24 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/db.c

index bc55c73f38a6bc7727b3593196af13ab1fdae166..3f36a3add015554e53915bb06859e1a25d3e6e18 100644 (file)
@@ -48,6 +48,17 @@ static void logging_callback(void* data, int r, const char* msg) {
                sqlite3_errstr(r), msg);
 }
 
+static int pakfire_db_execute(struct pakfire_db* db, const char* stmt) {
+       int r;
+       char* error = NULL;
+
+       do {
+               r = sqlite3_exec(db->handle, stmt, NULL, NULL, &error);
+       } while (r == SQLITE_BUSY);
+
+       return (r == SQLITE_OK);
+}
+
 static void pakfire_db_free(struct pakfire_db* db) {
        DEBUG(db->pakfire, "Releasing database at %p\n", db);
 
@@ -69,10 +80,16 @@ static int pakfire_db_setup(struct pakfire_db* db) {
        // Setup logging
        sqlite3_config(SQLITE_CONFIG_LOG, logging_callback, db->pakfire);
 
+       // Make LIKE case-sensitive
+       pakfire_db_execute(db, "PRAGMA case_sensitive_like = ON");
+
        // Done when not in read-write mode
        if (db->mode != PAKFIRE_DB_READWRITE)
                return 0;
 
+       // Disable secure delete
+       pakfire_db_execute(db, "PRAGMA secure_delete = OFF");
+
        // XXX Create schema
 
        return 0;