Do not schedule delayed DeleteMsgOnImap jobs

All IMAP deletion jobs are scheduled either immediately, or later by
job::add_imap_deletion_jobs().
This commit is contained in:
Alexander Krotov
2020-03-08 01:24:17 +03:00
parent bdb2a47743
commit efb7280e99
3 changed files with 8 additions and 75 deletions

View File

@@ -192,39 +192,23 @@ pub fn dc_receive_imf(
};
}
if needs_delete_job && !created_db_entries.is_empty() {
for db_entry in &created_db_entries {
job_add(
context,
Action::DeleteMsgOnImap,
db_entry.1.to_u32() as i32,
Params::new(),
0,
);
}
} else {
// Get user-configured server deletion
let delete_server_after = context.get_config_delete_server_after();
// Get user-configured server deletion
let delete_server_after = context.get_config_delete_server_after();
if delete_server_after != Some(0) {
// Move message if we don't delete it immediately.
context.do_heuristics_moves(server_folder.as_ref(), insert_msg_id);
}
if let Some(delete_server_after) = delete_server_after {
info!(
context,
"Scheduling message deletion in {} seconds", delete_server_after
);
if !created_db_entries.is_empty() {
if needs_delete_job || delete_server_after == Some(0) {
for db_entry in &created_db_entries {
job_add(
context,
Action::DeleteMsgOnImap,
db_entry.1.to_u32() as i32,
Params::new(),
delete_server_after as i64,
0,
);
}
} else {
// Move message if we don't delete it immediately.
context.do_heuristics_moves(server_folder.as_ref(), insert_msg_id);
}
}

View File

@@ -1320,35 +1320,6 @@ fn precheck_imf(context: &Context, rfc724_mid: &str, server_folder: &str, server
0,
);
}
if let Some(delete_server_after) = delete_server_after {
info!(
context,
"Scheduling BCC-self deletion in {} seconds", delete_server_after
);
let msg_ids = match message::get_all_by_rfc724_mid(context, &rfc724_mid) {
Err(err) => {
warn!(
context,
"Cannot get all database records for Message-ID {}: {}",
&rfc724_mid,
err
);
vec![msg_id] // Remove at least the MsgId we know about
}
Ok(msg_ids) => msg_ids,
};
for part_msg_id in msg_ids {
job_add(
context,
Action::DeleteMsgOnImap,
part_msg_id.to_u32() as i32,
Params::new(),
delete_server_after as i64,
);
}
}
} else if old_server_folder != server_folder {
info!(context, "[move] detected moved message {}", rfc724_mid,);
}

View File

@@ -1410,28 +1410,6 @@ pub(crate) fn rfc724_mid_exists(
.map_err(Into::into)
}
/// Returns all MsgIds corresponding to Message-ID
pub(crate) fn get_all_by_rfc724_mid(
context: &Context,
rfc724_mid: &str,
) -> Result<Vec<MsgId>, Error> {
ensure!(!rfc724_mid.is_empty(), "empty rfc724_mid");
let msg_ids = context.sql.query_map(
"SELECT id FROM msgs WHERE rfc724_mid=?",
params![rfc724_mid],
|row| row.get::<_, MsgId>("id"),
|ids| {
let mut ret: Vec<MsgId> = Vec::new();
for id in ids {
ret.push(id?);
}
Ok(ret)
},
)?;
Ok(msg_ids)
}
pub fn update_server_uid(
context: &Context,
rfc724_mid: &str,