diff --git a/Cargo.lock b/Cargo.lock index 90571344d..0dc8a3e95 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -15,6 +15,15 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2" +[[package]] +name = "aead" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cf01b9b56e767bb57b94ebf91a58b338002963785cdd7013e21c0d4679471e4" +dependencies = [ + "generic-array", +] + [[package]] name = "aes" version = "0.3.2" @@ -26,6 +35,20 @@ dependencies = [ "block-cipher-trait", ] +[[package]] +name = "aes-gcm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "834a6bda386024dbb7c8fc51322856c10ffe69559f972261c868485f5759c638" +dependencies = [ + "aead", + "aes", + "block-cipher-trait", + "ghash", + "subtle 2.2.3", + "zeroize", +] + [[package]] name = "aes-soft" version = "0.3.3" @@ -113,15 +136,15 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "efd3d156917d94862e779f356c5acae312b08fd3121e792c857d7928c8088423" dependencies = [ - "quote 1.0.6", - "syn 1.0.27", + "quote 1.0.7", + "syn 1.0.30", ] [[package]] name = "async-h1" -version = "1.1.2" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "effd501febce09534b924aa471e6a7fd689071fee63659473413f62a1979ae56" +checksum = "7c966ee4e290159619bdc5282ba252749386552be066dbcf5b97adf612798a9a" dependencies = [ "async-std", "byte-pool", @@ -131,7 +154,6 @@ dependencies = [ "lazy_static", "log", "pin-project-lite", - "url", ] [[package]] @@ -224,13 +246,13 @@ checksum = "c17772156ef2829aadc587461c7753af20b7e8db1529bc66855add962a3b35d3" [[package]] name = "async-trait" -version = "0.1.31" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c4f3195085c36ea8d24d32b2f828d23296a9370a28aa39d111f6f16bef9f3b" +checksum = "8f1c13101a3224fb178860ae372a031ce350bbd92d39968518f016744dde0bf7" dependencies = [ "proc-macro2", - "quote 1.0.6", - "syn 1.0.27", + "quote 1.0.7", + "syn 1.0.30", ] [[package]] @@ -269,6 +291,12 @@ dependencies = [ "rustc-demangle", ] +[[package]] +name = "base-x" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b20b618342cf9891c292c4f5ac2cde7287cc5c87e87e9c769d617793607dec1" + [[package]] name = "base64" version = "0.10.1" @@ -284,6 +312,12 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" +[[package]] +name = "base64" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d1ccbaf7d9ec9537465a97bf19edc1a4e158ecb49fc16178202238c569cc42" + [[package]] name = "bit-set" version = "0.5.2" @@ -391,9 +425,9 @@ checksum = "40e38929add23cdf8a366df9b0e088953150724bcbe5fc330b0d8eb3b328eec8" [[package]] name = "bumpalo" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5356f1d23ee24a1f785a56d1d1a5f0fd5b0f6a0c0fb2412ce11da71649ab78f6" +checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820" [[package]] name = "byte-pool" @@ -433,12 +467,6 @@ dependencies = [ "iovec", ] -[[package]] -name = "bytes" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "130aac562c0dd69c56b3b1cc8ffd2e17be31d0b6c25b61c96b76231aa23e39e1" - [[package]] name = "cargo_metadata" version = "0.6.4" @@ -503,7 +531,7 @@ checksum = "80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2" dependencies = [ "num-integer", "num-traits", - "time", + "time 0.1.43", ] [[package]] @@ -514,9 +542,9 @@ checksum = "b0fc239e0f6cb375d2402d48afb92f76f5404fd1df208a41930ec81eda078bea" [[package]] name = "clear_on_drop" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97276801e127ffb46b66ce23f35cc96bd454fa311294bced4bbace7baa8b1d17" +checksum = "c9cc5db465b294c3fa986d5bbb0f3017cd850bff6dd6c52f9ccff8b4d21b7b08" dependencies = [ "cc", ] @@ -544,11 +572,18 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "cookie" -version = "0.12.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "888604f00b3db336d2af898ec3c1d5d0ddf5e6d462220f2ededc33a87ac4bbd5" +checksum = "ca761767cf3fa9068cc893ec8c247a22d0fd0535848e65640c0548bd1f8bbb36" dependencies = [ - "time", + "aes-gcm", + "base64 0.12.1", + "hkdf", + "hmac", + "percent-encoding", + "rand 0.7.3", + "sha2", + "time 0.2.16", ] [[package]] @@ -610,9 +645,9 @@ dependencies = [ [[package]] name = "crossbeam-queue" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c695eeca1e7173472a32221542ae469b3e9aac3a4fc81f7696bcad82029493db" +checksum = "ab6bffe714b6bb07e42f201352c34f51fefd355ace793f9e638ebd52d23f98d2" dependencies = [ "cfg-if", "crossbeam-utils", @@ -630,25 +665,35 @@ dependencies = [ ] [[package]] -name = "ctor" -version = "0.1.14" +name = "crypto-mac" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf6b25ee9ac1995c54d7adb2eff8cfffb7260bc774fb63c601ec65467f43cd9d" +checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" dependencies = [ - "quote 1.0.6", - "syn 1.0.27", + "generic-array", + "subtle 1.0.0", +] + +[[package]] +name = "ctor" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39858aa5bac06462d4dd4b9164848eb81ffc4aa5c479746393598fd193afa227" +dependencies = [ + "quote 1.0.7", + "syn 1.0.30", ] [[package]] name = "curve25519-dalek" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26778518a7f6cffa1d25a44b602b62b979bd88adb9e99ffec546998cf3404839" +checksum = "5d85653f070353a16313d0046f173f70d1aadd5b42600a14de626f0dfb3473a5" dependencies = [ "byteorder", "digest", "rand_core 0.5.1", - "subtle", + "subtle 2.2.3", "zeroize", ] @@ -671,9 +716,9 @@ dependencies = [ "fnv", "ident_case", "proc-macro2", - "quote 1.0.6", + "quote 1.0.7", "strsim", - "syn 1.0.27", + "syn 1.0.30", ] [[package]] @@ -683,8 +728,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" dependencies = [ "darling_core", - "quote 1.0.6", - "syn 1.0.27", + "quote 1.0.7", + "syn 1.0.30", ] [[package]] @@ -774,8 +819,8 @@ dependencies = [ name = "deltachat_derive" version = "2.0.0" dependencies = [ - "quote 1.0.6", - "syn 1.0.27", + "quote 1.0.7", + "syn 1.0.30", ] [[package]] @@ -801,8 +846,8 @@ dependencies = [ "darling", "derive_builder_core", "proc-macro2", - "quote 1.0.6", - "syn 1.0.27", + "quote 1.0.7", + "syn 1.0.30", ] [[package]] @@ -813,8 +858,8 @@ checksum = "2791ea3e372c8495c0bc2033991d76b512cd799d07491fbd6890124db9458bef" dependencies = [ "darling", "proc-macro2", - "quote 1.0.6", - "syn 1.0.27", + "quote 1.0.7", + "syn 1.0.30", ] [[package]] @@ -854,6 +899,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "discard" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" + [[package]] name = "dtoa" version = "0.4.5" @@ -889,7 +940,7 @@ dependencies = [ "encoding", "lazy_static", "rand 0.7.3", - "time", + "time 0.1.43", "version_check 0.9.2", ] @@ -1035,8 +1086,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ "proc-macro2", - "quote 1.0.6", - "syn 1.0.27", + "quote 1.0.7", + "syn 1.0.30", "synstructure", ] @@ -1168,8 +1219,8 @@ checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39" dependencies = [ "proc-macro-hack", "proc-macro2", - "quote 1.0.6", - "syn 1.0.27", + "quote 1.0.7", + "syn 1.0.30", ] [[package]] @@ -1239,6 +1290,15 @@ dependencies = [ "wasi", ] +[[package]] +name = "ghash" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f0930ed19a7184089ea46d2fedead2f6dc2b674c5db4276b7da336c7cd83252" +dependencies = [ + "polyval", +] + [[package]] name = "gif" version = "0.10.3" @@ -1298,6 +1358,26 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35" +[[package]] +name = "hkdf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fa08a006102488bd9cd5b8013aabe84955cf5ae22e304c2caf655b633aefae3" +dependencies = [ + "digest", + "hmac", +] + +[[package]] +name = "hmac" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695" +dependencies = [ + "crypto-mac", + "digest", +] + [[package]] name = "hostname" version = "0.1.5" @@ -1308,22 +1388,11 @@ dependencies = [ "winutil", ] -[[package]] -name = "http" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9" -dependencies = [ - "bytes 0.5.4", - "fnv", - "itoa", -] - [[package]] name = "http-client" -version = "2.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271fae45413daaca82e8c6bf46e452b897873676ce56196d8939645711f542d5" +checksum = "fdae064c76b75ced4793544e843478c8c9c2bebf16fe6913212df83e30dfdb46" dependencies = [ "async-h1", "async-native-tls", @@ -1339,19 +1408,19 @@ dependencies = [ [[package]] name = "http-types" -version = "1.3.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49d9f44462c2e59d5d5826e7ba74b121ee2fb0ff091ef849692694f1d77aaf50" +checksum = "9a89eaaf43f3700e78c01cb8165d1bd05155065637d26ee2f49800c95e7b62ee" dependencies = [ "anyhow", "async-std", "cookie", - "http", "infer", - "omnom", "pin-project-lite", + "rand 0.7.3", "serde", "serde_json", + "serde_urlencoded", "url", ] @@ -1439,9 +1508,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.3.2" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076f042c5b7b98f31d205f1249267e12a6518c1481e9dae9764af19b707d2292" +checksum = "c398b2b113b55809ceb9ee3e753fcbac793f1956663f3c36549c1346015c2afe" dependencies = [ "autocfg 1.0.0", ] @@ -1550,7 +1619,7 @@ dependencies = [ "lettre", "mime", "regex", - "time", + "time 0.1.43", "uuid", ] @@ -1787,8 +1856,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c8b15b261814f992e33760b1fca9fe8b693d8a65299f20c9901688636cfb746" dependencies = [ "proc-macro2", - "quote 1.0.6", - "syn 1.0.27", + "quote 1.0.7", + "syn 1.0.30", ] [[package]] @@ -1848,15 +1917,6 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cbca9424c482ee628fa549d9c812e2cd22f1180b9222c9200fdfa6eb31aecb2" -[[package]] -name = "omnom" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6b216cee2e0d6e680f73158d15468c80b39e571c11669cd90556f9a644e9fd3" -dependencies = [ - "memchr", -] - [[package]] name = "once_cell" version = "1.4.0" @@ -1900,9 +1960,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.57" +version = "0.9.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7410fef80af8ac071d4f63755c0ab89ac3df0fd1ea91f1d1f37cf5cec4395990" +checksum = "a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de" dependencies = [ "autocfg 1.0.0", "cc", @@ -2019,29 +2079,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "0.4.17" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edc93aeee735e60ecb40cf740eb319ff23eab1c5748abfdb5c180e4ce49f7791" +checksum = "e75373ff9037d112bb19bc61333a06a159eaeb217660dcfbea7d88e1db823919" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "0.4.17" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e58db2081ba5b4c93bd6be09c40fd36cb9193a8336c384f3b40012e531aa7e40" +checksum = "10b4b44893d3c370407a1d6a5cfde7c41ae0478e31c516c85f67eb3adc51be6d" dependencies = [ "proc-macro2", - "quote 1.0.6", - "syn 1.0.27", + "quote 1.0.7", + "syn 1.0.30", ] [[package]] name = "pin-project-lite" -version = "0.1.5" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7505eeebd78492e0f6108f7171c4948dbb120ee8119d9d77d0afa5469bef67f" +checksum = "282adbf10f2698a7a77f8e983a74b2d18176c19a7fd32a45446139ae7b02b715" [[package]] name = "pin-utils" @@ -2051,9 +2111,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "piper" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b0deb65f46e873ba8aa7c6a8dbe3f23cb1bf59c339a81a1d56361dde4d66ac8" +checksum = "01608bfa680dafb103f9207fa944facf572e4e3e708d10de19a0d0c3d36e5f18" dependencies = [ "crossbeam-utils", "futures-io", @@ -2079,6 +2139,16 @@ dependencies = [ "inflate", ] +[[package]] +name = "polyval" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ec3341498978de3bfd12d1b22f1af1de22818f5473a11e8a6ef997989e3a212" +dependencies = [ + "cfg-if", + "universal-hash", +] + [[package]] name = "ppv-lite86" version = "0.2.8" @@ -2116,15 +2186,15 @@ checksum = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4" [[package]] name = "proc-macro-nested" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e946095f9d3ed29ec38de908c22f95d9ac008e424c7bcae54c75a79c527c694" +checksum = "0afe1bd463b9e9ed51d0e0f0b50b6b146aec855c56fd182bb242388710a9b6de" [[package]] name = "proc-macro2" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1502d12e458c49a4c9cbff560d0fe0060c252bc29799ed94ca2ed4bb665a0101" +checksum = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa" dependencies = [ "unicode-xid 0.2.0", ] @@ -2181,9 +2251,9 @@ checksum = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a" [[package]] name = "quote" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54a21852a652ad6f610c9510194f398ff6f8692e334fd1145fed931f7fbe44ea" +checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" dependencies = [ "proc-macro2", ] @@ -2404,9 +2474,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.3.8" +version = "1.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "226ddd1197737bcb937489322ec1b9edaac1709d46792886e70f2113923585a6" +checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6" dependencies = [ "aho-corasick", "memchr", @@ -2446,8 +2516,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "475e68978dc5b743f2f40d8e0a8fdc83f1c5e78cbf4b8fa5e74e73beebc340de" dependencies = [ "proc-macro2", - "quote 1.0.6", - "syn 1.0.27", + "quote 1.0.7", + "syn 1.0.30", ] [[package]] @@ -2475,7 +2545,7 @@ dependencies = [ "num-iter", "num-traits", "rand 0.7.3", - "subtle", + "subtle 2.2.3", "zeroize", ] @@ -2491,7 +2561,7 @@ dependencies = [ "libsqlite3-sys", "lru-cache", "memchr", - "time", + "time 0.1.43", ] [[package]] @@ -2552,9 +2622,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3d612bc64430efeb3f7ee6ef26d590dce0c43249217bddc62112540c7941e1" +checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" [[package]] name = "safemem" @@ -2659,22 +2729,22 @@ checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" [[package]] name = "serde" -version = "1.0.110" +version = "1.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99e7b308464d16b56eba9964e4972a3eee817760ab60d88c3f86e1fecb08204c" +checksum = "c9124df5b40cbd380080b2cc6ab894c040a3070d995f5c9dc77e18c34a8ae37d" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.110" +version = "1.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "818fbf6bfa9a42d3bfcaca148547aa00c7b915bec71d1757aa2d44ca68771984" +checksum = "3f2c3ac8e6ca1e9c80b8be1023940162bf81ae3cffbb1809474152f2ce1eb250" dependencies = [ "proc-macro2", - "quote 1.0.6", - "syn 1.0.27", + "quote 1.0.7", + "syn 1.0.30", ] [[package]] @@ -2712,6 +2782,12 @@ dependencies = [ "opaque-debug", ] +[[package]] +name = "sha1" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" + [[package]] name = "sha2" version = "0.8.2" @@ -2767,8 +2843,9 @@ checksum = "c7cb5678e1615754284ec264d9bb5b4c27d2018577fd90ac0ceb578591ed5ee4" [[package]] name = "smol" -version = "0.1.10" -source = "git+https://github.com/dignifiedquire/smol-1?branch=isolate-nix#1ba84935e4e48be927c7f8f4a9cb5c05614135c3" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "845f5e7db6b614a8f4f59e565c3035f0fab2f71c9537ff0119eddb60d866cae3" dependencies = [ "async-task", "crossbeam-deque", @@ -2809,12 +2886,70 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" +[[package]] +name = "standback" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0437cfb83762844799a60e1e3b489d5ceb6a650fbacb86437badc1b6d87b246" +dependencies = [ + "version_check 0.9.2", +] + [[package]] name = "static_assertions" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f3eb36b47e512f8f1c9e3d10c2c1965bc992bd9cdb024fa581e2194501c83d3" +[[package]] +name = "stdweb" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5" +dependencies = [ + "discard", + "rustc_version", + "stdweb-derive", + "stdweb-internal-macros", + "stdweb-internal-runtime", + "wasm-bindgen", +] + +[[package]] +name = "stdweb-derive" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" +dependencies = [ + "proc-macro2", + "quote 1.0.7", + "serde", + "serde_derive", + "syn 1.0.30", +] + +[[package]] +name = "stdweb-internal-macros" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" +dependencies = [ + "base-x", + "proc-macro2", + "quote 1.0.7", + "serde", + "serde_derive", + "serde_json", + "sha1", + "syn 1.0.30", +] + +[[package]] +name = "stdweb-internal-runtime" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" + [[package]] name = "stop-token" version = "0.1.2" @@ -2854,21 +2989,27 @@ checksum = "0054a7df764039a6cd8592b9de84be4bec368ff081d203a7d5371cbfa8e65c81" dependencies = [ "heck", "proc-macro2", - "quote 1.0.6", - "syn 1.0.27", + "quote 1.0.7", + "syn 1.0.30", ] [[package]] name = "subtle" -version = "2.2.2" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c65d530b10ccaeac294f349038a597e435b18fb456aadd0840a623f83b9e941" +checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" + +[[package]] +name = "subtle" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502d53007c02d7605a05df1c1a73ee436952781653da5d0bf57ad608f66932c1" [[package]] name = "surf" -version = "2.0.0-alpha.2" +version = "2.0.0-alpha.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d72c302d4a24b2c9d412f1fe5edd892946778d33c423bba087c6c10deeb656ff" +checksum = "68bf1412b095b3a54da6ec3a969e2663cb3cf535652cd97c02e99443a400fd7d" dependencies = [ "async-std", "futures 0.3.5", @@ -2897,12 +3038,12 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.27" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef781e621ee763a2a40721a8861ec519cb76966aee03bb5d00adb6a31dc1c1de" +checksum = "93a56fabc59dce20fe48b6c832cc249c713e7ed88fa28b0ee0a3bfcaae5fe4e2" dependencies = [ "proc-macro2", - "quote 1.0.6", + "quote 1.0.7", "unicode-xid 0.2.0", ] @@ -2922,8 +3063,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545" dependencies = [ "proc-macro2", - "quote 1.0.6", - "syn 1.0.27", + "quote 1.0.7", + "syn 1.0.30", "unicode-xid 0.2.0", ] @@ -2976,8 +3117,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "893582086c2f98cde18f906265a65b5030a074b1046c674ae898be6519a7f479" dependencies = [ "proc-macro2", - "quote 1.0.6", - "syn 1.0.27", + "quote 1.0.7", + "syn 1.0.30", ] [[package]] @@ -2999,13 +3140,51 @@ dependencies = [ "winapi", ] +[[package]] +name = "time" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a51cadc5b1eec673a685ff7c33192ff7b7603d0b75446fb354939ee615acb15" +dependencies = [ + "cfg-if", + "libc", + "standback", + "stdweb", + "time-macros", + "version_check 0.9.2", + "winapi", +] + +[[package]] +name = "time-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ae9b6e9f095bc105e183e3cd493d72579be3181ad4004fceb01adbe9eecab2d" +dependencies = [ + "proc-macro-hack", + "time-macros-impl", +] + +[[package]] +name = "time-macros-impl" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5c3be1edfad6027c69f5491cf4cb310d1a71ecd6af742788c6ff8bced86b8fa" +dependencies = [ + "proc-macro-hack", + "proc-macro2", + "quote 1.0.7", + "standback", + "syn 1.0.30", +] + [[package]] name = "tokio-io" version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" dependencies = [ - "bytes 0.4.12", + "bytes", "futures 0.1.29", "log", ] @@ -3096,6 +3275,16 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" +[[package]] +name = "universal-hash" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df0c900f2f9b4116803415878ff48b63da9edb268668e08cf9292d7503114a01" +dependencies = [ + "generic-array", + "subtle 2.2.3", +] + [[package]] name = "url" version = "2.1.1" @@ -3124,9 +3313,9 @@ dependencies = [ [[package]] name = "vcpkg" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168" +checksum = "55d1e41d56121e07f1e223db0a4def204e45c85425f6a16d462fd07c8d10d74c" [[package]] name = "version_check" @@ -3192,8 +3381,8 @@ dependencies = [ "lazy_static", "log", "proc-macro2", - "quote 1.0.6", - "syn 1.0.27", + "quote 1.0.7", + "syn 1.0.30", "wasm-bindgen-shared", ] @@ -3215,7 +3404,7 @@ version = "0.2.63" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "838e423688dac18d73e31edce74ddfac468e37b1506ad163ffaf0a46f703ffe3" dependencies = [ - "quote 1.0.6", + "quote 1.0.7", "wasm-bindgen-macro-support", ] @@ -3226,8 +3415,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3156052d8ec77142051a533cdd686cba889537b213f948cd1d20869926e68e92" dependencies = [ "proc-macro2", - "quote 1.0.6", - "syn 1.0.27", + "quote 1.0.7", + "syn 1.0.30", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3334,7 +3523,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de251eec69fc7c1bc3923403d18ececb929380e016afe103da75f396704f8ca2" dependencies = [ "proc-macro2", - "quote 1.0.6", - "syn 1.0.27", + "quote 1.0.7", + "syn 1.0.30", "synstructure", ] diff --git a/Cargo.toml b/Cargo.toml index 6028ded0a..f3ade2bf8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -98,5 +98,3 @@ repl = ["internals", "rustyline", "log", "pretty_env_logger", "ansi_term"] vendored = ["async-native-tls/vendored", "async-smtp/native-tls-vendored"] nightly = ["pgp/nightly"] -[patch.crates-io] -smol = { git = "https://github.com/dignifiedquire/smol-1", branch = "isolate-nix" } diff --git a/src/job.rs b/src/job.rs index 7cffba035..b86ede9df 100644 --- a/src/job.rs +++ b/src/job.rs @@ -498,12 +498,12 @@ impl Job { } async fn move_msg(&mut self, context: &Context, imap: &mut Imap) -> Status { - let msg = job_try!(Message::load_from_db(context, MsgId::new(self.foreign_id)).await); - - if let Err(err) = imap.ensure_configured_folders(context, true).await { - warn!(context, "could not configure folders: {:?}", err); + if let Err(err) = imap.connect_configured(context).await { + warn!(context, "could not connect: {:?}", err); return Status::RetryLater; } + + let msg = job_try!(Message::load_from_db(context, MsgId::new(self.foreign_id)).await); let dest_folder = context.get_config(Config::ConfiguredMvboxFolder).await; if let Some(dest_folder) = dest_folder { @@ -538,6 +538,11 @@ impl Job { /// records pointing to the same message on the server, the job /// also removes the message on the server. async fn delete_msg_on_imap(&mut self, context: &Context, imap: &mut Imap) -> Status { + if let Err(err) = imap.connect_configured(context).await { + warn!(context, "could not connect: {:?}", err); + return Status::RetryLater; + } + let msg = job_try!(Message::load_from_db(context, MsgId::new(self.foreign_id)).await); if !msg.rfc724_mid.is_empty() { @@ -608,6 +613,11 @@ impl Job { } async fn empty_server(&mut self, context: &Context, imap: &mut Imap) -> Status { + if let Err(err) = imap.connect_configured(context).await { + warn!(context, "could not connect: {:?}", err); + return Status::RetryLater; + } + if self.foreign_id & DC_EMPTY_MVBOX > 0 { if let Some(mvbox_folder) = &context.get_config(Config::ConfiguredMvboxFolder).await { imap.empty_folder(context, &mvbox_folder).await; @@ -620,6 +630,11 @@ impl Job { } async fn markseen_msg_on_imap(&mut self, context: &Context, imap: &mut Imap) -> Status { + if let Err(err) = imap.connect_configured(context).await { + warn!(context, "could not connect: {:?}", err); + return Status::RetryLater; + } + let msg = job_try!(Message::load_from_db(context, MsgId::new(self.foreign_id)).await); let folder = msg.server_folder.as_ref().unwrap(); diff --git a/src/scheduler.rs b/src/scheduler.rs index fd685f9e7..f6cb8f6da 100644 --- a/src/scheduler.rs +++ b/src/scheduler.rs @@ -61,17 +61,12 @@ async fn inbox_loop(ctx: Context, started: Sender<()>, inbox_handlers: ImapConne let ctx1 = ctx.clone(); let fut = async move { - let ctx = ctx1; - if let Err(err) = connection.connect_configured(&ctx).await { - error!(ctx, "{}", err); - return; - } - started.send(()).await; + let ctx = ctx1; // track number of continously executed jobs - let mut jobs_loaded: i32 = 0; - let mut info: InterruptInfo = Default::default(); + let mut jobs_loaded = 0; + let mut info = InterruptInfo::default(); loop { match job::load_next(&ctx, Thread::Imap, &info).await { Some(job) if jobs_loaded <= 20 => { @@ -106,6 +101,11 @@ async fn inbox_loop(ctx: Context, started: Sender<()>, inbox_handlers: ImapConne async fn fetch(ctx: &Context, connection: &mut Imap) { match ctx.get_config(Config::ConfiguredInboxFolder).await { Some(watch_folder) => { + if let Err(err) = connection.connect_configured(&ctx).await { + error!(ctx, "{}", err); + return; + } + // fetch if let Err(err) = connection.fetch(&ctx, &watch_folder).await { connection.trigger_reconnect(); @@ -122,6 +122,12 @@ async fn fetch(ctx: &Context, connection: &mut Imap) { async fn fetch_idle(ctx: &Context, connection: &mut Imap, folder: Config) -> InterruptInfo { match ctx.get_config(folder).await { Some(watch_folder) => { + // connect and fake idle if unable to connect + if let Err(err) = connection.connect_configured(&ctx).await { + error!(ctx, "imap connection failed: {}", err); + return connection.fake_idle(&ctx, None).await; + } + // fetch if let Err(err) = connection.fetch(&ctx, &watch_folder).await { connection.trigger_reconnect(); @@ -167,13 +173,8 @@ async fn simple_imap_loop( let ctx1 = ctx.clone(); let fut = async move { - let ctx = ctx1; - if let Err(err) = connection.connect_configured(&ctx).await { - error!(ctx, "{}", err); - return; - } - started.send(()).await; + let ctx = ctx1; loop { fetch_idle(&ctx, &mut connection, folder).await;