diff --git a/CHANGELOG.md b/CHANGELOG.md index 80560f305..fcb485f98 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 1.33.0 + +- let `dc_set_muted()` also mute one-to-one chats #1470 + +- fix a bug that led to load and traffic if the server does not use sent-folder + #1472 + + ## 1.32.0 - fix endless loop when trying to download messages with bad RFC Message-ID, diff --git a/Cargo.lock b/Cargo.lock index 5e2509042..367a0517c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,7 +2,7 @@ # It is not intended for manual editing. [[package]] name = "addr2line" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "gimli 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -68,7 +68,7 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.29" +version = "1.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -99,8 +99,8 @@ name = "async-attributes" version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -121,7 +121,7 @@ dependencies = [ "pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rental 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", "stop-token 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -131,7 +131,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "async-std 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", "url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -149,7 +149,7 @@ dependencies = [ "hostname 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "nom 5.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.16 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)", "pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.110 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.110 (registry+https://github.com/rust-lang/crates.io-index)", @@ -177,7 +177,7 @@ dependencies = [ "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", "mio-uds 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "once_cell 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "pin-project-lite 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -202,7 +202,7 @@ dependencies = [ "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", "mio-uds 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "once_cell 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "pin-project-lite 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -222,9 +222,9 @@ name = "async-trait" version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -232,7 +232,7 @@ name = "atty" version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "hermit-abi 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "hermit-abi 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -249,10 +249,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "backtrace" -version = "0.3.47" +version = "0.3.48" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "addr2line 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "addr2line 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "object 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -380,7 +380,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bumpalo" -version = "3.2.1" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -436,7 +436,7 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.52" +version = "1.0.53" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -482,7 +482,7 @@ name = "clear_on_drop" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.53 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -587,8 +587,8 @@ name = "ctor" version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -617,12 +617,12 @@ name = "darling_core" version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "fnv 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", "ident_case 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "strsim 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -631,8 +631,8 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "darling_core 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -655,16 +655,16 @@ dependencies = [ [[package]] name = "deltachat" -version = "1.32.0" +version = "1.33.0" dependencies = [ "ansi_term 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", - "anyhow 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)", + "anyhow 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)", "async-imap 0.2.0 (git+https://github.com/async-email/async-imap?branch=feat/send)", "async-native-tls 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "async-smtp 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "async-std 1.5.0 (git+https://github.com/async-rs/async-std?rev=3ff9e98f20a193eb63e43fb9d71f9d60c33f6d58)", "async-trait 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)", - "backtrace 0.3.47 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.48 (registry+https://github.com/rust-lang/crates.io-index)", "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -686,7 +686,7 @@ dependencies = [ "lettre_email 0.9.2 (git+https://github.com/deltachat/lettre)", "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "mailparse 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "mailparse 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "num-derive 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -712,7 +712,7 @@ dependencies = [ "strum 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", "strum_macros 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", "thread-local-object 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -720,22 +720,22 @@ dependencies = [ name = "deltachat_derive" version = "2.0.0" dependencies = [ - "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "deltachat_ffi" -version = "1.32.0" +version = "1.33.0" dependencies = [ - "anyhow 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)", + "anyhow 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)", "async-std 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "deltachat 1.32.0", + "deltachat 1.33.0", "human-panic 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.53 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -745,9 +745,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "darling 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "derive_builder_core 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -756,9 +756,9 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "darling 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -846,7 +846,7 @@ dependencies = [ "hex 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.3.7 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -936,7 +936,7 @@ name = "error-chain" version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace 0.3.47 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.48 (registry+https://github.com/rust-lang/crates.io-index)", "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -953,7 +953,7 @@ name = "failure" version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace 0.3.47 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.48 (registry+https://github.com/rust-lang/crates.io-index)", "failure_derive 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -962,9 +962,9 @@ name = "failure_derive" version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", "synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1004,7 +1004,7 @@ dependencies = [ [[package]] name = "fnv" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1088,9 +1088,9 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro-hack 0.5.15 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1103,7 +1103,7 @@ name = "futures-task" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "once_cell 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1123,7 +1123,7 @@ dependencies = [ "futures-sink 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.16 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)", "pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro-hack 0.5.15 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro-nested 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1173,7 +1173,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", - "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "fnv 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "futures-sink 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1181,7 +1181,7 @@ dependencies = [ "indexmap 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1195,7 +1195,7 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1221,7 +1221,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", - "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "fnv 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1244,7 +1244,7 @@ name = "human-panic" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace 0.3.47 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.48 (registry+https://github.com/rust-lang/crates.io-index)", "os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.110 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.110 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1277,9 +1277,9 @@ dependencies = [ "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.16 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "want 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1292,7 +1292,7 @@ dependencies = [ "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", "hyper 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1332,7 +1332,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "skeptic 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1477,7 +1477,7 @@ name = "libsqlite3-sys" version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.53 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", "vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1518,7 +1518,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "mailparse" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1653,7 +1653,7 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.53 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1706,9 +1706,9 @@ name = "num-derive" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1753,7 +1753,7 @@ name = "num_cpus" version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "hermit-abi 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "hermit-abi 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1764,7 +1764,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "once_cell" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1795,7 +1795,7 @@ name = "openssl-src" version = "111.9.0+1.1.1g" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.53 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1804,7 +1804,7 @@ version = "0.9.56" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.53 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-src 111.9.0+1.1.1g (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1902,7 +1902,7 @@ dependencies = [ "sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "sha3 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", "try_from 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "twofish 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "x25519-dalek 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1911,20 +1911,20 @@ dependencies = [ [[package]] name = "pin-project" -version = "0.4.16" +version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "pin-project-internal 0.4.16 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project-internal 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "pin-project-internal" -version = "0.4.16" +version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1955,7 +1955,7 @@ dependencies = [ [[package]] name = "ppv-lite86" -version = "0.2.6" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1991,7 +1991,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "proc-macro2" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2044,10 +2044,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "quote" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2131,7 +2131,7 @@ name = "rand_chacha" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", + "ppv-lite86 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2281,9 +2281,9 @@ name = "rental-impl" version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2312,7 +2312,7 @@ dependencies = [ "serde_json 1.0.53 (registry+https://github.com/rust-lang/crates.io-index)", "serde_urlencoded 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "wasm-bindgen 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2391,7 +2391,7 @@ name = "rusty-fork" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "fnv 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "wait-timeout 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2510,9 +2510,9 @@ name = "serde_derive" version = "1.0.110" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2609,9 +2609,9 @@ name = "snafu-derive" version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2662,9 +2662,9 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2684,11 +2684,11 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2705,9 +2705,9 @@ name = "synstructure" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2743,20 +2743,20 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "thiserror-impl 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror-impl 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "thiserror-impl" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2786,11 +2786,11 @@ dependencies = [ [[package]] name = "tokio" -version = "0.2.20" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", - "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "fnv 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2807,7 +2807,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "native-tls 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2820,7 +2820,7 @@ dependencies = [ "futures-sink 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "pin-project-lite 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3012,12 +3012,12 @@ name = "wasm-bindgen-backend" version = "0.2.62" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bumpalo 3.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "bumpalo 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", "wasm-bindgen-shared 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3037,7 +3037,7 @@ name = "wasm-bindgen-macro" version = "0.2.62" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "wasm-bindgen-macro-support 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3046,9 +3046,9 @@ name = "wasm-bindgen-macro-support" version = "0.2.62" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", "wasm-bindgen-backend 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", "wasm-bindgen-shared 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3152,14 +3152,14 @@ name = "zeroize_derive" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", "synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [metadata] -"checksum addr2line 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "456d75cbb82da1ad150c8a9d97285ffcd21c9931dcb11e995903e7d75141b38b" +"checksum addr2line 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a49806b9dadc843c61e7c97e72490ad7f7220ae249012fbda9ad0609457c0543" "checksum adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2" "checksum aes 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "54eb1d8fe354e5fc611daf4f2ea97dd45a765f4f1e4512306ec183ae2e8f20c9" "checksum aes-soft 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cfd7e7ae3f9a1fb5c03b389fc6bb9a51400d0c13053f0dca698c832bfd893a0d" @@ -3167,7 +3167,7 @@ dependencies = [ "checksum aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)" = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada" "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" "checksum ansi_term 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" -"checksum anyhow 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)" = "dc98824304f5513bb8f862f9e5985219003de4d730689e59d8f28818283a6fe4" +"checksum anyhow 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)" = "85bb70cc08ec97ca5450e6eba421deeea5f172c0fc61f78b5357b2a8e8be195f" "checksum arrayref 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" "checksum arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" "checksum arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8" @@ -3183,7 +3183,7 @@ dependencies = [ "checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" "checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" "checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" -"checksum backtrace 0.3.47 (registry+https://github.com/rust-lang/crates.io-index)" = "a5393cb2f40a6fae0014c9af00018e95846f3b241b331a6b7733c326d3e58108" +"checksum backtrace 0.3.48 (registry+https://github.com/rust-lang/crates.io-index)" = "0df2f85c8a2abbe3b7d7e748052fdd9b76a0458fdeb16ad4223f5eca78c7c130" "checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" "checksum base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" "checksum bit-set 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de" @@ -3199,7 +3199,7 @@ dependencies = [ "checksum broadcaster 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d9c972e21e0d055a36cf73e4daae870941fe7a8abcd5ac3396aab9e4c126bd87" "checksum buf_redux 0.8.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b953a6887648bb07a535631f2bc00fbdb2a2216f135552cb3f534ed136b9c07f" "checksum bufstream 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "40e38929add23cdf8a366df9b0e088953150724bcbe5fc330b0d8eb3b328eec8" -"checksum bumpalo 3.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "12ae9db68ad7fac5fe51304d20f016c911539251075a214f8e663babefa35187" +"checksum bumpalo 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5356f1d23ee24a1f785a56d1d1a5f0fd5b0f6a0c0fb2412ce11da71649ab78f6" "checksum byte-pool 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9342e102eac8b1879fbedf9a7e0572c40b0cc5805b663c4d4ca791cae0bae221" "checksum byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" "checksum bytecount 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b92204551573580e078dc80017f36a213eb77a0450e4ddd8cfa0f3f2d1f0178f" @@ -3207,7 +3207,7 @@ dependencies = [ "checksum bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "130aac562c0dd69c56b3b1cc8ffd2e17be31d0b6c25b61c96b76231aa23e39e1" "checksum cargo_metadata 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "e5d1b4d380e1bab994591a24c2bdd1b054f64b60bef483a8c598c7c345bc3bbe" "checksum cast5 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4ce5759b4c52ca74f9a98421817c882f1fd9b0071ae41cd61ab9f9d059c04fd6" -"checksum cc 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)" = "c3d87b23d6a92cd03af510a5ade527033f6aa6fa92161e2d5863a907d4c5e31d" +"checksum cc 1.0.53 (registry+https://github.com/rust-lang/crates.io-index)" = "404b1fe4f65288577753b17e3b36a04596ee784493ec249bf81c7f2d2acd751c" "checksum cfb-mode 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "190e7b55d3a27cf8879becf61035a141cbc783f3258a41d16d1706719f991345" "checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" "checksum charset 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4f426e64df1c3de26cbf44593c6ffff5dbfd43bbf9de0d075058558126b3fc73" @@ -3264,7 +3264,7 @@ dependencies = [ "checksum fallible-streaming-iterator 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" "checksum fast_chemail 0.9.6 (registry+https://github.com/rust-lang/crates.io-index)" = "495a39d30d624c2caabe6312bfead73e7717692b44e0b32df168c275a2e8e9e4" "checksum flate2 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)" = "2cfff41391129e0a856d6d822600b8d71179d46879e310417eb9c762eb178b42" -"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" +"checksum fnv 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" "checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" "checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" "checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" @@ -3287,7 +3287,7 @@ dependencies = [ "checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb" "checksum h2 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "79b7246d7e4b979c03fa093da39cfb3617a96bbeee6310af63991668d7e843ff" "checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" -"checksum hermit-abi 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "61565ff7aaace3525556587bd2dc31d4a07071957be715e63ce7b1eccf51a8f4" +"checksum hermit-abi 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "91780f809e750b0a89f5544be56617ff6b1227ee485bcb06ebe10cdf89bd3b71" "checksum hex 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35" "checksum hostname 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "21ceb46a83a85e824ef93669c8b390009623863b5c195d1ba747292c0c72f94e" "checksum http 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9" @@ -3324,7 +3324,7 @@ dependencies = [ "checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" "checksum lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" "checksum lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084" -"checksum mailparse 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7181507a68fef921f011b0c0f143efca20871da5ab3963bdc064537278469cd2" +"checksum mailparse 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b6435afa64615b3c3efa09cb4066f42dcd236902f30ab48acd36ea59821bb4e0" "checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" "checksum maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" "checksum md-5 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a18af3dcaf2b0219366cdb4e2af65a6101457b415c3d1a5c71dd9c2b7c77b9c8" @@ -3350,7 +3350,7 @@ dependencies = [ "checksum num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096" "checksum num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" "checksum object 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9cbca9424c482ee628fa549d9c812e2cd22f1180b9222c9200fdfa6eb31aecb2" -"checksum once_cell 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b1c601810575c99596d4afc46f78a678c80105117c379eb3650cf99b8a21ce5b" +"checksum once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d" "checksum opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" "checksum openssl 0.10.29 (registry+https://github.com/rust-lang/crates.io-index)" = "cee6d85f4cb4c4f59a6a85d5b68a233d280c82e29e822913b9c8b129fbf20bdd" "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" @@ -3363,24 +3363,24 @@ dependencies = [ "checksum parking_lot_core 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3" "checksum percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" "checksum pgp 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8172973101790c866e66966002bf1028d0df27bf6b3b29be86a6fd440d8a4285" -"checksum pin-project 0.4.16 (registry+https://github.com/rust-lang/crates.io-index)" = "81d480cb4e89522ccda96d0eed9af94180b7a5f93fb28f66e1fd7d68431663d1" -"checksum pin-project-internal 0.4.16 (registry+https://github.com/rust-lang/crates.io-index)" = "a82996f11efccb19b685b14b5df818de31c1edcee3daa256ab5775dd98e72feb" +"checksum pin-project 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)" = "edc93aeee735e60ecb40cf740eb319ff23eab1c5748abfdb5c180e4ce49f7791" +"checksum pin-project-internal 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)" = "e58db2081ba5b4c93bd6be09c40fd36cb9193a8336c384f3b40012e531aa7e40" "checksum pin-project-lite 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f7505eeebd78492e0f6108f7171c4948dbb120ee8119d9d77d0afa5469bef67f" "checksum pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" "checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677" "checksum png 0.15.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef859a23054bbfee7811284275ae522f0434a3c8e7f4b74bd4a35ae7e1c4a283" -"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b" +"checksum ppv-lite86 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea" "checksum pretty_assertions 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3f81e1644e1b54f5a68959a29aa86cde704219254669da328ecfdf6a1f09d427" "checksum pretty_env_logger 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "717ee476b1690853d222af4634056d830b5197ffd747726a9a1eee6da9f49074" "checksum proc-macro-hack 0.5.15 (registry+https://github.com/rust-lang/crates.io-index)" = "0d659fe7c6d27f25e9d80a1a094c223f5246f6a6596453e09d7229bf42750b63" "checksum proc-macro-nested 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8e946095f9d3ed29ec38de908c22f95d9ac008e424c7bcae54c75a79c527c694" -"checksum proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)" = "8872cf6f48eee44265156c111456a700ab3483686b3f96df4cf5481c89157319" +"checksum proc-macro2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "53f5ffe53a6b28e37c9c1ce74893477864d64f74778a93a4beb43c8fa167f639" "checksum proptest 0.9.6 (registry+https://github.com/rust-lang/crates.io-index)" = "01c477819b845fe023d33583ebf10c9f62518c8d79a0960ba5c36d6ac8a55a5b" "checksum pulldown-cmark 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "eef52fac62d0ea7b9b4dc7da092aa64ea7ec3d90af6679422d3d7e0e14b6ee15" "checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" "checksum quick-xml 0.17.2 (registry+https://github.com/rust-lang/crates.io-index)" = "fe1e430bdcf30c9fdc25053b9c459bb1a4672af4617b6c783d7d91dc17c6bbb0" "checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a" -"checksum quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "42934bc9c8ab0d3b273a16d8551c8f0fcff46be73276ca083ec2414c15c4ba5e" +"checksum quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "54a21852a652ad6f610c9510194f398ff6f8692e334fd1145fed931f7fbe44ea" "checksum quoted_printable 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "47b080c5db639b292ac79cbd34be0cfc5d36694768d8341109634d90b86930e2" "checksum r2d2 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)" = "1497e40855348e4a8a40767d8e55174bce1e445a3ac9254ad44ad468ee0485af" "checksum r2d2_sqlite 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b061f5b16692bbe81eeb260f92e6fc7d13aea455c4cbe67f5c4aa20aa92d1d9e" @@ -3449,18 +3449,18 @@ dependencies = [ "checksum strum_macros 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0054a7df764039a6cd8592b9de84be4bec368ff081d203a7d5371cbfa8e65c81" "checksum subtle 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c65d530b10ccaeac294f349038a597e435b18fb456aadd0840a623f83b9e941" "checksum syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad" -"checksum syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)" = "4696caa4048ac7ce2bcd2e484b3cef88c1004e41b8e945a277e2c25dc0b72060" +"checksum syn 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)" = "1425de3c33b0941002740a420b1a906a350b88d08b82b2c8a01035a3f9447bac" "checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6" "checksum synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545" "checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" "checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" "checksum termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" -"checksum thiserror 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)" = "467e5ff447618a916519a4e0d62772ab14f434897f3d63f05d8700ef1e9b22c1" -"checksum thiserror-impl 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)" = "e63c1091225b9834089b429bc4a2e01223470e3183e891582909e9d1c4cb55d9" +"checksum thiserror 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)" = "5976891d6950b4f68477850b5b9e5aa64d955961466f9e174363f573e54e8ca7" +"checksum thiserror-impl 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)" = "ab81dbd1cd69cd2ce22ecfbdd3bdb73334ba25350649408cc6c085f46d89573d" "checksum thread-local-object 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7da3caa820d0308c84c8654f6cafd81cc3195d45433311cbe22fcf44fc8be071" "checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" "checksum time 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" -"checksum tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)" = "05c1d570eb1a36f0345a5ce9c6c6e665b70b73d11236912c0b477616aeec47b1" +"checksum tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)" = "d099fa27b9702bed751524694adbe393e18b36b204da91eb1cbbbbb4a5ee2d58" "checksum tokio-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9a70f4fcd7b3b24fb194f837560168208f669ca8cb70d0c4b862944452396343" "checksum tokio-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" "checksum toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a" diff --git a/Cargo.toml b/Cargo.toml index df3e5f387..91f23517b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "deltachat" -version = "1.32.0" +version = "1.33.0" authors = ["Delta Chat Developers (ML) "] edition = "2018" license = "MPL-2.0" diff --git a/deltachat-ffi/Cargo.toml b/deltachat-ffi/Cargo.toml index 9aa19c8a6..887fcff78 100644 --- a/deltachat-ffi/Cargo.toml +++ b/deltachat-ffi/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "deltachat_ffi" -version = "1.32.0" +version = "1.33.0" description = "Deltachat FFI" authors = ["Delta Chat Developers (ML) "] edition = "2018" diff --git a/deltachat-ffi/deltachat.h b/deltachat-ffi/deltachat.h index 7a497d369..406ddbb33 100644 --- a/deltachat-ffi/deltachat.h +++ b/deltachat-ffi/deltachat.h @@ -381,7 +381,8 @@ char* dc_get_blobdir (const dc_context_t* context); * Messages are deleted whether they were seen or not, the UI should clearly point that out. * See also dc_estimate_deletion_cnt(). * - `delete_server_after` = 0=do not delete messages from server automatically (default), - * >=1=seconds, after which messages are deleted automatically from the server. + * 1=delete messages directly after receiving from server, mvbox is skipped. + * >1=seconds, after which messages are deleted automatically from the server, mvbox is used as defined. * "Saved messages" are deleted from the server as well as * emails matching the `show_emails` settings above, the UI should clearly point that out. * See also dc_estimate_deletion_cnt(). @@ -1350,7 +1351,7 @@ int dc_set_chat_profile_image (dc_context_t* context, uint32_t ch /** * Set mute duration of a chat. * - * This value can be checked by the ui upon receiving a new message to decide whether it should trigger an notification. + * The ui can then call dc_chat_is_muted() when receiving a new message to decide whether it should trigger an notification. * * Sends out #DC_EVENT_CHAT_MODIFIED. * @@ -2687,7 +2688,7 @@ int dc_chat_is_sending_locations (const dc_chat_t* chat); /** - * Check whether the chat is currently muted + * Check whether the chat is currently muted (can be changed by dc_set_chat_mute_duration()). * * @memberof dc_chat_t * @param chat The chat object. diff --git a/python/src/deltachat/account.py b/python/src/deltachat/account.py index b24de8de6..c641a8e8f 100644 --- a/python/src/deltachat/account.py +++ b/python/src/deltachat/account.py @@ -30,7 +30,7 @@ class Account(object): """ MissingCredentials = MissingCredentials - def __init__(self, db_path, os_name=None): + def __init__(self, db_path, os_name=None, logging=True): """ initialize account object. :param db_path: a path to the account database. The database @@ -39,6 +39,7 @@ class Account(object): """ # initialize per-account plugin system self._pm = hookspec.PerAccount._make_plugin_manager() + self._logging = logging self.add_account_plugin(self) self._dc_context = ffi.gc( @@ -63,6 +64,14 @@ class Account(object): atexit.register(self.shutdown) hook.dc_account_init(account=self) + def disable_logging(self): + """ disable logging. """ + self._logging = False + + def enable_logging(self): + """ re-enable logging. """ + self._logging = True + @hookspec.account_hookimpl def ac_process_ffi_event(self, ffi_event): for name, kwargs in self._map_ffi_event(ffi_event): @@ -73,7 +82,8 @@ class Account(object): # self.shutdown() def ac_log_line(self, msg): - self._pm.hook.ac_log_line(message=msg) + if self._logging: + self._pm.hook.ac_log_line(message=msg) def _check_config_key(self, name): if name not in self._configkeys: diff --git a/python/src/deltachat/testplugin.py b/python/src/deltachat/testplugin.py index f336ac058..7208e8280 100644 --- a/python/src/deltachat/testplugin.py +++ b/python/src/deltachat/testplugin.py @@ -5,9 +5,13 @@ import subprocess import queue import threading import fnmatch +import time +import weakref +import tempfile + import pytest import requests -import time + from . import Account, const from .tracker import ConfigureTracker from .capi import lib @@ -15,7 +19,7 @@ from .eventlogger import FFIEventLogger, FFIEventTracker from _pytest.monkeypatch import MonkeyPatch from _pytest._code import Source -import tempfile +import deltachat def pytest_addoption(parser): @@ -40,11 +44,55 @@ def pytest_configure(config): if cfg: config.option.liveconfig = cfg + # Make sure we don't get garbled output because threads keep running + # collect all ever created accounts in a weakref-set (so we don't + # keep objects unneccessarily alive) and enable/disable logging + # for each pytest test phase # (setup/call/teardown). + # Additionally make the acfactory use a logging/no-logging default. -def pytest_runtest_setup(item): - if (list(item.iter_markers(name="ignored")) - and not item.config.getoption("ignored")): - pytest.skip("Ignored tests not requested, use --ignored") + class LoggingAspect: + def __init__(self): + self._accounts = weakref.WeakSet() + + @deltachat.global_hookimpl + def dc_account_init(self, account): + self._accounts.add(account) + + def disable_logging(self, item): + for acc in self._accounts: + acc.disable_logging() + acfactory = item.funcargs.get("acfactory") + if acfactory: + acfactory.set_logging_default(False) + + def enable_logging(self, item): + for acc in self._accounts: + acc.enable_logging() + acfactory = item.funcargs.get("acfactory") + if acfactory: + acfactory.set_logging_default(True) + + @pytest.hookimpl(hookwrapper=True) + def pytest_runtest_setup(self, item): + self.enable_logging(item) + yield + self.disable_logging(item) + + @pytest.hookimpl(hookwrapper=True) + def pytest_pyfunc_call(self, pyfuncitem): + self.enable_logging(pyfuncitem) + yield + self.disable_logging(pyfuncitem) + + @pytest.hookimpl(hookwrapper=True) + def pytest_runtest_teardown(self, item): + self.enable_logging(item) + yield + self.disable_logging(item) + + la = LoggingAspect() + config.pluginmanager.register(la) + deltachat.register_global_plugin(la) def pytest_report_header(config, startdir): @@ -164,24 +212,34 @@ def acfactory(pytestconfig, tmpdir, request, session_liveconfig, data): self.live_count = 0 self.offline_count = 0 self._finalizers = [] + self._accounts = [] self.init_time = time.time() self._generated_keys = ["alice", "bob", "charlie", "dom", "elena", "fiona"] + self.set_logging_default(False) def finalize(self): while self._finalizers: fin = self._finalizers.pop() fin() + while self._accounts: + acc = self._accounts.pop() + acc.shutdown() + acc.disable_logging() + def make_account(self, path, logid, quiet=False): - ac = Account(path) + ac = Account(path, logging=self._logging) ac._evtracker = ac.add_account_plugin(FFIEventTracker(ac)) ac._configtracker = ac.add_account_plugin(ConfigureTracker()) if not quiet: ac.add_account_plugin(FFIEventLogger(ac, logid=logid)) - self._finalizers.append(ac.shutdown) + self._accounts.append(ac) return ac + def set_logging_default(self, logging): + self._logging = bool(logging) + def get_unconfigured_account(self): self.offline_count += 1 tmpdb = tmpdir.join("offlinedb%d" % self.offline_count) diff --git a/src/chat.rs b/src/chat.rs index f756a8134..a42c932c5 100644 --- a/src/chat.rs +++ b/src/chat.rs @@ -1742,8 +1742,7 @@ pub async fn delete_device_expired_messages(context: &Context) -> Result ? \ AND chat_id != ? \ - AND chat_id != ? \ - AND NOT hidden", + AND chat_id != ?", paramsv![ DC_CHAT_ID_TRASH, threshold_timestamp, diff --git a/src/configure/mod.rs b/src/configure/mod.rs index fba484ca8..65ce5a83c 100644 --- a/src/configure/mod.rs +++ b/src/configure/mod.rs @@ -84,6 +84,7 @@ impl Context { let (_s, r) = async_std::sync::channel(1); let mut imap = Imap::new(r); let mut is_imap_connected = false; + let was_configured_before = self.is_configured().await; while !self.shall_stop_ongoing().await { step_counter += 1; @@ -121,6 +122,15 @@ impl Context { } if let Some(provider) = provider::get_provider_info(¶m.addr) { + if !was_configured_before { + if let Some(config_defaults) = &provider.config_defaults { + for def in config_defaults.iter() { + info!(self, "apply config_defaults {}={}", def.key, def.value); + self.set_config(def.key, Some(def.value)).await?; + } + } + } + if !provider.after_login_hint.is_empty() { let mut msg = Message::new(Viewtype::Text); msg.text = Some(provider.after_login_hint.to_string()); diff --git a/src/context.rs b/src/context.rs index 5c554ba5f..414cd8069 100644 --- a/src/context.rs +++ b/src/context.rs @@ -252,7 +252,11 @@ impl Context { .get_raw_config_int(self, "dbversion") .await .unwrap_or_default(); - + let journal_mode = self + .sql + .query_get_value(self, "PRAGMA journal_mode;", paramsv![]) + .await + .unwrap_or_else(|| "unknown".to_string()); let e2ee_enabled = self.get_config_int(Config::E2eeEnabled).await; let mdns_enabled = self.get_config_int(Config::MdnsEnabled).await; let bcc_self = self.get_config_int(Config::BccSelf).await; @@ -299,6 +303,7 @@ impl Context { res.insert("number_of_contacts", contacts.to_string()); res.insert("database_dir", self.get_dbfile().display().to_string()); res.insert("database_version", dbversion.to_string()); + res.insert("journal_mode", journal_mode); res.insert("blobdir", self.get_blobdir().display().to_string()); res.insert("display_name", displayname.unwrap_or_else(|| unset.into())); res.insert( diff --git a/src/imap/mod.rs b/src/imap/mod.rs index 6d84cf66a..b53f3cb3b 100644 --- a/src/imap/mod.rs +++ b/src/imap/mod.rs @@ -134,7 +134,7 @@ impl async_imap::Authenticator for OAuth2 { } } -#[derive(Debug)] +#[derive(Debug, PartialEq)] enum FolderMeaning { Unknown, SentObjects, @@ -1124,7 +1124,8 @@ impl Imap { if sentbox_folder.is_none() { if let FolderMeaning::SentObjects = get_folder_meaning(&folder) { - info!(context, "sentbox folder is {:?}", folder); + sentbox_folder = Some(folder); + } else if let FolderMeaning::SentObjects = get_folder_meaning_by_name(&folder) { sentbox_folder = Some(folder); } } @@ -1133,6 +1134,7 @@ impl Imap { break; } } + info!(context, "sentbox folder is {:?}", sentbox_folder); drop(folders); @@ -1258,7 +1260,7 @@ impl Imap { // CAVE: if possible, take care not to add a name here that is "sent" in one language // but sth. different in others - a hard job. fn get_folder_meaning_by_name(folder_name: &Name) -> FolderMeaning { - let sent_names = vec!["sent", "sent objects", "gesendet"]; + let sent_names = vec!["sent", "sentmail", "sent objects", "gesendet"]; let lower = folder_name.name().to_lowercase(); if sent_names.into_iter().any(|s| s == lower) { @@ -1269,27 +1271,18 @@ fn get_folder_meaning_by_name(folder_name: &Name) -> FolderMeaning { } fn get_folder_meaning(folder_name: &Name) -> FolderMeaning { - if folder_name.attributes().is_empty() { - return FolderMeaning::Unknown; - } - - let mut res = FolderMeaning::Unknown; let special_names = vec!["\\Spam", "\\Trash", "\\Drafts", "\\Junk"]; for attr in folder_name.attributes() { if let NameAttribute::Custom(ref label) = attr { if special_names.iter().any(|s| *s == label) { - res = FolderMeaning::Other; + return FolderMeaning::Other; } else if label == "\\Sent" { - res = FolderMeaning::SentObjects + return FolderMeaning::SentObjects; } } } - - match res { - FolderMeaning::Unknown => get_folder_meaning_by_name(folder_name), - _ => res, - } + FolderMeaning::Unknown } async fn precheck_imf( diff --git a/src/provider/data.rs b/src/provider/data.rs index a33c77ca5..3f5fbb058 100644 --- a/src/provider/data.rs +++ b/src/provider/data.rs @@ -18,6 +18,7 @@ lazy_static::lazy_static! { Server { protocol: IMAP, socket: STARTTLS, hostname: "newyear.aktivix.org", port: 143, username_pattern: EMAIL }, Server { protocol: SMTP, socket: STARTTLS, hostname: "newyear.aktivix.org", port: 25, username_pattern: EMAIL }, ], + config_defaults: None, }; // aol.md: aol.com @@ -28,6 +29,7 @@ lazy_static::lazy_static! { overview_page: "https://providers.delta.chat/aol", server: vec![ ], + config_defaults: None, }; // autistici.org.md: autistici.org @@ -40,6 +42,7 @@ lazy_static::lazy_static! { Server { protocol: IMAP, socket: SSL, hostname: "mail.autistici.org", port: 993, username_pattern: EMAIL }, Server { protocol: SMTP, socket: SSL, hostname: "smtp.autistici.org", port: 465, username_pattern: EMAIL }, ], + config_defaults: None, }; // bluewin.ch.md: bluewin.ch @@ -52,6 +55,7 @@ lazy_static::lazy_static! { Server { protocol: IMAP, socket: SSL, hostname: "imaps.bluewin.ch", port: 993, username_pattern: EMAIL }, Server { protocol: SMTP, socket: SSL, hostname: "smtpauths.bluewin.ch", port: 465, username_pattern: EMAIL }, ], + config_defaults: None, }; // comcast.md: xfinity.com, comcast.net @@ -73,6 +77,7 @@ lazy_static::lazy_static! { Server { protocol: IMAP, socket: SSL, hostname: "imap.example.com", port: 1337, username_pattern: EMAIL }, Server { protocol: SMTP, socket: STARTTLS, hostname: "smtp.example.com", port: 1337, username_pattern: EMAIL }, ], + config_defaults: None, }; // fastmail.md: fastmail.com @@ -83,6 +88,7 @@ lazy_static::lazy_static! { overview_page: "https://providers.delta.chat/fastmail", server: vec![ ], + config_defaults: None, }; // freenet.de.md: freenet.de @@ -95,6 +101,7 @@ lazy_static::lazy_static! { Server { protocol: IMAP, socket: SSL, hostname: "mx.freenet.de", port: 993, username_pattern: EMAIL }, Server { protocol: SMTP, socket: STARTTLS, hostname: "mx.freenet.de", port: 587, username_pattern: EMAIL }, ], + config_defaults: None, }; // gmail.md: gmail.com, googlemail.com @@ -107,6 +114,7 @@ lazy_static::lazy_static! { Server { protocol: IMAP, socket: SSL, hostname: "imap.gmail.com", port: 993, username_pattern: EMAIL }, Server { protocol: SMTP, socket: SSL, hostname: "smtp.gmail.com", port: 465, username_pattern: EMAIL }, ], + config_defaults: None, }; // gmx.net.md: gmx.net, gmx.de, gmx.at, gmx.ch, gmx.org, gmx.eu, gmx.info, gmx.biz, gmx.com @@ -120,6 +128,7 @@ lazy_static::lazy_static! { Server { protocol: SMTP, socket: SSL, hostname: "mail.gmx.net", port: 465, username_pattern: EMAIL }, Server { protocol: SMTP, socket: STARTTLS, hostname: "mail.gmx.net", port: 587, username_pattern: EMAIL }, ], + config_defaults: None, }; // i.ua.md: i.ua @@ -135,6 +144,7 @@ lazy_static::lazy_static! { Server { protocol: IMAP, socket: SSL, hostname: "imap.mail.me.com", port: 993, username_pattern: EMAILLOCALPART }, Server { protocol: SMTP, socket: STARTTLS, hostname: "smtp.mail.me.com", port: 587, username_pattern: EMAIL }, ], + config_defaults: None, }; // kolst.com.md: kolst.com @@ -159,6 +169,15 @@ lazy_static::lazy_static! { Server { protocol: IMAP, socket: STARTTLS, hostname: "imap.nauta.cu", port: 143, username_pattern: EMAIL }, Server { protocol: SMTP, socket: STARTTLS, hostname: "smtp.nauta.cu", port: 25, username_pattern: EMAIL }, ], + config_defaults: Some(vec![ + ConfigDefault { key: Config::DeleteServerAfter, value: "1" }, + ConfigDefault { key: Config::BccSelf, value: "0" }, + ConfigDefault { key: Config::SentboxWatch, value: "0" }, + ConfigDefault { key: Config::MvboxWatch, value: "0" }, + ConfigDefault { key: Config::MvboxMove, value: "0" }, + ConfigDefault { key: Config::E2eeEnabled, value: "0" }, + ConfigDefault { key: Config::MediaQuality, value: "1" }, + ]), }; // outlook.com.md: hotmail.com, outlook.com, office365.com, outlook.com.tr, live.com @@ -171,6 +190,7 @@ lazy_static::lazy_static! { Server { protocol: IMAP, socket: SSL, hostname: "imap-mail.outlook.com", port: 993, username_pattern: EMAIL }, Server { protocol: SMTP, socket: STARTTLS, hostname: "smtp-mail.outlook.com", port: 587, username_pattern: EMAIL }, ], + config_defaults: None, }; // posteo.md: posteo.de @@ -183,6 +203,7 @@ lazy_static::lazy_static! { Server { protocol: IMAP, socket: STARTTLS, hostname: "posteo.de", port: 143, username_pattern: EMAIL }, Server { protocol: SMTP, socket: STARTTLS, hostname: "posteo.de", port: 587, username_pattern: EMAIL }, ], + config_defaults: None, }; // protonmail.md: protonmail.com, protonmail.ch @@ -193,6 +214,7 @@ lazy_static::lazy_static! { overview_page: "https://providers.delta.chat/protonmail", server: vec![ ], + config_defaults: None, }; // riseup.net.md: riseup.net @@ -201,6 +223,9 @@ lazy_static::lazy_static! { // rogers.com.md: rogers.com // - skipping provider with status OK and no special things to do + // systemli.org.md: systemli.org + // - skipping provider with status OK and no special things to do + // t-online.md: t-online.de, magenta.de static ref P_T_ONLINE: Provider = Provider { status: Status::PREPARATION, @@ -209,6 +234,7 @@ lazy_static::lazy_static! { overview_page: "https://providers.delta.chat/t-online", server: vec![ ], + config_defaults: None, }; // testrun.md: testrun.org @@ -222,6 +248,7 @@ lazy_static::lazy_static! { Server { protocol: IMAP, socket: STARTTLS, hostname: "testrun.org", port: 143, username_pattern: EMAIL }, Server { protocol: SMTP, socket: STARTTLS, hostname: "testrun.org", port: 587, username_pattern: EMAIL }, ], + config_defaults: None, }; // tiscali.it.md: tiscali.it @@ -234,6 +261,7 @@ lazy_static::lazy_static! { Server { protocol: IMAP, socket: SSL, hostname: "imap.tiscali.it", port: 993, username_pattern: EMAIL }, Server { protocol: SMTP, socket: SSL, hostname: "smtp.tiscali.it", port: 465, username_pattern: EMAIL }, ], + config_defaults: None, }; // ukr.net.md: ukr.net @@ -253,6 +281,7 @@ lazy_static::lazy_static! { Server { protocol: IMAP, socket: STARTTLS, hostname: "imap.web.de", port: 143, username_pattern: EMAILLOCALPART }, Server { protocol: SMTP, socket: STARTTLS, hostname: "smtp.web.de", port: 587, username_pattern: EMAILLOCALPART }, ], + config_defaults: None, }; // yahoo.md: yahoo.com, yahoo.de, yahoo.it, yahoo.fr, yahoo.es, yahoo.se, yahoo.co.uk, yahoo.co.nz, yahoo.com.au, yahoo.com.ar, yahoo.com.br, yahoo.com.mx, ymail.com, rocketmail.com, yahoodns.net @@ -265,6 +294,7 @@ lazy_static::lazy_static! { Server { protocol: IMAP, socket: SSL, hostname: "imap.mail.yahoo.com", port: 993, username_pattern: EMAIL }, Server { protocol: SMTP, socket: SSL, hostname: "smtp.mail.yahoo.com", port: 465, username_pattern: EMAIL }, ], + config_defaults: None, }; // yandex.ru.md: yandex.ru, yandex.com @@ -275,6 +305,7 @@ lazy_static::lazy_static! { overview_page: "https://providers.delta.chat/yandex-ru", server: vec![ ], + config_defaults: None, }; // ziggo.nl.md: ziggo.nl @@ -287,6 +318,7 @@ lazy_static::lazy_static! { Server { protocol: IMAP, socket: SSL, hostname: "imap.ziggo.nl", port: 993, username_pattern: EMAIL }, Server { protocol: SMTP, socket: STARTTLS, hostname: "smtp.ziggo.nl", port: 587, username_pattern: EMAIL }, ], + config_defaults: None, }; pub static ref PROVIDER_DATA: HashMap<&'static str, &'static Provider> = [ diff --git a/src/provider/mod.rs b/src/provider/mod.rs index 7f7174774..fc414968f 100644 --- a/src/provider/mod.rs +++ b/src/provider/mod.rs @@ -2,6 +2,7 @@ mod data; +use crate::config::Config; use crate::dc_tools::EmailAddress; use crate::provider::data::PROVIDER_DATA; @@ -57,6 +58,12 @@ impl Server { } } +#[derive(Debug)] +pub struct ConfigDefault { + pub key: Config, + pub value: &'static str, +} + #[derive(Debug)] pub struct Provider { pub status: Status, @@ -64,6 +71,7 @@ pub struct Provider { pub after_login_hint: &'static str, pub overview_page: &'static str, pub server: Vec, + pub config_defaults: Option>, } impl Provider { diff --git a/src/provider/update.py b/src/provider/update.py index f0a19db76..eb0a9e02b 100755 --- a/src/provider/update.py +++ b/src/provider/update.py @@ -9,6 +9,9 @@ out_all = "" out_domains = "" domains_dict = {} +def camel(name): + words = name.split("_") + return "".join(w.capitalize() for i, w in enumerate(words)) def cleanstr(s): s = s.strip() @@ -31,6 +34,18 @@ def file2url(f): return "https://providers.delta.chat/" + f +def process_config_defaults(data): + if not "config_defaults" in data: + return "None" + defaults = "Some(vec![\n" + config_defaults = data.get("config_defaults", "") + for key in config_defaults: + value = str(config_defaults[key]) + defaults += " ConfigDefault { key: Config::" + camel(key) + ", value: \"" + value + "\" },\n" + defaults += " ])" + return defaults + + def process_data(data, file): status = data.get("status", "") if status != "OK" and status != "PREPARATION" and status != "BROKEN": @@ -83,6 +98,8 @@ def process_data(data, file): server += (" Server { protocol: " + protocol + ", socket: " + socket + ", hostname: \"" + hostname + "\", port: " + str(port) + ", username_pattern: " + username_pattern + " },\n") + config_defaults = process_config_defaults(data) + provider = "" before_login_hint = cleanstr(data.get("before_login_hint", "")) after_login_hint = cleanstr(data.get("after_login_hint", "")) @@ -93,6 +110,7 @@ def process_data(data, file): provider += " after_login_hint: \"" + after_login_hint + "\",\n" provider += " overview_page: \"" + file2url(file) + "\",\n" provider += " server: vec![\n" + server + " ],\n" + provider += " config_defaults: " + config_defaults + ",\n" provider += " };\n\n" else: raise TypeError("SMTP and IMAP must be specified together or left out both") @@ -103,7 +121,7 @@ def process_data(data, file): # finally, add the provider global out_all, out_domains out_all += " // " + file[file.rindex("/")+1:] + ": " + comment.strip(", ") + "\n" - if status == "OK" and before_login_hint == "" and after_login_hint == "" and server == "": + if status == "OK" and before_login_hint == "" and after_login_hint == "" and server == "" and config_defaults == "None": out_all += " // - skipping provider with status OK and no special things to do\n\n" else: out_all += provider diff --git a/src/sql.rs b/src/sql.rs index 46cf13082..7a772659b 100644 --- a/src/sql.rs +++ b/src/sql.rs @@ -5,7 +5,6 @@ use async_std::sync::{Arc, RwLock}; use std::collections::HashSet; use std::path::Path; -use std::time::Duration; use rusqlite::{Connection, Error as SqlError, OpenFlags}; use thread_local_object::ThreadLocal; @@ -703,18 +702,13 @@ async fn open( open_flags.insert(OpenFlags::SQLITE_OPEN_READ_WRITE); open_flags.insert(OpenFlags::SQLITE_OPEN_CREATE); } + + // this actually creates min_idle database handles just now. + // therefore, with_init() must not try to modify the database as otherwise + // we easily get busy-errors (eg. table-creation, journal_mode etc. should be done on only one handle) let mgr = r2d2_sqlite::SqliteConnectionManager::file(dbfile.as_ref()) .with_flags(open_flags) .with_init(|c| { - // Only one process can make changes to the database at one time. - // busy_timeout defines, that if a second process wants write access, - // this second process will wait some milliseconds - // and try over until it gets write access or the given timeout is elapsed. - // If the second process does not get write access within the given timeout, - // sqlite3_step() will return the error SQLITE_BUSY. - // (without a busy_timeout, sqlite3_step() would return SQLITE_BUSY _at once_) - c.busy_timeout(Duration::from_secs(10))?; - c.execute_batch("PRAGMA secure_delete=on;")?; Ok(()) }); @@ -730,6 +724,15 @@ async fn open( } if !readonly { + // journal_mode is persisted, it is sufficient to change it only for one handle. + // (nb: execute() always returns errors for this PRAGMA call, just discard it. + // but even if execute() would handle errors more gracefully, we should continue on errors - + // systems might not be able to handle WAL, in which case the standard-journal is used. + // that may be not optimal, but better than not working at all :) + sql.execute("PRAGMA journal_mode=WAL;", paramsv![]) + .await + .ok(); + let mut exists_before_update = false; let mut dbversion_before_update: i32 = 0; /* Init tables to dbversion=0 */