gint rc, flags, lock_fd;
gchar lock_path[PATH_MAX], dbdir[PATH_MAX], *pdir;
static const char sqlite_wal[] = "PRAGMA journal_mode=\"wal\";",
- exclusive_lock_sql[] = "PRAGMA locking_mode=\"exclusive\";";
+ exclusive_lock_sql[] = "PRAGMA locking_mode=\"exclusive\";",
+ fsync_sql[] = "PRAGMA database.synchronous=1;";
gboolean create = FALSE, has_lock = FALSE;
flags = SQLITE_OPEN_READWRITE;
sqlite3_errmsg (sqlite));
}
+ if (sqlite3_exec (sqlite, fsync_sql, NULL, NULL, NULL) != SQLITE_OK) {
+ msg_warn_pool ("cannot set database.synchronous: %s",
+ sqlite3_errmsg (sqlite));
+ }
+
if (has_lock) {
msg_debug_pool ("removing lock from %s", lock_path);
rspamd_file_unlock (lock_fd, FALSE);