Merge 1.112.7 into master

This commit is contained in:
link2xt
2023-04-17 15:24:15 +00:00
11 changed files with 44 additions and 40 deletions

View File

@@ -31,6 +31,12 @@
- Update "accounts.toml" atomically - Update "accounts.toml" atomically
- Don't let blocking be bypassed using groups #4316 - Don't let blocking be bypassed using groups #4316
## [1.112.7] - 2023-04-17
### Fixes
- Updated `async-imap` to v0.8.0 to fix erroneous EOF detection in long IMAP responses.
## [1.112.6] - 2023-04-04 ## [1.112.6] - 2023-04-04
### Changes ### Changes
@@ -2403,3 +2409,5 @@ https://github.com/deltachat/deltachat-core-rust/pulls?q=is%3Apr+is%3Aclosed
[1.112.3]: https://github.com/deltachat/deltachat-core-rust/compare/v1.112.2...v1.112.3 [1.112.3]: https://github.com/deltachat/deltachat-core-rust/compare/v1.112.2...v1.112.3
[1.112.4]: https://github.com/deltachat/deltachat-core-rust/compare/v1.112.3...v1.112.4 [1.112.4]: https://github.com/deltachat/deltachat-core-rust/compare/v1.112.3...v1.112.4
[1.112.5]: https://github.com/deltachat/deltachat-core-rust/compare/v1.112.4...v1.112.5 [1.112.5]: https://github.com/deltachat/deltachat-core-rust/compare/v1.112.4...v1.112.5
[1.112.6]: https://github.com/deltachat/deltachat-core-rust/compare/v1.112.5...v1.112.6
[1.112.7]: https://github.com/deltachat/deltachat-core-rust/compare/v1.112.6...v1.112.7

33
Cargo.lock generated
View File

@@ -204,12 +204,11 @@ dependencies = [
[[package]] [[package]]
name = "async-imap" name = "async-imap"
version = "0.7.0" version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8379e2f1cdeb79afd2006932d7e8f64993fc0f7386d0ebc37231c90b05968c25" checksum = "d11e163a705d0c809dfc886eee95df5117c758539c940c0fe9aa3aa4da5388ce"
dependencies = [ dependencies = [
"async-channel", "async-channel",
"async-native-tls 0.4.0",
"base64 0.21.0", "base64 0.21.0",
"byte-pool", "byte-pool",
"chrono", "chrono",
@@ -234,18 +233,6 @@ dependencies = [
"event-listener", "event-listener",
] ]
[[package]]
name = "async-native-tls"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d57d4cec3c647232e1094dc013546c0b33ce785d8aeb251e1f20dfaf8a9a13fe"
dependencies = [
"native-tls",
"thiserror",
"tokio",
"url",
]
[[package]] [[package]]
name = "async-native-tls" name = "async-native-tls"
version = "0.5.0" version = "0.5.0"
@@ -553,9 +540,9 @@ checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
[[package]] [[package]]
name = "byte-pool" name = "byte-pool"
version = "0.2.3" version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8c7230ddbb427b1094d477d821a99f3f54d36333178eeb806e279bcdcecf0ca" checksum = "c2f1b21189f50b5625efa6227cf45e9d4cfdc2e73582df2b879e9689e78a7158"
dependencies = [ dependencies = [
"crossbeam-queue", "crossbeam-queue",
"stable_deref_trait", "stable_deref_trait",
@@ -1157,13 +1144,13 @@ dependencies = [
[[package]] [[package]]
name = "deltachat" name = "deltachat"
version = "1.112.6" version = "1.112.7"
dependencies = [ dependencies = [
"ansi_term", "ansi_term",
"anyhow", "anyhow",
"async-channel", "async-channel",
"async-imap", "async-imap",
"async-native-tls 0.5.0", "async-native-tls",
"async-smtp", "async-smtp",
"async_zip", "async_zip",
"backtrace", "backtrace",
@@ -1231,7 +1218,7 @@ dependencies = [
[[package]] [[package]]
name = "deltachat-jsonrpc" name = "deltachat-jsonrpc"
version = "1.112.6" version = "1.112.7"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"async-channel", "async-channel",
@@ -1254,7 +1241,7 @@ dependencies = [
[[package]] [[package]]
name = "deltachat-repl" name = "deltachat-repl"
version = "1.112.6" version = "1.112.7"
dependencies = [ dependencies = [
"ansi_term", "ansi_term",
"anyhow", "anyhow",
@@ -1269,7 +1256,7 @@ dependencies = [
[[package]] [[package]]
name = "deltachat-rpc-server" name = "deltachat-rpc-server"
version = "1.112.6" version = "1.112.7"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"deltachat", "deltachat",
@@ -1294,7 +1281,7 @@ dependencies = [
[[package]] [[package]]
name = "deltachat_ffi" name = "deltachat_ffi"
version = "1.112.6" version = "1.112.7"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"deltachat", "deltachat",

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "deltachat" name = "deltachat"
version = "1.112.6" version = "1.112.7"
edition = "2021" edition = "2021"
license = "MPL-2.0" license = "MPL-2.0"
rust-version = "1.65" rust-version = "1.65"
@@ -35,7 +35,7 @@ ratelimit = { path = "./deltachat-ratelimit" }
anyhow = "1" anyhow = "1"
async-channel = "1.8.0" async-channel = "1.8.0"
async-imap = { version = "0.7.0", default-features = false, features = ["runtime-tokio"] } async-imap = { version = "0.8.0", default-features = false, features = ["runtime-tokio"] }
async-native-tls = { version = "0.5", default-features = false, features = ["runtime-tokio"] } async-native-tls = { version = "0.5", default-features = false, features = ["runtime-tokio"] }
async-smtp = { version = "0.9", default-features = false, features = ["runtime-tokio"] } async-smtp = { version = "0.9", default-features = false, features = ["runtime-tokio"] }
async_zip = { version = "0.0.12", default-features = false, features = ["deflate", "fs"] } async_zip = { version = "0.0.12", default-features = false, features = ["deflate", "fs"] }

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "deltachat_ffi" name = "deltachat_ffi"
version = "1.112.6" version = "1.112.7"
description = "Deltachat FFI" description = "Deltachat FFI"
edition = "2018" edition = "2018"
readme = "README.md" readme = "README.md"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "deltachat-jsonrpc" name = "deltachat-jsonrpc"
version = "1.112.6" version = "1.112.7"
description = "DeltaChat JSON-RPC API" description = "DeltaChat JSON-RPC API"
edition = "2021" edition = "2021"
default-run = "deltachat-jsonrpc-server" default-run = "deltachat-jsonrpc-server"

View File

@@ -55,5 +55,5 @@
}, },
"type": "module", "type": "module",
"types": "dist/deltachat.d.ts", "types": "dist/deltachat.d.ts",
"version": "1.112.6" "version": "1.112.7"
} }

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "deltachat-repl" name = "deltachat-repl"
version = "1.112.6" version = "1.112.7"
license = "MPL-2.0" license = "MPL-2.0"
edition = "2021" edition = "2021"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "deltachat-rpc-server" name = "deltachat-rpc-server"
version = "1.112.6" version = "1.112.7"
description = "DeltaChat JSON-RPC server" description = "DeltaChat JSON-RPC server"
edition = "2021" edition = "2021"
readme = "README.md" readme = "README.md"

View File

@@ -60,5 +60,5 @@
"test:mocha": "mocha -r esm node/test/test.js --growl --reporter=spec --bail --exit" "test:mocha": "mocha -r esm node/test/test.js --growl --reporter=spec --bail --exit"
}, },
"types": "node/dist/index.d.ts", "types": "node/dist/index.d.ts",
"version": "1.112.6" "version": "1.112.7"
} }

View File

@@ -256,7 +256,7 @@ enum RunningState {
Running { cancel_sender: Sender<()> }, Running { cancel_sender: Sender<()> },
/// Cancel signal has been sent, waiting for ongoing process to be freed. /// Cancel signal has been sent, waiting for ongoing process to be freed.
ShallStop, ShallStop { request: Instant },
/// There is no ongoing process, a new one can be allocated. /// There is no ongoing process, a new one can be allocated.
Stopped, Stopped,
@@ -509,6 +509,9 @@ impl Context {
pub(crate) async fn free_ongoing(&self) { pub(crate) async fn free_ongoing(&self) {
let mut s = self.running_state.write().await; let mut s = self.running_state.write().await;
if let RunningState::ShallStop { request } = *s {
info!(self, "Ongoing stopped in {:?}", request.elapsed());
}
*s = RunningState::Stopped; *s = RunningState::Stopped;
} }
@@ -521,9 +524,11 @@ impl Context {
warn!(self, "could not cancel ongoing: {:#}", err); warn!(self, "could not cancel ongoing: {:#}", err);
} }
info!(self, "Signaling the ongoing process to stop ASAP.",); info!(self, "Signaling the ongoing process to stop ASAP.",);
*s = RunningState::ShallStop; *s = RunningState::ShallStop {
request: Instant::now(),
};
} }
RunningState::ShallStop | RunningState::Stopped => { RunningState::ShallStop { .. } | RunningState::Stopped => {
info!(self, "No ongoing process to stop.",); info!(self, "No ongoing process to stop.",);
} }
} }
@@ -533,7 +538,7 @@ impl Context {
pub(crate) async fn shall_stop_ongoing(&self) -> bool { pub(crate) async fn shall_stop_ongoing(&self) -> bool {
match &*self.running_state.read().await { match &*self.running_state.read().await {
RunningState::Running { .. } => false, RunningState::Running { .. } => false,
RunningState::ShallStop | RunningState::Stopped => true, RunningState::ShallStop { .. } | RunningState::Stopped => true,
} }
} }

View File

@@ -50,7 +50,7 @@ use crate::blob::BlobDirContents;
use crate::chat::{add_device_msg, delete_and_reset_all_device_msgs}; use crate::chat::{add_device_msg, delete_and_reset_all_device_msgs};
use crate::context::Context; use crate::context::Context;
use crate::message::{Message, Viewtype}; use crate::message::{Message, Viewtype};
use crate::qr::Qr; use crate::qr::{self, Qr};
use crate::stock_str::backup_transfer_msg_body; use crate::stock_str::backup_transfer_msg_body;
use crate::{e2ee, EventType}; use crate::{e2ee, EventType};
@@ -393,10 +393,14 @@ pub async fn get_backup(context: &Context, qr: Qr) -> Result<()> {
!context.is_configured().await?, !context.is_configured().await?,
"Cannot import backups to accounts in use." "Cannot import backups to accounts in use."
); );
let _guard = context.scheduler.pause(context.clone()).await?;
// Acquire global "ongoing" mutex. // Acquire global "ongoing" mutex.
let cancel_token = context.alloc_ongoing().await?; let cancel_token = context.alloc_ongoing().await?;
let _guard = context.scheduler.pause(context.clone()).await;
info!(
context,
"Running get_backup for {}",
qr::format_backup(&qr)?
);
let res = tokio::select! { let res = tokio::select! {
biased; biased;
res = get_backup_inner(context, qr) => res, res = get_backup_inner(context, qr) => res,