diff --git a/src/context.rs b/src/context.rs index e7d3fbd1f..7fd89e242 100644 --- a/src/context.rs +++ b/src/context.rs @@ -150,7 +150,7 @@ impl Context { }; ensure!( - ctx.sql.open(&ctx, &ctx.dbfile, 0), + ctx.sql.open(&ctx, &ctx.dbfile, false), "Failed opening sqlite database" ); diff --git a/src/imex.rs b/src/imex.rs index fb1b12f83..0ba37f563 100644 --- a/src/imex.rs +++ b/src/imex.rs @@ -87,7 +87,7 @@ pub fn has_backup(context: &Context, dir_name: impl AsRef) -> Result) -> Resul /* error already logged */ /* re-open copied database file */ ensure!( - context.sql.open(&context, &context.get_dbfile(), 0), + context.sql.open(&context, &context.get_dbfile(), false), "could not re-open db" ); @@ -496,7 +496,7 @@ fn export_backup(context: &Context, dir: impl AsRef) -> Result<()> { dest_path_filename.display(), ); let copied = dc_copy_file(context, context.get_dbfile(), &dest_path_filename); - context.sql.open(&context, &context.get_dbfile(), 0); + context.sql.open(&context, &context.get_dbfile(), false); if !copied { let s = dest_path_filename.to_string_lossy().to_string(); bail!( @@ -526,7 +526,7 @@ fn add_files_to_export(context: &Context, dest_path_filename: &PathBuf) -> Resul // the source to be locked, neigher the destination as it is used only here) let sql = Sql::new(); ensure!( - sql.open(context, &dest_path_filename, 0), + sql.open(context, &dest_path_filename, false), "could not open db" ); if !sql.table_exists("backup_blobs") { diff --git a/src/sql.rs b/src/sql.rs index 1b9df442c..6cac599fa 100644 --- a/src/sql.rs +++ b/src/sql.rs @@ -11,8 +11,6 @@ use crate::error::{Error, Result}; use crate::param::*; use crate::peerstate::*; -const DC_OPEN_READONLY: usize = 0x01; - /// A wrapper around the underlying Sqlite3 object. #[derive(DebugStub)] pub struct Sql { @@ -42,8 +40,8 @@ impl Sql { } // return true on success, false on failure - pub fn open(&self, context: &Context, dbfile: &std::path::Path, flags: libc::c_int) -> bool { - match open(context, self, dbfile, flags) { + pub fn open(&self, context: &Context, dbfile: &std::path::Path, readonly: bool) -> bool { + match open(context, self, dbfile, readonly) { Ok(_) => true, Err(Error::SqlAlreadyOpen) => false, Err(_) => { @@ -320,7 +318,7 @@ fn open( context: &Context, sql: &Sql, dbfile: impl AsRef, - flags: libc::c_int, + readonly: bool, ) -> Result<()> { if sql.is_open() { error!( @@ -332,7 +330,7 @@ fn open( } let mut open_flags = OpenFlags::SQLITE_OPEN_NO_MUTEX; - if 0 != (flags & DC_OPEN_READONLY as i32) { + if readonly { open_flags.insert(OpenFlags::SQLITE_OPEN_READ_ONLY); } else { open_flags.insert(OpenFlags::SQLITE_OPEN_READ_WRITE); @@ -351,7 +349,7 @@ fn open( *sql.pool.write().unwrap() = Some(pool); } - if 0 == flags & DC_OPEN_READONLY as i32 { + if !readonly { let mut exists_before_update = 0; let mut dbversion_before_update = 0; /* Init tables to dbversion=0 */