diff --git a/Cargo.lock b/Cargo.lock index 0f358a80c..c3216cf32 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13,9 +13,9 @@ dependencies = [ [[package]] name = "adler2" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aead" @@ -70,7 +70,7 @@ dependencies = [ "cfg-if", "once_cell", "version_check", - "zerocopy 0.8.25", + "zerocopy 0.8.26", ] [[package]] @@ -178,7 +178,7 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", "synstructure", ] @@ -190,7 +190,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -208,7 +208,7 @@ dependencies = [ "log", "pin-utils", "pkg-config", - "tokio 1.45.0", + "tokio 1.45.1", "winapi", ] @@ -220,7 +220,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -253,7 +253,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -264,7 +264,7 @@ checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -275,9 +275,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "awaitdrop" @@ -372,7 +372,7 @@ dependencies = [ "serde_urlencoded", "sha1", "sync_wrapper 1.0.2", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-tungstenite", "tower 0.5.2", "tower-layer", @@ -438,7 +438,7 @@ dependencies = [ "serde", "serde_html_form", "serde_path_to_error", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-util", "tower 0.5.2", "tower-layer", @@ -513,9 +513,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.7.3" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" +checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" [[package]] name = "bb8" @@ -525,7 +525,7 @@ checksum = "212d8b8e1a22743d9241575c6ba822cf9c8fef34771c86ab7e477a4fbfd254e5" dependencies = [ "futures-util", "parking_lot", - "tokio 1.45.0", + "tokio 1.45.1", ] [[package]] @@ -535,7 +535,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e570e6557cd0f88d28d32afa76644873271a70dc22656df565b2021c4036aa9c" dependencies = [ "bb8", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-postgres", ] @@ -554,7 +554,7 @@ version = "0.66.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "cexpr", "clang-sys", "lazy_static", @@ -567,7 +567,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.101", + "syn 2.0.104", "which", ] @@ -577,7 +577,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "cexpr", "clang-sys", "itertools", @@ -590,7 +590,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.101", + "syn 2.0.104", "which", ] @@ -623,9 +623,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" [[package]] name = "bitvec" @@ -666,11 +666,20 @@ dependencies = [ "generic-array", ] +[[package]] +name = "borsh" +version = "1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" +dependencies = [ + "cfg_aliases", +] + [[package]] name = "bumpalo" -version = "3.17.0" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "byteorder" @@ -713,9 +722,9 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.9" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" +checksum = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab" dependencies = [ "serde", ] @@ -731,9 +740,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.22" +version = "1.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32db95edf998450acc7881c932f94cd9b05c87b4b2599e8bab064753da4acfd1" +checksum = "d487aa071b5f64da6f19a3e848e3578944b726ee5a4854b82172f02aa876bfdc" dependencies = [ "jobserver", "libc", @@ -770,9 +779,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" [[package]] name = "cfg_aliases" @@ -852,9 +861,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" dependencies = [ "core-foundation-sys", "libc", @@ -1025,7 +1034,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -1051,7 +1060,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" dependencies = [ "data-encoding", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -1088,7 +1097,7 @@ checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -1148,13 +1157,13 @@ dependencies = [ "serde_json", "sha2", "tap", - "thiserror 1.0.69", - "tokio 1.45.0", + "thiserror 2.0.12", + "tokio 1.45.1", "tokio-rustls", "tracing", "uuid", "win-api-wrappers", - "windows 0.58.0", + "windows 0.61.3", ] [[package]] @@ -1165,10 +1174,10 @@ dependencies = [ "cfg-if", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.12", "uuid", - "windows-registry 0.3.0", - "windows-result 0.2.0", + "windows-registry", + "windows-result", ] [[package]] @@ -1181,7 +1190,7 @@ dependencies = [ "axum 0.8.4", "axum-extra", "backoff", - "bitflags 2.9.0", + "bitflags 2.9.1", "bytes 1.10.1", "cadeau", "camino", @@ -1206,7 +1215,7 @@ dependencies = [ "ironrdp-core", "ironrdp-pdu 0.5.0", "ironrdp-rdcleanpath", - "ironrdp-tokio 0.4.0", + "ironrdp-tokio 0.5.0", "jmux-proxy", "job-queue", "job-queue-libsql", @@ -1217,7 +1226,7 @@ dependencies = [ "parking_lot", "pcap-file", "picky", - "picky-krb 0.9.4", + "picky-krb 0.11.0", "pin-project-lite 0.2.16", "portpicker", "proptest", @@ -1232,9 +1241,9 @@ dependencies = [ "sysinfo", "tap", "terminal-streamer", - "thiserror 1.0.69", + "thiserror 2.0.12", "time", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-rustls", "tokio-test", "tokio-tungstenite", @@ -1269,7 +1278,7 @@ name = "devolutions-gateway-task" version = "0.0.0" dependencies = [ "async-trait", - "tokio 1.45.0", + "tokio 1.45.1", ] [[package]] @@ -1280,7 +1289,7 @@ dependencies = [ "async-trait", "camino", "devolutions-gateway-task", - "tokio 1.45.0", + "tokio 1.45.1", "tracing", "tracing-appender", "tracing-subscriber", @@ -1316,7 +1325,7 @@ dependencies = [ "serde_json", "sha1", "sha2", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-postgres", "tower 0.5.2", "tower-http 0.5.2", @@ -1367,11 +1376,11 @@ dependencies = [ "schemars", "serde", "serde_json", - "tokio 1.45.0", + "tokio 1.45.1", "tower 0.3.1", "uuid", "win-api-wrappers", - "windows-registry 0.2.0", + "windows-registry", ] [[package]] @@ -1382,9 +1391,9 @@ dependencies = [ "embed-resource", "fs_extra", "parking_lot", - "tokio 1.45.0", + "tokio 1.45.1", "win-api-wrappers", - "windows-core 0.58.0", + "windows-core 0.61.2", ] [[package]] @@ -1406,11 +1415,11 @@ dependencies = [ "serde_json", "tap", "tempfile", - "thiserror 1.0.69", - "tokio 1.45.0", + "thiserror 2.0.12", + "tokio 1.45.1", "tracing", "win-api-wrappers", - "windows 0.58.0", + "windows 0.61.3", ] [[package]] @@ -1454,7 +1463,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -1610,16 +1619,16 @@ dependencies = [ [[package]] name = "embed-resource" -version = "2.5.1" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b68b6f9f63a0b6a38bc447d4ce84e2b388f3ec95c99c641c8ff0dd3ef89a6379" +checksum = "0963f530273dc3022ab2bdc3fcd6d488e850256f2284a82b7413cb9481ee85dd" dependencies = [ "cc", "memchr", "rustc_version", "toml", "vswhom", - "winreg 0.52.0", + "winreg 0.55.0", ] [[package]] @@ -1630,12 +1639,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.11" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -1823,7 +1832,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -1883,15 +1892,16 @@ dependencies = [ [[package]] name = "generator" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd" +checksum = "d18470a76cb7f8ff746cf1f7470914f900252ec36bbc40b569d74b1258446827" dependencies = [ + "cc", "cfg-if", "libc", "log", "rustversion", - "windows 0.58.0", + "windows 0.61.3", ] [[package]] @@ -1914,7 +1924,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi 0.11.1+wasi-snapshot-preview1", "wasm-bindgen", ] @@ -1979,7 +1989,7 @@ dependencies = [ "http 0.2.12", "indexmap 2.9.0", "slab", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-util", "tracing", ] @@ -1998,7 +2008,7 @@ dependencies = [ "http 1.3.1", "indexmap 2.9.0", "slab", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-util", "tracing", ] @@ -2021,9 +2031,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.3" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" +checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" [[package]] name = "hashlink" @@ -2036,11 +2046,11 @@ dependencies = [ [[package]] name = "headers" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322106e6bd0cba2d5ead589ddb8150a13d7c4217cf80d7c4f682ca994ccc6aa9" +checksum = "b3314d5adb5d94bcdf56771f2e50dbbc80bb4bdf88967526706205ac9eff24eb" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "bytes 1.10.1", "headers-core", "http 1.3.1", @@ -2060,15 +2070,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - -[[package]] -name = "hermit-abi" -version = "0.4.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" [[package]] name = "hex" @@ -2078,9 +2082,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hex-literal" -version = "0.4.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" +checksum = "bcaaec4551594c969335c98c903c1397853d4198408ea609190f420500f6be71" [[package]] name = "hkdf" @@ -2235,7 +2239,7 @@ dependencies = [ "itoa", "pin-project-lite 0.2.16", "socket2", - "tokio 1.45.0", + "tokio 1.45.1", "tower-service", "tracing", "want", @@ -2258,24 +2262,23 @@ dependencies = [ "itoa", "pin-project-lite 0.2.16", "smallvec", - "tokio 1.45.0", + "tokio 1.45.1", "want", ] [[package]] name = "hyper-rustls" -version = "0.27.5" +version = "0.27.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ - "futures-util", "http 1.3.1", "hyper 1.6.0", "hyper-util", - "rustls 0.23.27", + "rustls 0.23.28", "rustls-native-certs", "rustls-pki-types", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-rustls", "tower-service", ] @@ -2288,7 +2291,7 @@ checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ "hyper 0.14.32", "pin-project-lite 0.2.16", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-io-timeout", ] @@ -2301,26 +2304,30 @@ dependencies = [ "bytes 1.10.1", "hyper 0.14.32", "native-tls", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-native-tls", ] [[package]] name = "hyper-util" -version = "0.1.11" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" +checksum = "dc2fdfdbff08affe55bb779f33b053aa1fe5dd5b54c257343c17edfa55711bdb" dependencies = [ + "base64 0.22.1", "bytes 1.10.1", "futures-channel", + "futures-core", "futures-util", "http 1.3.1", "http-body 1.0.1", "hyper 1.6.0", + "ipnet", "libc", + "percent-encoding", "pin-project-lite 0.2.16", "socket2", - "tokio 1.45.0", + "tokio 1.45.1", "tower-service", "tracing", ] @@ -2337,7 +2344,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.61.0", + "windows-core 0.61.2", ] [[package]] @@ -2398,9 +2405,9 @@ checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" [[package]] name = "icu_properties" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2549ca8c7241c82f59c80ba2a6f415d931c5b58d24fb8412caa1a1f02c49139a" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" dependencies = [ "displaydoc", "icu_collections", @@ -2414,9 +2421,9 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8197e866e47b68f8f7d95249e172903bec06004b18b2937f1095d40a0c57de04" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" [[package]] name = "icu_provider" @@ -2483,17 +2490,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "equivalent", - "hashbrown 0.15.3", + "hashbrown 0.15.4", "serde", ] [[package]] name = "inotify" -version = "0.9.6" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" +checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.9.1", "inotify-sys", "libc", ] @@ -2544,6 +2551,16 @@ version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +[[package]] +name = "iri-string" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +dependencies = [ + "memchr", + "serde", +] + [[package]] name = "ironrdp" version = "0.5.0" @@ -2584,7 +2601,7 @@ name = "ironrdp-ainput" version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861#2e1a9ac88e38e7d92d893007bc25d0a05c365861" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "ironrdp-dvc", "ironrdp-pdu 0.1.0", "num-derive", @@ -2620,7 +2637,7 @@ name = "ironrdp-cliprdr" version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861#2e1a9ac88e38e7d92d893007bc25d0a05c365861" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "ironrdp-pdu 0.1.0", "ironrdp-svc 0.1.0", "thiserror 1.0.69", @@ -2654,9 +2671,9 @@ dependencies = [ "ironrdp-svc 0.4.0", "picky", "picky-asn1-der 0.5.2", - "picky-asn1-x509 0.14.3", + "picky-asn1-x509 0.14.4", "rand_core 0.6.4", - "sspi 0.15.7", + "sspi 0.15.13", "tracing", "url", ] @@ -2709,7 +2726,7 @@ version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861#2e1a9ac88e38e7d92d893007bc25d0a05c365861" dependencies = [ "bit_field", - "bitflags 2.9.0", + "bitflags 2.9.1", "bitvec", "byteorder", "ironrdp-error 0.1.0", @@ -2726,7 +2743,7 @@ version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861#2e1a9ac88e38e7d92d893007bc25d0a05c365861" dependencies = [ "bit_field", - "bitflags 2.9.0", + "bitflags 2.9.1", "byteorder", "der-parser", "ironrdp-error 0.1.0", @@ -2749,7 +2766,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc69c5d6ad3399965e0d3762886857f5861d4d854efe8d2bfc3462eb2b2b555a" dependencies = [ "bit_field", - "bitflags 2.9.0", + "bitflags 2.9.1", "byteorder", "der-parser", "ironrdp-core", @@ -2780,7 +2797,7 @@ name = "ironrdp-rdpsnd" version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861#2e1a9ac88e38e7d92d893007bc25d0a05c365861" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "ironrdp-pdu 0.1.0", "ironrdp-svc 0.1.0", "tracing", @@ -2803,7 +2820,7 @@ dependencies = [ "ironrdp-rdpsnd", "ironrdp-svc 0.1.0", "ironrdp-tokio 0.1.0", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-rustls", "tracing", ] @@ -2813,7 +2830,7 @@ name = "ironrdp-svc" version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861#2e1a9ac88e38e7d92d893007bc25d0a05c365861" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "ironrdp-pdu 0.1.0", ] @@ -2823,7 +2840,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bcca9d5182ebd60d888fac289480db1e1f1d53598108a8a5797e2013b8b2afe2" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "ironrdp-core", "ironrdp-pdu 0.5.0", ] @@ -2835,18 +2852,18 @@ source = "git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d89300 dependencies = [ "bytes 1.10.1", "ironrdp-async 0.1.0", - "tokio 1.45.0", + "tokio 1.45.1", ] [[package]] name = "ironrdp-tokio" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55e49a72da0632d87a456a21f70e0ae276122ff43484929f1028fb70c355c7b4" +checksum = "2a44ec3da4e2a5ca5fef2866f5995e684ab87fecd55f4247a0a8090392a2c21a" dependencies = [ "bytes 1.10.1", "ironrdp-async 0.5.0", - "tokio 1.45.0", + "tokio 1.45.1", ] [[package]] @@ -2896,21 +2913,21 @@ dependencies = [ "proxy-socks", "proxy-types", "proxy_cfg", - "rustls 0.23.27", + "rustls 0.23.28", "rustls-native-certs", "rustls-pemfile 2.2.0", "seahorse", "sysinfo", "test-utils", "tinyjson", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-tungstenite", "tracing", "tracing-appender", "tracing-subscriber", "transport", "uuid", - "windows 0.58.0", + "windows 0.61.3", ] [[package]] @@ -2940,7 +2957,7 @@ dependencies = [ "bytes 1.10.1", "futures-util", "jmux-proto", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-util", "tracing", ] @@ -3111,18 +3128,18 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.172" +version = "0.2.174" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] name = "libloading" -version = "0.8.7" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a793df0d7afeac54f95b471d3af7f0d4fb975699f972341a4b76988d49cdf0c" +checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", - "windows-targets 0.53.0", + "windows-targets 0.53.2", ] [[package]] @@ -3133,27 +3150,27 @@ checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libredox" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "libc", "redox_syscall", ] [[package]] name = "libsql" -version = "0.9.6" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "096b80492b42179396a551078a24dbc8d50c135e80098e10cf46e1ce82b86e09" +checksum = "d41c1c2106d415b8bf929ca6e644e2bc9a44ce5aea9819350276e4d97e27f3b1" dependencies = [ "anyhow", "async-stream", "async-trait", "base64 0.21.7", "bincode", - "bitflags 2.9.0", + "bitflags 2.9.1", "bytes 1.10.1", "chrono", "crc32fast", @@ -3169,7 +3186,7 @@ dependencies = [ "serde", "serde_json", "thiserror 1.0.69", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-stream", "tokio-util", "tonic", @@ -3183,20 +3200,21 @@ dependencies = [ [[package]] name = "libsql-ffi" -version = "0.9.6" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfaffc5d1d4e990961c48989b04252c22dd6628c1e0c66a4724d3918932cc96e" +checksum = "e0df681b059a8672691e60232e78967ba821edd37e959f4e9fa8a3de36e9ca29" dependencies = [ "bindgen 0.66.1", "cc", + "cmake", "glob", ] [[package]] name = "libsql-hrana" -version = "0.9.6" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af3522399868e2302c47ae31902017e2eccbf51c50e6d7ad78eb7e96a640dd43" +checksum = "09754f239a048aff667f0f2f492a4011d2bdafa8e662c138ab2c86badf73aaf5" dependencies = [ "base64 0.21.7", "bytes 1.10.1", @@ -3206,11 +3224,11 @@ dependencies = [ [[package]] name = "libsql-rusqlite" -version = "0.9.6" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4487c5a1ee674aae0f300cb5507af03ddb9989159ff32928f3379db19cfee4a7" +checksum = "a33fde7ff52002bd1b8935a71ef0823472e19bb3a03c76862072467eb62c73eb" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "fallible-iterator 0.2.0", "fallible-streaming-iterator", "hashlink", @@ -3224,7 +3242,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15a90128c708356af8f7d767c9ac2946692c9112b4f74f07b99a01a60680e413" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "cc", "fallible-iterator 0.3.0", "indexmap 2.9.0", @@ -3238,9 +3256,9 @@ dependencies = [ [[package]] name = "libsql-sys" -version = "0.9.6" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "506f309248a5ddca722b5337b9f6e0e1dbe35d829b8016f0bd409d8792d3b04d" +checksum = "62d1e07a691696cb18c2faba98313a194f0804aa6a1ce8aa9919b7ecd290d458" dependencies = [ "bytes 1.10.1", "libsql-ffi", @@ -3252,9 +3270,9 @@ dependencies = [ [[package]] name = "libsql_replication" -version = "0.9.6" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc11901506831b1f0574a69c5f22a0e466feedeb6fcc26868a424992f8d8e44b" +checksum = "22587cf8791c63fac33f0ee19f225e4ff7922a2ee59dd97fa183869b9a57b32f" dependencies = [ "aes", "async-stream", @@ -3267,7 +3285,7 @@ dependencies = [ "prost", "serde", "thiserror 1.0.69", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-stream", "tokio-util", "tonic", @@ -3306,9 +3324,9 @@ checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "lock_api" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" dependencies = [ "autocfg", "scopeguard", @@ -3344,9 +3362,9 @@ checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" [[package]] name = "mach2" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" +checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" dependencies = [ "libc", ] @@ -3412,9 +3430,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.4" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "mime" @@ -3440,34 +3458,23 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", ] [[package]] name = "mio" -version = "0.8.11" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", "log", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.48.0", -] - -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.59.0", ] [[package]] @@ -3485,7 +3492,7 @@ name = "mock-net" version = "0.0.0" dependencies = [ "loom", - "tokio 1.45.0", + "tokio 1.45.1", ] [[package]] @@ -3513,7 +3520,7 @@ dependencies = [ "pin-project 1.1.10", "rand 0.8.5", "thiserror 1.0.69", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-util", "tracing", ] @@ -3596,7 +3603,7 @@ dependencies = [ "futures", "libc", "log", - "tokio 1.45.0", + "tokio 1.45.1", ] [[package]] @@ -3628,8 +3635,8 @@ dependencies = [ "parking_lot", "rtnetlink", "socket2", - "thiserror 1.0.69", - "tokio 1.45.0", + "thiserror 2.0.12", + "tokio 1.45.1", "tracing", "tracing-subscriber", "typed-builder", @@ -3642,10 +3649,10 @@ dependencies = [ "anyhow", "crossbeam", "parking_lot", - "polling 3.7.4", + "polling 3.8.0", "socket2", - "thiserror 1.0.69", - "tokio 1.45.0", + "thiserror 2.0.12", + "tokio 1.45.1", "tracing", "tracing-cov-mark", "tracing-subscriber", @@ -3680,7 +3687,7 @@ dependencies = [ "serde", "serde_json", "thiserror 1.0.69", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-retry", "tokio-util", "tracing", @@ -3693,7 +3700,7 @@ version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "cfg-if", "libc", ] @@ -3704,7 +3711,7 @@ version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "cfg-if", "cfg_aliases", "libc", @@ -3722,47 +3729,54 @@ dependencies = [ [[package]] name = "nonempty" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "303e8749c804ccd6ca3b428de7fe0d86cb86bc7606bc15291f100fd487960bb8" +checksum = "549e471b99ccaf2f89101bec68f4d244457d5a95a9c3d0672e9564124397741d" [[package]] name = "notify" -version = "6.1.1" +version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" +checksum = "2fee8403b3d66ac7b26aee6e40a897d85dc5ce26f44da36b8b73e987cc52e943" dependencies = [ - "bitflags 2.9.0", - "crossbeam-channel", + "bitflags 2.9.1", "filetime", "fsevent-sys", "inotify", "kqueue", "libc", "log", - "mio 0.8.11", + "mio", + "notify-types", "walkdir", - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] name = "notify-debouncer-mini" -version = "0.4.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d40b221972a1fc5ef4d858a2f671fb34c75983eb385463dff3780eeff6a9d43" +checksum = "a689eb4262184d9a1727f9087cd03883ea716682ab03ed24efec57d7716dccb8" dependencies = [ - "crossbeam-channel", "log", "notify", + "notify-types", + "tempfile", ] +[[package]] +name = "notify-types" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d" + [[package]] name = "now-proto-pdu" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "063dca685ea8efa62d1a3566332b08be0198922f1d8aced1ead413c9f02fd89e" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "ironrdp-core", "ironrdp-error 0.1.2", ] @@ -3828,7 +3842,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -3863,11 +3877,11 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" dependencies = [ - "hermit-abi 0.3.9", + "hermit-abi", "libc", ] @@ -3880,6 +3894,25 @@ dependencies = [ "libc", ] +[[package]] +name = "objc2-core-foundation" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166" +dependencies = [ + "bitflags 2.9.1", +] + +[[package]] +name = "objc2-io-kit" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71c1c64d6120e51cd86033f67176b1cb66780c2efe34dec55176f77befd93c0a" +dependencies = [ + "libc", + "objc2-core-foundation", +] + [[package]] name = "object" version = "0.36.7" @@ -3912,11 +3945,11 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.72" +version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" +checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "cfg-if", "foreign-types", "libc", @@ -3933,7 +3966,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -3944,9 +3977,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.108" +version = "0.9.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e145e1651e858e820e4860f7b9c5e169bc1d8ce1c86043be79fa7b7634821847" +checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" dependencies = [ "cc", "libc", @@ -4000,9 +4033,9 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" dependencies = [ "lock_api", "parking_lot_core", @@ -4010,9 +4043,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.10" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", @@ -4130,9 +4163,9 @@ dependencies = [ [[package]] name = "picky" -version = "7.0.0-rc.13" +version = "7.0.0-rc.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ff00229e235526557077232ea50a8f619bbba9f3d37c7f63d1d41502546bec" +checksum = "83be360ca0cc8659abfbda932098e606fe52fa129508b92f0ce2998c00679170" dependencies = [ "aes", "aes-gcm", @@ -4153,7 +4186,7 @@ dependencies = [ "pbkdf2", "picky-asn1 0.10.1", "picky-asn1-der 0.5.2", - "picky-asn1-x509 0.14.3", + "picky-asn1-x509 0.14.4", "rand 0.8.5", "rand_core 0.6.4", "rc2", @@ -4232,9 +4265,9 @@ dependencies = [ [[package]] name = "picky-asn1-x509" -version = "0.14.3" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "511c46b93e7f08571a375882879d3a468dfe8793d73249907b2e3332950cb33e" +checksum = "49f974c1b3348705c23887c4f3b90947b9f23566db8b032e48af59c91f888f6f" dependencies = [ "base64 0.22.1", "num-bigint-dig", @@ -4273,9 +4306,9 @@ dependencies = [ [[package]] name = "picky-krb" -version = "0.9.4" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322b38c31330193b1d428df5b88f1b0d3d9e91548d302844c4f221dd839b1a7d" +checksum = "dd24e82ec97008ec01a89a40ba4eeacf09c573da78915674e7127bf33bced64d" dependencies = [ "aes", "byteorder", @@ -4288,7 +4321,32 @@ dependencies = [ "pbkdf2", "picky-asn1 0.10.1", "picky-asn1-der 0.5.2", - "picky-asn1-x509 0.14.3", + "picky-asn1-x509 0.14.4", + "rand 0.8.5", + "serde", + "sha1", + "thiserror 1.0.69", + "uuid", +] + +[[package]] +name = "picky-krb" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45ffe5f2122cdda5e9059ab837a65ba1b77729db43fc1500f2fce6b27070eab" +dependencies = [ + "aes", + "byteorder", + "cbc", + "crypto", + "des", + "hmac", + "num-bigint-dig", + "oid", + "pbkdf2", + "picky-asn1 0.10.1", + "picky-asn1-der 0.5.2", + "picky-asn1-x509 0.14.4", "rand 0.8.5", "serde", "sha1", @@ -4333,7 +4391,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -4399,15 +4457,15 @@ dependencies = [ [[package]] name = "polling" -version = "3.7.4" +version = "3.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" +checksum = "b53a684391ad002dd6a596ceb6c74fd004fdce75f4be2e3f615068abbea5fd50" dependencies = [ "cfg-if", "concurrent-queue", - "hermit-abi 0.4.0", + "hermit-abi", "pin-project-lite 0.2.16", - "rustix 0.38.44", + "rustix 1.0.7", "tracing", "windows-sys 0.59.0", ] @@ -4484,17 +4542,17 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "zerocopy 0.8.25", + "zerocopy 0.8.26", ] [[package]] name = "prettyplease" -version = "0.2.32" +version = "0.2.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6" +checksum = "061c1221631e079b26479d25bbf2275bfe5917ae8419cd7e34f13bfc2aa7539a" dependencies = [ "proc-macro2 1.0.95", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -4559,17 +4617,17 @@ dependencies = [ [[package]] name = "proptest" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" +checksum = "6fcdab19deb5195a31cf7726a210015ff1496ba1464fd42cb4f537b8b01b471f" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.9.0", + "bitflags 2.9.1", "lazy_static", "num-traits", - "rand 0.8.5", - "rand_chacha 0.3.1", + "rand 0.9.1", + "rand_chacha 0.9.0", "rand_xorshift", "regex-syntax 0.8.5", "rusty-fork", @@ -4597,7 +4655,7 @@ dependencies = [ "itertools", "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -4617,7 +4675,7 @@ dependencies = [ "proptest", "proxy-generators", "proxy-types", - "tokio 1.45.0", + "tokio 1.45.1", ] [[package]] @@ -4627,7 +4685,7 @@ dependencies = [ "proxy-http", "proxy-socks", "proxy-types", - "tokio 1.45.0", + "tokio 1.45.1", ] [[package]] @@ -4637,7 +4695,7 @@ dependencies = [ "proptest", "proxy-generators", "proxy-types", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-test", ] @@ -4647,7 +4705,7 @@ version = "0.0.0" dependencies = [ "proxy-http", "proxy-socks", - "tokio 1.45.0", + "tokio 1.45.1", ] [[package]] @@ -4685,10 +4743,10 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash 2.1.1", - "rustls 0.23.27", + "rustls 0.23.28", "socket2", "thiserror 2.0.12", - "tokio 1.45.0", + "tokio 1.45.1", "tracing", "web-time", ] @@ -4705,7 +4763,7 @@ dependencies = [ "rand 0.9.1", "ring 0.17.14", "rustc-hash 2.1.1", - "rustls 0.23.27", + "rustls 0.23.28", "rustls-pki-types", "slab", "thiserror 2.0.12", @@ -4716,9 +4774,9 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.12" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee4e529991f949c5e25755532370b8af5d114acae52326361d68d47af64aa842" +checksum = "fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970" dependencies = [ "cfg_aliases", "libc", @@ -4748,9 +4806,9 @@ dependencies = [ [[package]] name = "r-efi" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "radium" @@ -4819,31 +4877,11 @@ dependencies = [ [[package]] name = "rand_xorshift" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" -dependencies = [ - "rand_core 0.6.4", -] - -[[package]] -name = "rayon" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" dependencies = [ - "crossbeam-deque", - "crossbeam-utils", + "rand_core 0.9.3", ] [[package]] @@ -4857,11 +4895,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.12" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" +checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] [[package]] @@ -4939,9 +4977,9 @@ checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" [[package]] name = "reqwest" -version = "0.12.15" +version = "0.12.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" +checksum = "eabf4c97d9130e2bf606614eb937e86edac8292eaa6f422f995d7e8de1eb1813" dependencies = [ "base64 0.22.1", "bytes 1.10.1", @@ -4953,33 +4991,29 @@ dependencies = [ "hyper 1.6.0", "hyper-rustls", "hyper-util", - "ipnet", "js-sys", "log", - "mime", - "once_cell", "percent-encoding", "pin-project-lite 0.2.16", "quinn", - "rustls 0.23.27", + "rustls 0.23.28", "rustls-native-certs", - "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper 1.0.2", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-rustls", "tokio-util", "tower 0.5.2", + "tower-http 0.6.6", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "wasm-streams", "web-sys", - "windows-registry 0.4.0", ] [[package]] @@ -5060,9 +5094,9 @@ dependencies = [ [[package]] name = "rstest" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03e905296805ab93e13c1ec3a03f4b6c4f35e9498a3d5fa96dc626d22c03cd89" +checksum = "6fc39292f8613e913f7df8fa892b8944ceb47c247b78e1b1ae2f09e019be789d" dependencies = [ "futures-timer", "futures-util", @@ -5072,9 +5106,9 @@ dependencies = [ [[package]] name = "rstest_macros" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef0053bbffce09062bee4bcc499b0fbe7a57b879f1efe088d6d8d4c7adcdef9b" +checksum = "1f168d99749d307be9de54d23fd226628d99768225ef08f6ffb52e0182a27746" dependencies = [ "cfg-if", "glob", @@ -5084,7 +5118,7 @@ dependencies = [ "regex", "relative-path", "rustc_version", - "syn 2.0.101", + "syn 2.0.104", "unicode-ident", ] @@ -5103,14 +5137,14 @@ dependencies = [ "netlink-sys", "nix 0.27.1", "thiserror 1.0.69", - "tokio 1.45.0", + "tokio 1.45.1", ] [[package]] name = "rustc-demangle" -version = "0.1.24" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" [[package]] name = "rustc-hash" @@ -5148,7 +5182,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "errno", "libc", "linux-raw-sys 0.4.15", @@ -5161,7 +5195,7 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "errno", "libc", "linux-raw-sys 0.9.4", @@ -5182,9 +5216,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.27" +version = "0.23.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "730944ca083c1c233a75c09f199e973ca499344a2b7ba9e755c457e86fb4a321" +checksum = "7160e3e10bf4535308537f3c4e1641468cd0e485175d6163087c0393c7d46643" dependencies = [ "aws-lc-rs", "log", @@ -5202,7 +5236,7 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c742cb7d8e43daae2dd9ca4b1da442b4500a461ce1c84249e6ac99b4bc12562e" dependencies = [ - "rustls 0.23.27", + "rustls 0.23.28", "sha2", "windows-sys 0.59.0", ] @@ -5261,9 +5295,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" [[package]] name = "rusty-fork" @@ -5331,7 +5365,7 @@ dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", "serde_derive_internals", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -5382,7 +5416,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -5395,8 +5429,8 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" dependencies = [ - "bitflags 2.9.0", - "core-foundation 0.10.0", + "bitflags 2.9.1", + "core-foundation 0.10.1", "core-foundation-sys", "libc", "security-framework-sys", @@ -5454,7 +5488,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -5465,7 +5499,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -5518,9 +5552,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" dependencies = [ "serde", ] @@ -5624,12 +5658,9 @@ checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "slab" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" [[package]] name = "slice-pool2" @@ -5648,24 +5679,25 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.15.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "smol_str" -version = "0.2.2" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead" +checksum = "9676b89cd56310a87b93dec47b11af744f34d5fc9f367b829474eec0a891350d" dependencies = [ + "borsh", "serde", ] [[package]] name = "socket2" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" dependencies = [ "libc", "windows-sys 0.52.0", @@ -5704,7 +5736,7 @@ checksum = "18d31fab47d9290be28a8d027c8428756826f1d4fe1e5ba0f51d24f52c568e21" dependencies = [ "async-dnssd", "async-recursion", - "bitflags 2.9.0", + "bitflags 2.9.1", "byteorder", "cfg-if", "crypto-mac", @@ -5728,7 +5760,7 @@ dependencies = [ "sha1", "sha2", "time", - "tokio 1.45.0", + "tokio 1.45.1", "tracing", "url", "uuid", @@ -5741,13 +5773,13 @@ dependencies = [ [[package]] name = "sspi" -version = "0.15.7" +version = "0.15.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "334391dc5b51751fd80c960b8a40dc8862b903ce41d3b848f154b72ac47ed119" +checksum = "52de87ee3f7beae3d311fa9a8a866ef71f53ac59807ce4d15d1b1d39f0aedb56" dependencies = [ "async-dnssd", "async-recursion", - "bitflags 2.9.0", + "bitflags 2.9.1", "byteorder", "cfg-if", "crypto-mac", @@ -5763,23 +5795,23 @@ dependencies = [ "picky", "picky-asn1 0.10.1", "picky-asn1-der 0.5.2", - "picky-asn1-x509 0.14.3", - "picky-krb 0.9.4", + "picky-asn1-x509 0.14.4", + "picky-krb 0.10.0", "rand 0.8.5", "rsa", - "rustls 0.23.27", + "rustls 0.23.28", "serde", "serde_derive", "sha1", "sha2", "time", - "tokio 1.45.0", + "tokio 1.45.1", "tracing", "url", "uuid", - "windows 0.61.1", - "windows-sys 0.59.0", - "winreg 0.55.0", + "windows 0.61.3", + "windows-registry", + "windows-sys 0.60.2", "zeroize", ] @@ -5836,9 +5868,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.101" +version = "2.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" +checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", @@ -5868,22 +5900,21 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] name = "sysinfo" -version = "0.30.13" +version = "0.35.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3" +checksum = "3c3ffa3e4ff2b324a57f7aeb3c349656c7b127c3c189520251a648102a92496e" dependencies = [ - "cfg-if", - "core-foundation-sys", "libc", + "memchr", "ntapi", - "once_cell", - "rayon", - "windows 0.52.0", + "objc2-core-foundation", + "objc2-io-kit", + "windows 0.61.3", ] [[package]] @@ -5920,7 +5951,7 @@ name = "terminal-streamer" version = "0.1.0" dependencies = [ "anyhow", - "tokio 1.45.0", + "tokio 1.45.1", "tracing", ] @@ -5932,7 +5963,7 @@ dependencies = [ "futures-util", "portpicker", "proptest", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-tungstenite", "transport", ] @@ -5963,7 +5994,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -5974,17 +6005,16 @@ checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] name = "thread_local" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ "cfg-if", - "once_cell", ] [[package]] @@ -6078,7 +6108,7 @@ checksum = "2d2e76690929402faae40aebdda620a2c0e25dd6d3b9afe48867dfd95991f4bd" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -6095,14 +6125,14 @@ dependencies = [ [[package]] name = "tokio" -version = "1.45.0" +version = "1.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2513ca694ef9ede0fb23fe71a4ee4107cb102b9dc1930f6d0fd77aae068ae165" +checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" dependencies = [ "backtrace", "bytes 1.10.1", "libc", - "mio 1.0.3", + "mio", "parking_lot", "pin-project-lite 0.2.16", "signal-hook-registry", @@ -6119,7 +6149,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" dependencies = [ "pin-project-lite 0.2.16", - "tokio 1.45.0", + "tokio 1.45.1", ] [[package]] @@ -6130,7 +6160,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -6140,7 +6170,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" dependencies = [ "native-tls", - "tokio 1.45.0", + "tokio 1.45.1", ] [[package]] @@ -6164,7 +6194,7 @@ dependencies = [ "postgres-types", "rand 0.9.1", "socket2", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-util", "whoami", ] @@ -6177,7 +6207,7 @@ checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" dependencies = [ "pin-project 1.1.10", "rand 0.8.5", - "tokio 1.45.0", + "tokio 1.45.1", ] [[package]] @@ -6186,8 +6216,8 @@ version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ - "rustls 0.23.27", - "tokio 1.45.0", + "rustls 0.23.28", + "tokio 1.45.1", ] [[package]] @@ -6198,7 +6228,7 @@ checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ "futures-core", "pin-project-lite 0.2.16", - "tokio 1.45.0", + "tokio 1.45.1", ] [[package]] @@ -6210,7 +6240,7 @@ dependencies = [ "async-stream", "bytes 1.10.1", "futures-core", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-stream", ] @@ -6223,10 +6253,10 @@ dependencies = [ "futures-util", "log", "native-tls", - "rustls 0.23.27", + "rustls 0.23.28", "rustls-native-certs", "rustls-pki-types", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-native-tls", "tokio-rustls", "tungstenite", @@ -6243,14 +6273,14 @@ dependencies = [ "futures-io", "futures-sink", "pin-project-lite 0.2.16", - "tokio 1.45.0", + "tokio 1.45.1", ] [[package]] name = "toml" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", "serde_spanned", @@ -6260,18 +6290,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.9" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.22.26" +version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ "indexmap 2.9.0", "serde", @@ -6283,9 +6313,9 @@ dependencies = [ [[package]] name = "toml_write" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" [[package]] name = "tonic" @@ -6306,7 +6336,7 @@ dependencies = [ "percent-encoding", "pin-project 1.1.10", "prost", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-stream", "tower 0.4.13", "tower-layer", @@ -6365,7 +6395,7 @@ dependencies = [ "pin-project-lite 0.2.16", "rand 0.8.5", "slab", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-util", "tower-layer", "tower-service", @@ -6382,7 +6412,7 @@ dependencies = [ "futures-util", "pin-project-lite 0.2.16", "sync_wrapper 1.0.2", - "tokio 1.45.0", + "tokio 1.45.1", "tower-layer", "tower-service", "tracing", @@ -6419,7 +6449,7 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "bytes 1.10.1", "futures-core", "futures-util", @@ -6439,7 +6469,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "bytes 1.10.1", "futures-util", "http 1.3.1", @@ -6451,13 +6481,31 @@ dependencies = [ "mime_guess", "percent-encoding", "pin-project-lite 0.2.16", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-util", "tower-layer", "tower-service", "tracing", ] +[[package]] +name = "tower-http" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +dependencies = [ + "bitflags 2.9.1", + "bytes 1.10.1", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "iri-string", + "pin-project-lite 0.2.16", + "tower 0.5.2", + "tower-layer", + "tower-service", +] + [[package]] name = "tower-layer" version = "0.3.3" @@ -6572,20 +6620,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.28" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] name = "tracing-core" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", "valuable", @@ -6642,7 +6690,7 @@ dependencies = [ "pin-project-lite 0.2.16", "proptest", "test-utils", - "tokio 1.45.0", + "tokio 1.45.1", "tracing", ] @@ -6665,7 +6713,7 @@ dependencies = [ "log", "native-tls", "rand 0.9.1", - "rustls 0.23.27", + "rustls 0.23.28", "rustls-pki-types", "sha1", "thiserror 2.0.12", @@ -6674,22 +6722,22 @@ dependencies = [ [[package]] name = "typed-builder" -version = "0.19.1" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06fbd5b8de54c5f7c91f6fe4cebb949be2125d7758e630bb58b1d831dbce600" +checksum = "ce63bcaf7e9806c206f7d7b9c1f38e0dce8bb165a80af0898161058b19248534" dependencies = [ "typed-builder-macro", ] [[package]] name = "typed-builder-macro" -version = "0.19.1" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9534daa9fd3ed0bd911d462a37f172228077e7abf18c18a5f67199d959205f8" +checksum = "60d8d828da2a3d759d3519cdf29a5bac49c77d039ad36d0782edadbf9cd5415b" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -6837,15 +6885,15 @@ dependencies = [ "proc-macro-error", "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", "uuid", ] [[package]] name = "uuid" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" +checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" dependencies = [ "getrandom 0.3.3", "js-sys", @@ -6883,7 +6931,7 @@ dependencies = [ "futures-util", "num_cpus", "thiserror 2.0.12", - "tokio 1.45.0", + "tokio 1.45.1", "tokio-tungstenite", "tokio-util", "tracing", @@ -6942,9 +6990,9 @@ dependencies = [ [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" @@ -6983,7 +7031,7 @@ dependencies = [ "log", "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", "wasm-bindgen-shared", ] @@ -7018,7 +7066,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -7126,11 +7174,11 @@ dependencies = [ "anyhow", "base16ct", "rstest", - "thiserror 1.0.69", + "thiserror 2.0.12", "tracing", "uuid", "widestring 1.2.0", - "windows 0.58.0", + "windows 0.61.3", ] [[package]] @@ -7176,32 +7224,12 @@ dependencies = [ [[package]] name = "windows" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" -dependencies = [ - "windows-core 0.52.0", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" -dependencies = [ - "windows-core 0.58.0", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows" -version = "0.61.1" +version = "0.61.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5ee8f3d025738cb02bad7868bbb5f8a6327501e870bf51f1b455b0a2454a419" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" dependencies = [ "windows-collections", - "windows-core 0.61.0", + "windows-core 0.61.2", "windows-future", "windows-link", "windows-numerics", @@ -7213,7 +7241,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" dependencies = [ - "windows-core 0.61.0", + "windows-core 0.61.2", ] [[package]] @@ -7227,58 +7255,26 @@ dependencies = [ [[package]] name = "windows-core" -version = "0.52.0" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-core" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" -dependencies = [ - "windows-implement 0.58.0", - "windows-interface 0.58.0", - "windows-result 0.2.0", - "windows-strings 0.1.0", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-core" -version = "0.61.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980" -dependencies = [ - "windows-implement 0.60.0", - "windows-interface 0.59.1", + "windows-implement", + "windows-interface", "windows-link", - "windows-result 0.3.2", - "windows-strings 0.4.0", + "windows-result", + "windows-strings", ] [[package]] name = "windows-future" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a1d6bbefcb7b60acd19828e1bc965da6fcf18a7e39490c5f8be71e54a19ba32" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ - "windows-core 0.61.0", + "windows-core 0.61.2", "windows-link", -] - -[[package]] -name = "windows-implement" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" -dependencies = [ - "proc-macro2 1.0.95", - "quote 1.0.40", - "syn 2.0.101", + "windows-threading", ] [[package]] @@ -7289,18 +7285,7 @@ checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", -] - -[[package]] -name = "windows-interface" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" -dependencies = [ - "proc-macro2 1.0.95", - "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -7311,14 +7296,14 @@ checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] name = "windows-link" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] name = "windows-numerics" @@ -7326,94 +7311,35 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" dependencies = [ - "windows-core 0.61.0", + "windows-core 0.61.2", "windows-link", ] [[package]] name = "windows-registry" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" -dependencies = [ - "windows-result 0.2.0", - "windows-strings 0.1.0", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-registry" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bafa604f2104cf5ae2cc2db1dee84b7e6a5d11b05f737b60def0ffdc398cbc0a" -dependencies = [ - "windows-result 0.2.0", - "windows-strings 0.2.0", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-registry" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" -dependencies = [ - "windows-result 0.3.2", - "windows-strings 0.3.1", - "windows-targets 0.53.0", -] - -[[package]] -name = "windows-result" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-result" -version = "0.3.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" +checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" dependencies = [ "windows-link", + "windows-result", + "windows-strings", ] [[package]] -name = "windows-strings" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" -dependencies = [ - "windows-result 0.2.0", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-strings" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978d65aedf914c664c510d9de43c8fd85ca745eaff1ed53edf409b479e441663" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-strings" -version = "0.3.1" +name = "windows-result" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ "windows-link", ] [[package]] name = "windows-strings" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ "windows-link", ] @@ -7454,6 +7380,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.2", +] + [[package]] name = "windows-targets" version = "0.42.2" @@ -7502,9 +7437,9 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.0" +version = "0.53.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" +checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" dependencies = [ "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", @@ -7516,6 +7451,15 @@ dependencies = [ "windows_x86_64_msvc 0.53.0", ] +[[package]] +name = "windows-threading" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" +dependencies = [ + "windows-link", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -7698,9 +7642,9 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" +checksum = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd" dependencies = [ "memchr", ] @@ -7734,16 +7678,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "winreg" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - [[package]] name = "winreg" version = "0.55.0" @@ -7760,7 +7694,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] [[package]] @@ -7831,7 +7765,7 @@ checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", "synstructure", ] @@ -7847,11 +7781,11 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" +checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" dependencies = [ - "zerocopy-derive 0.8.25", + "zerocopy-derive 0.8.26", ] [[package]] @@ -7862,18 +7796,18 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] name = "zerocopy-derive" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" +checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -7893,7 +7827,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", "synstructure", ] @@ -7914,7 +7848,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -7947,5 +7881,5 @@ checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.101", + "syn 2.0.104", ] diff --git a/crates/devolutions-agent-shared/Cargo.toml b/crates/devolutions-agent-shared/Cargo.toml index 894eef8f9..4c0ca7340 100644 --- a/crates/devolutions-agent-shared/Cargo.toml +++ b/crates/devolutions-agent-shared/Cargo.toml @@ -13,12 +13,12 @@ workspace = true camino = "1.1" cfg-if = "1" serde = { version = "1", features = ["derive"] } -thiserror = "1" +thiserror = "2" [target.'cfg(windows)'.dependencies] -windows-registry = "0.3" +windows-registry = "0.5" # Required for `windows-registry` error type. (`Error` is not reexported from `windows-registry`). -windows-result = "0.2" +windows-result = "0.3" uuid = "1" [dev-dependencies] diff --git a/crates/devolutions-agent-shared/src/date_version.rs b/crates/devolutions-agent-shared/src/date_version.rs index 94789a888..4d7995d01 100644 --- a/crates/devolutions-agent-shared/src/date_version.rs +++ b/crates/devolutions-agent-shared/src/date_version.rs @@ -1,7 +1,8 @@ use std::fmt; use std::str::FromStr; -use serde::{Deserialize, Serialize}; +use serde::de::Deserialize; +use serde::ser::Serialize; use thiserror::Error; #[derive(Debug, Error)] diff --git a/crates/devolutions-agent-shared/src/lib.rs b/crates/devolutions-agent-shared/src/lib.rs index a093fafcc..3b826b394 100644 --- a/crates/devolutions-agent-shared/src/lib.rs +++ b/crates/devolutions-agent-shared/src/lib.rs @@ -1,8 +1,12 @@ -mod date_version; -mod update_json; +#[macro_use] +extern crate serde; + #[cfg(windows)] pub mod windows; +mod date_version; +mod update_json; + #[cfg(not(windows))] use std::convert::Infallible; use std::env; diff --git a/crates/devolutions-agent-shared/src/update_json.rs b/crates/devolutions-agent-shared/src/update_json.rs index 9a3444b96..59f5525c7 100644 --- a/crates/devolutions-agent-shared/src/update_json.rs +++ b/crates/devolutions-agent-shared/src/update_json.rs @@ -1,5 +1,4 @@ use crate::DateVersion; -use serde::{Deserialize, Serialize}; use std::fmt; /// Example JSON structure: diff --git a/crates/devolutions-gateway-generators/Cargo.toml b/crates/devolutions-gateway-generators/Cargo.toml index ed3a1729f..864ae16d1 100644 --- a/crates/devolutions-gateway-generators/Cargo.toml +++ b/crates/devolutions-gateway-generators/Cargo.toml @@ -7,6 +7,6 @@ publish = false [dependencies] devolutions-gateway = { path = "../../devolutions-gateway" } -proptest = "1.5" -uuid = "1.10" +proptest = "1.7" +uuid = "1.17" serde = { version = "1", features = ["derive"] } diff --git a/crates/devolutions-gateway-task/Cargo.toml b/crates/devolutions-gateway-task/Cargo.toml index 8a4a9b25e..cc5b195d8 100644 --- a/crates/devolutions-gateway-task/Cargo.toml +++ b/crates/devolutions-gateway-task/Cargo.toml @@ -13,5 +13,5 @@ default = [] named_tasks = ["tokio/tracing"] [dependencies] -tokio = { version = "1.44", features = ["sync", "rt", "tracing"] } +tokio = { version = "1.45", features = ["sync", "rt", "tracing"] } async-trait = "0.1" diff --git a/crates/devolutions-log/Cargo.toml b/crates/devolutions-log/Cargo.toml index 2b57352cc..790cd07eb 100644 --- a/crates/devolutions-log/Cargo.toml +++ b/crates/devolutions-log/Cargo.toml @@ -23,7 +23,7 @@ camino = "1.1" # Async async-trait = "0.1" -tokio = { version = "1.44", features = ["signal", "net", "io-util", "time", "rt", "rt-multi-thread", "sync", "macros", "parking_lot", "fs"] } +tokio = { version = "1.45", features = ["signal", "net", "io-util", "time", "rt", "rt-multi-thread", "sync", "macros", "parking_lot", "fs"] } # Logging tracing = "0.1" diff --git a/crates/devolutions-pedm-shared/Cargo.toml b/crates/devolutions-pedm-shared/Cargo.toml index 269f00b46..b05f0ceac 100644 --- a/crates/devolutions-pedm-shared/Cargo.toml +++ b/crates/devolutions-pedm-shared/Cargo.toml @@ -13,11 +13,11 @@ serde = { version = "1.0", features = ["derive"], optional = true } win-api-wrappers = { path = "../win-api-wrappers", optional = true } hyper = { version = "~0.14", features = ["client", "http1"], optional = true } # old version required for OpenAPI generator serde_json = { version = "1.0", optional = true } -tokio = { version = "1.44", features = ["net", "sync"], optional = true } +tokio = { version = "1.45", features = ["net", "sync"], optional = true } glob = { version = "0.3", optional = true } regex = { version = "1.11", optional = true } schemars = { version = "0.8", features = ["uuid1"], optional = true } -windows-registry = { version = "0.2", optional = true } +windows-registry = { version = "0.5", optional = true } devolutions-pedm-client-http = { path = "./devolutions-pedm-client-http", optional = true } tower = { version = "0.3", optional = true } # old version required for OpenAPI generator pin-project = { version = "1.1", optional = true } diff --git a/crates/devolutions-pedm-shared/devolutions-pedm-client-http/Cargo.toml b/crates/devolutions-pedm-shared/devolutions-pedm-client-http/Cargo.toml index 0b6c38729..4674dfac1 100644 --- a/crates/devolutions-pedm-shared/devolutions-pedm-client-http/Cargo.toml +++ b/crates/devolutions-pedm-shared/devolutions-pedm-client-http/Cargo.toml @@ -11,7 +11,7 @@ edition = "2021" serde = { version = "^1.0", features = ["derive"] } serde_json = "^1.0" url = "^2.5" -uuid = { version = "^1.8", features = ["serde", "v4"] } +uuid = { version = "^1.17", features = ["serde", "v4"] } hyper = { version = "~0.14", features = ["full"] } hyper-tls = "~0.5" http = "~0.2" diff --git a/crates/devolutions-pedm-shell-ext/Cargo.toml b/crates/devolutions-pedm-shell-ext/Cargo.toml index a4df6f2ac..e24d6f4e6 100644 --- a/crates/devolutions-pedm-shell-ext/Cargo.toml +++ b/crates/devolutions-pedm-shell-ext/Cargo.toml @@ -11,8 +11,8 @@ publish = false crate-type = ["cdylib"] [dependencies] -tokio = { version = "1.44", features = ["sync"] } -windows-core = "0.58" # necessary because of macro resolving `windows::core`. Must match `win-api-wrappers` version. +tokio = { version = "1.45", features = ["sync"] } +windows-core = "0.61" # necessary because of macro resolving `windows::core`. Must match `win-api-wrappers` version. devolutions-pedm-shared = { path = "../devolutions-pedm-shared", features = ["pedm_client", "desktop"] } win-api-wrappers = { path = "../win-api-wrappers" } parking_lot = "0.12" @@ -22,4 +22,4 @@ devolutions-pedm-shared = { path = "../devolutions-pedm-shared", features = ["bu fs_extra = "1.3" [target.'cfg(windows)'.build-dependencies] -embed-resource = "2.4" +embed-resource = "3.0" diff --git a/crates/devolutions-pedm-shell-ext/build.rs b/crates/devolutions-pedm-shell-ext/build.rs index 2805a240e..45ee44791 100644 --- a/crates/devolutions-pedm-shell-ext/build.rs +++ b/crates/devolutions-pedm-shell-ext/build.rs @@ -91,8 +91,12 @@ fn main() -> Result<(), Box> { let version_rc_data = generate_version_rc(); fs::write(&version_rc_file, version_rc_data).unwrap(); - embed_resource::compile(&version_rc_file, embed_resource::NONE); - embed_resource::compile("resources.rc", embed_resource::NONE); + embed_resource::compile(&version_rc_file, embed_resource::NONE) + .manifest_required() + .unwrap(); + embed_resource::compile("resources.rc", embed_resource::NONE) + .manifest_required() + .unwrap(); Ok(()) } diff --git a/crates/devolutions-pedm-shell-ext/src/lib_win.rs b/crates/devolutions-pedm-shell-ext/src/lib_win.rs index 9650719dc..367f6d6d1 100644 --- a/crates/devolutions-pedm-shell-ext/src/lib_win.rs +++ b/crates/devolutions-pedm-shell-ext/src/lib_win.rs @@ -15,11 +15,11 @@ use tokio::sync::mpsc::{self, Receiver, Sender}; use win_api_wrappers::fs::get_system32_path; use win_api_wrappers::process::{Module, Process}; use win_api_wrappers::raw::core::{ - implement, interface, Error, IUnknown, IUnknown_Vtbl, Interface, Result, GUID, HRESULT, PWSTR, + implement, interface, Error, IUnknown, IUnknown_Vtbl, Interface, Result, BOOL, GUID, HRESULT, PWSTR, }; use win_api_wrappers::raw::Win32::Foundation::{ - BOOL, CLASS_E_CLASSNOTAVAILABLE, CLASS_E_NOAGGREGATION, ERROR_CANCELLED, E_FAIL, E_INVALIDARG, E_NOTIMPL, - E_POINTER, E_UNEXPECTED, HINSTANCE, + CLASS_E_CLASSNOTAVAILABLE, CLASS_E_NOAGGREGATION, ERROR_CANCELLED, E_FAIL, E_INVALIDARG, E_NOTIMPL, E_POINTER, + E_UNEXPECTED, HINSTANCE, }; use win_api_wrappers::raw::Win32::Security::TOKEN_QUERY; use win_api_wrappers::raw::Win32::System::Com::{CoTaskMemFree, IBindCtx, IClassFactory, IClassFactory_Impl}; @@ -74,7 +74,7 @@ impl ElevationContextMenuCommand { impl IElevationContextMenuCommand_Impl for ElevationContextMenuCommand_Impl {} impl IExplorerCommand_Impl for ElevationContextMenuCommand_Impl { - fn GetTitle(&self, _item_array: Option<&IShellItemArray>) -> Result { + fn GetTitle(&self, _item_array: windows_core::Ref<'_, IShellItemArray>) -> Result { // SAFETY: // `DLL_MODULE` is fully initialized and valid for the lifetime of the DLL in the process, // and is not mutated after inital initialization @@ -89,7 +89,7 @@ impl IExplorerCommand_Impl for ElevationContextMenuCommand_Impl { unsafe { SHStrDupW(title.as_pwstr()) } } - fn GetIcon(&self, _item_array: Option<&IShellItemArray>) -> Result { + fn GetIcon(&self, _item_array: windows_core::Ref<'_, IShellItemArray>) -> Result { let Ok(module) = Module::current() else { return Err(E_FAIL.into()); }; @@ -109,7 +109,7 @@ impl IExplorerCommand_Impl for ElevationContextMenuCommand_Impl { unsafe { SHStrDupW(icon_path.as_pwstr()) } } - fn GetToolTip(&self, _item_array: Option<&IShellItemArray>) -> Result { + fn GetToolTip(&self, _item_array: windows_core::Ref<'_, IShellItemArray>) -> Result { Err(E_NOTIMPL.into()) } @@ -117,11 +117,15 @@ impl IExplorerCommand_Impl for ElevationContextMenuCommand_Impl { Ok(self.guid) } - fn GetState(&self, _item_array: Option<&IShellItemArray>, _ok_to_be_slow: BOOL) -> Result { + fn GetState(&self, _item_array: windows_core::Ref<'_, IShellItemArray>, _ok_to_be_slow: BOOL) -> Result { Ok(ECS_ENABLED.0 as _) } - fn Invoke(&self, item_array: Option<&IShellItemArray>, _bind_ctx: Option<&IBindCtx>) -> Result<()> { + fn Invoke( + &self, + item_array: windows_core::Ref<'_, IShellItemArray>, + _bind_ctx: windows_core::Ref<'_, IBindCtx>, + ) -> Result<()> { // SAFETY: `item_array` is valid and `GetCount` has no preconditions. if item_array.is_none() || unsafe { item_array.unwrap().GetCount() }? < 1 { return Ok(()); @@ -167,9 +171,9 @@ impl IExplorerCommand_Impl for ElevationContextMenuCommand_Impl { } impl IObjectWithSite_Impl for ElevationContextMenuCommand_Impl { - fn SetSite(&self, site: Option<&IUnknown>) -> Result<()> { - if let Some(site) = site { - self.site.write().replace(site.clone()); + fn SetSite(&self, site: windows_core::Ref<'_, windows_core::IUnknown>) -> Result<()> { + if let Some(site) = site.cloned() { + self.site.write().replace(site); Ok(()) } else { Err(E_FAIL.into()) @@ -365,7 +369,12 @@ extern "system" fn DllMain(dll_module: HINSTANCE, call_reason: u32, _: *mut ()) struct ElevationContextMenuCommandFactory; impl IClassFactory_Impl for ElevationContextMenuCommandFactory_Impl { - fn CreateInstance(&self, outer: Option<&IUnknown>, iid: *const GUID, object: *mut *mut c_void) -> Result<()> { + fn CreateInstance( + &self, + outer: windows_core::Ref<'_, windows_core::IUnknown>, + iid: *const GUID, + object: *mut *mut c_void, + ) -> Result<()> { if object.is_null() { return Err(E_INVALIDARG.into()); } diff --git a/crates/devolutions-pedm/Cargo.toml b/crates/devolutions-pedm/Cargo.toml index d42a25911..47305a703 100644 --- a/crates/devolutions-pedm/Cargo.toml +++ b/crates/devolutions-pedm/Cargo.toml @@ -16,14 +16,14 @@ base16ct = { version = "0.2", features = ["std", "alloc"] } base64 = "0.22" chrono = { version = "0.4", features = ["serde"] } digest = "0.10" -hyper = { version = "1.3", features = ["server"] } +hyper = { version = "1.6", features = ["server"] } hyper-util = { version = "0.1", features = ["tokio"] } schemars = { version = "0.8", features = ["chrono"] } serde = "1.0" serde_json = "1.0" sha1 = "0.10" sha2 = "0.10" -tokio = { version = "1.44", features = ["net", "rt-multi-thread"] } +tokio = { version = "1.45", features = ["net", "rt-multi-thread"] } tower-service = "0.3" win-api-wrappers = { path = "../win-api-wrappers" } devolutions-pedm-shared = { path = "../devolutions-pedm-shared", features = ["policy"]} diff --git a/crates/devolutions-pedm/src/api/mod.rs b/crates/devolutions-pedm/src/api/mod.rs index b1f9eb4fe..2bafb4608 100644 --- a/crates/devolutions-pedm/src/api/mod.rs +++ b/crates/devolutions-pedm/src/api/mod.rs @@ -119,8 +119,8 @@ fn create_pipe(pipe_name: &str) -> anyhow::Result { HANDLE(pipe.as_raw_handle().cast()), SE_KERNEL_OBJECT, DACL_SECURITY_INFORMATION, - PSID::default(), - PSID::default(), + None, + None, Some(dacl.as_ptr().cast()), None, ) diff --git a/crates/jet-proto/Cargo.toml b/crates/jet-proto/Cargo.toml index 783c4fd84..1b2ed0140 100644 --- a/crates/jet-proto/Cargo.toml +++ b/crates/jet-proto/Cargo.toml @@ -11,9 +11,9 @@ workspace = true [dependencies] log = "0.4" byteorder = "1.5" -uuid = { version = "1.10", features = ["v4"] } -httparse = "1.9" -http = "1.1" +uuid = { version = "1.17", features = ["v4"] } +httparse = "1.10" +http = "1.3" [dev-dependencies] -hex-literal = "0.4" +hex-literal = "1.0" diff --git a/crates/jmux-generators/Cargo.toml b/crates/jmux-generators/Cargo.toml index 876ec003a..c8c71ec29 100644 --- a/crates/jmux-generators/Cargo.toml +++ b/crates/jmux-generators/Cargo.toml @@ -7,4 +7,4 @@ publish = false [dependencies] jmux-proto = { path = "../jmux-proto" } -proptest = "1.5" +proptest = "1.7" diff --git a/crates/jmux-proto/Cargo.toml b/crates/jmux-proto/Cargo.toml index 198a42aec..c37d4c173 100644 --- a/crates/jmux-proto/Cargo.toml +++ b/crates/jmux-proto/Cargo.toml @@ -9,9 +9,9 @@ publish = false workspace = true [dependencies] -bytes = "1.6" -smol_str = "0.2" +bytes = "1.10" +smol_str = "0.3" [dev-dependencies] -proptest = "1.5" +proptest = "1.7" jmux-generators = { path = "../jmux-generators" } diff --git a/crates/jmux-proxy/Cargo.toml b/crates/jmux-proxy/Cargo.toml index be72787c0..056d28ae7 100644 --- a/crates/jmux-proxy/Cargo.toml +++ b/crates/jmux-proxy/Cargo.toml @@ -15,7 +15,7 @@ workspace = true jmux-proto = { path = "../jmux-proto" } # async -tokio = { version = "1.44", features = ["net", "rt", "io-util", "macros"] } +tokio = { version = "1.45", features = ["net", "rt", "io-util", "macros"] } tokio-util = { version = "0.7", features = ["codec"] } futures-util = { version = "0.3", features = ["sink"] } @@ -26,5 +26,5 @@ anyhow = "1.0" tracing = "0.1" # codec implementation -bytes = "1.6" +bytes = "1.10" bitvec = "1.0" diff --git a/crates/job-queue-libsql/Cargo.toml b/crates/job-queue-libsql/Cargo.toml index 0afa7274e..bbbf9658a 100644 --- a/crates/job-queue-libsql/Cargo.toml +++ b/crates/job-queue-libsql/Cargo.toml @@ -16,6 +16,6 @@ libsql = { version = "0.9", default-features = false, features = ["core", "serde serde = "1" time = { version = "0.3", default-features = false, features = ["std"] } tracing = "0.1" -typed-builder = "0.19" -ulid = { version = "1.1", features = ["uuid"] } -uuid = "1.11" +typed-builder = "0.21" +ulid = { version = "1.2", features = ["uuid"] } +uuid = "1.17" diff --git a/crates/job-queue/Cargo.toml b/crates/job-queue/Cargo.toml index ec87b437f..f7a9e4b80 100644 --- a/crates/job-queue/Cargo.toml +++ b/crates/job-queue/Cargo.toml @@ -13,4 +13,4 @@ anyhow = "1" async-trait = "0.1" time = { version = "0.3", default-features = false } tracing = "0.1" -uuid = "1.11" +uuid = "1.17" diff --git a/crates/mock-net/Cargo.toml b/crates/mock-net/Cargo.toml index 50f0286cd..e9e8e62ab 100644 --- a/crates/mock-net/Cargo.toml +++ b/crates/mock-net/Cargo.toml @@ -6,8 +6,8 @@ authors = ["Devolutions Inc. "] publish = false [dependencies] -tokio = { version = "1.44", features = ["io-util", "sync"] } +tokio = { version = "1.45", features = ["io-util", "sync"] } loom = { version = "0.7", features = ["futures", "checkpoint"] } [dev-dependencies] -tokio = { version = "1.44", features = ["rt"] } +tokio = { version = "1.45", features = ["rt"] } diff --git a/crates/network-scanner-net/Cargo.toml b/crates/network-scanner-net/Cargo.toml index 1615f4d2f..d56706102 100644 --- a/crates/network-scanner-net/Cargo.toml +++ b/crates/network-scanner-net/Cargo.toml @@ -12,15 +12,15 @@ workspace = true anyhow = "1" crossbeam = { version = "0.8", features = ["crossbeam-channel"] } parking_lot = "0.12" -polling = "3.7" +polling = "3.8" socket2 = { version = "0.5", features = ["all"] } -thiserror = "1" +thiserror = "2" tracing = "0.1" [dev-dependencies] tracing-cov-mark = { path = "../tracing-cov-mark" } tracing-subscriber = "0.3" -tokio = { version = "1.44", features = [ +tokio = { version = "1.45", features = [ "rt", "sync", "macros", diff --git a/crates/network-scanner/Cargo.toml b/crates/network-scanner/Cargo.toml index e0700be1f..3c6c5c2aa 100644 --- a/crates/network-scanner/Cargo.toml +++ b/crates/network-scanner/Cargo.toml @@ -18,10 +18,10 @@ network-scanner-net = { path = "../network-scanner-net" } network-scanner-proto = { path = "../network-scanner-proto" } parking_lot = "0.12" socket2 = "0.5" -thiserror = "1" -tokio = { version = "1.44", features = ["rt", "sync", "time", "fs"] } +thiserror = "2" +tokio = { version = "1.45", features = ["rt", "sync", "time", "fs"] } tracing = "0.1" -typed-builder = "0.19" +typed-builder = "0.21" [target.'cfg(target_os = "windows")'.dependencies] ipconfig = "0.3" @@ -32,5 +32,5 @@ netlink-packet-route = "0.19" rtnetlink = "0.14" [dev-dependencies] -tokio = { version = "1.44", features = ["rt", "macros", "rt-multi-thread", "tracing", "signal"] } +tokio = { version = "1.45", features = ["rt", "macros", "rt-multi-thread", "tracing", "signal"] } tracing-subscriber = "0.3" diff --git a/crates/proxy-generators/Cargo.toml b/crates/proxy-generators/Cargo.toml index c257644fb..d1f072c6e 100644 --- a/crates/proxy-generators/Cargo.toml +++ b/crates/proxy-generators/Cargo.toml @@ -7,4 +7,4 @@ publish = false [dependencies] proxy-types = { path = "../proxy-types" } -proptest = "1.5" +proptest = "1.7" diff --git a/crates/proxy-http/Cargo.toml b/crates/proxy-http/Cargo.toml index c405a863a..ec899bf28 100644 --- a/crates/proxy-http/Cargo.toml +++ b/crates/proxy-http/Cargo.toml @@ -11,10 +11,10 @@ workspace = true [dependencies] proxy-types = { path = "../proxy-types" } -tokio = { version = "1.44", features = ["io-util"] } +tokio = { version = "1.45", features = ["io-util"] } pin-project-lite = "0.2" -bytes = "1.6" +bytes = "1.10" [dev-dependencies] -proptest = "1.5" +proptest = "1.7" proxy-generators = { path = "../proxy-generators" } diff --git a/crates/proxy-server/Cargo.toml b/crates/proxy-server/Cargo.toml index 54bcd0d7b..eb5458712 100644 --- a/crates/proxy-server/Cargo.toml +++ b/crates/proxy-server/Cargo.toml @@ -12,4 +12,4 @@ workspace = true proxy-socks = { path = "../proxy-socks" } proxy-http = { path = "../proxy-http" } proxy-types = { path = "../proxy-types" } -tokio = { version = "1.44", features = ["rt", "net", "rt-multi-thread", "macros"] } +tokio = { version = "1.45", features = ["rt", "net", "rt-multi-thread", "macros"] } diff --git a/crates/proxy-socks/Cargo.toml b/crates/proxy-socks/Cargo.toml index 922d53cd7..18264f1cd 100644 --- a/crates/proxy-socks/Cargo.toml +++ b/crates/proxy-socks/Cargo.toml @@ -11,10 +11,10 @@ workspace = true [dependencies] proxy-types = { path = "../proxy-types" } -tokio = { version = "1.44", features = ["io-util"] } +tokio = { version = "1.45", features = ["io-util"] } [dev-dependencies] -tokio = { version = "1.44", features = ["rt", "macros"] } +tokio = { version = "1.45", features = ["rt", "macros"] } tokio-test = "0.4" -proptest = "1.5" +proptest = "1.7" proxy-generators = { path = "../proxy-generators" } diff --git a/crates/proxy-tester/Cargo.toml b/crates/proxy-tester/Cargo.toml index 06152d370..9a86399f1 100644 --- a/crates/proxy-tester/Cargo.toml +++ b/crates/proxy-tester/Cargo.toml @@ -6,6 +6,6 @@ edition = "2021" publish = false [dependencies] -tokio = { version = "1.44", features = ["rt", "net"] } +tokio = { version = "1.45", features = ["rt", "net"] } proxy-http = { path = "../proxy-http" } proxy-socks = { path = "../proxy-socks" } diff --git a/crates/terminal-streamer/Cargo.toml b/crates/terminal-streamer/Cargo.toml index 32c1404df..b3c46dad3 100644 --- a/crates/terminal-streamer/Cargo.toml +++ b/crates/terminal-streamer/Cargo.toml @@ -5,11 +5,11 @@ edition = "2021" [dependencies] anyhow = "1.0" -tokio = { version = "1.44", features = ["io-util", "sync", "macros", "rt-multi-thread", "time"] } +tokio = { version = "1.45", features = ["io-util", "sync", "macros", "rt-multi-thread", "time"] } tracing = "0.1" [lints] workspace = true [dev-dependencies] -tokio = { version = "1.44", features = ["fs"] } \ No newline at end of file +tokio = { version = "1.45", features = ["fs"] } diff --git a/crates/test-utils/Cargo.toml b/crates/test-utils/Cargo.toml index d9dfe106e..58da98da8 100644 --- a/crates/test-utils/Cargo.toml +++ b/crates/test-utils/Cargo.toml @@ -10,9 +10,9 @@ workspace = true [dependencies] transport = { path = "../transport" } -tokio = { version = "1.44", features = ["io-util"] } +tokio = { version = "1.45", features = ["io-util"] } tokio-tungstenite = "0.26" futures-util = "0.3" -proptest = "1.5" +proptest = "1.7" anyhow = "1.0" portpicker = "0.1" diff --git a/crates/transport/Cargo.toml b/crates/transport/Cargo.toml index 049e05d2e..5189fda44 100644 --- a/crates/transport/Cargo.toml +++ b/crates/transport/Cargo.toml @@ -9,7 +9,7 @@ publish = false workspace = true [dependencies] -tokio = { version = "1.44", features = ["io-util", "sync", "rt", "macros", "time"] } +tokio = { version = "1.45", features = ["io-util", "sync", "rt", "macros", "time"] } futures-core = "0.3" futures-sink = "0.3" futures-util = { version = "0.3", features = ["sink"] } @@ -21,5 +21,5 @@ bytes = { version = "1.10", default-features = false } [dev-dependencies] futures-util = "0.3" test-utils = { path = "../test-utils" } -proptest = "1.5" +proptest = "1.7" anyhow = "1" diff --git a/crates/video-streamer/Cargo.toml b/crates/video-streamer/Cargo.toml index 74178fd96..95c6e53fc 100644 --- a/crates/video-streamer/Cargo.toml +++ b/crates/video-streamer/Cargo.toml @@ -8,7 +8,7 @@ publish = false [dependencies] anyhow = "1.0" futures-util = { version = "0.3", features = ["sink"] } -tokio = { version = "1.44", features = [ +tokio = { version = "1.45", features = [ "io-util", "rt", "rt-multi-thread", @@ -19,13 +19,13 @@ tokio-util = { version = "0.7", features = ["codec"] } tracing = "0.1" cadeau = { version = "0.5", features = ["dlopen"] } thiserror = "2" -num_cpus = "1.16" +num_cpus = "1.17" ebml-iterable = "0.6" webm-iterable = "0.6" [dev-dependencies] tracing-subscriber = "0.3" -tokio = { version = "1.44", features = [ +tokio = { version = "1.45", features = [ "io-util", "rt", "rt-multi-thread", diff --git a/crates/win-api-wrappers/Cargo.toml b/crates/win-api-wrappers/Cargo.toml index f0b3ab936..cc9d3a323 100644 --- a/crates/win-api-wrappers/Cargo.toml +++ b/crates/win-api-wrappers/Cargo.toml @@ -9,14 +9,14 @@ publish = false [dependencies] base16ct = { version = "0.2", features = ["alloc"] } -anyhow = "1.0" -thiserror = "1.0" +anyhow = "1" +thiserror = "2" tracing = "0.1" -uuid = { version = "1.10", features = ["v4"] } -widestring = "1.1.0" +uuid = { version = "1.17", features = ["v4"] } +widestring = "1.2" -[dependencies.windows] -version = "0.58.0" +[target.'cfg(windows)'.dependencies.windows] +version = "0.61" features = [ "Win32_Foundation", "Win32_NetworkManagement_NetManagement", @@ -51,12 +51,11 @@ features = [ "Win32_System_WinRT", "Win32_UI_Controls", "Win32_UI_Shell", - "Win32_UI_WindowsAndMessaging", - "implement", + "Win32_UI_WindowsAndMessaging" ] [dev-dependencies] -rstest = "0.24" +rstest = "0.25" [lints] workspace = true diff --git a/crates/win-api-wrappers/src/identity/account.rs b/crates/win-api-wrappers/src/identity/account.rs index 43b72d0f9..fd6c42213 100644 --- a/crates/win-api-wrappers/src/identity/account.rs +++ b/crates/win-api-wrappers/src/identity/account.rs @@ -163,9 +163,9 @@ pub fn get_username(format: Identity::EXTENDED_NAME_FORMAT) -> windows::core::Re let mut required_size = 0u32; // SAFETY: lpNameBuffer being null is fine because nSize is set to 0. - let ret = unsafe { Identity::GetUserNameExW(format, PWSTR::null(), &mut required_size) }; + let ret = unsafe { Identity::GetUserNameExW(format, None, &mut required_size) }; - assert!(!ret.as_bool()); + assert!(!ret); // SAFETY: FFI call with no outstanding precondition. if unsafe { GetLastError() } != ERROR_MORE_DATA { @@ -175,9 +175,9 @@ pub fn get_username(format: Identity::EXTENDED_NAME_FORMAT) -> windows::core::Re let mut buf = vec![0u16; required_size as usize]; // SAFETY: lpNameBuffer is correctly sized and matches the size announced in nSize AKA required_size. - let ret = unsafe { Identity::GetUserNameExW(format, PWSTR::from_raw(buf.as_mut_ptr()), &mut required_size) }; + let ret = unsafe { Identity::GetUserNameExW(format, Some(PWSTR::from_raw(buf.as_mut_ptr())), &mut required_size) }; - if !ret.as_bool() { + if !ret { return Err(windows::core::Error::from_win32()); } @@ -297,13 +297,13 @@ pub fn lookup_account_by_name(account_name: &U16CStr) -> windows::core::Result windows::core::Result for &mut Sid { - unsafe fn param(self) -> windows::core::ParamValue { - windows::core::ParamValue::Borrowed(self.as_psid()) - } -} - -impl windows::core::Param for &Sid { - unsafe fn param(self) -> windows::core::ParamValue { - windows::core::ParamValue::Borrowed(self.as_psid_const()) - } -} - impl Clone for Sid { fn clone(&self) -> Self { let mut it = self.as_slice().iter(); @@ -269,12 +257,10 @@ impl Sid { let mut return_length = 0u32; - let domain_sid = domain_sid.map(Sid::as_psid_const).unwrap_or_default(); + let domain_sid = domain_sid.map(Sid::as_psid_const); // SAFETY: The domain SID is only used as an in parameter, and is actually never modified by CreateWellKnownSid. - let res = unsafe { - Security::CreateWellKnownSid(sid_type, domain_sid, Security::PSID::default(), &mut return_length) - }; + let res = unsafe { Security::CreateWellKnownSid(sid_type, domain_sid, None, &mut return_length) }; let Err(err) = res else { anyhow::bail!("first call to CreateWellKnownSid did not fail") @@ -300,7 +286,7 @@ impl Sid { Security::CreateWellKnownSid( sid_type, domain_sid, - Security::PSID(sid.as_mut_ptr().cast()), + Some(Security::PSID(sid.as_mut_ptr().cast())), &mut return_length, )? }; @@ -367,7 +353,7 @@ impl Sid { let res = unsafe { Self::from_psid(psid) }; // SAFETY: On success, psid is a valid pointer initialized by ConvertStringSidToSidW that must be freed using LocalFree. - unsafe { LocalFree(HLOCAL(psid.0)) }; + unsafe { LocalFree(Some(HLOCAL(psid.0))) }; Ok(res?) } @@ -379,13 +365,13 @@ impl Sid { // SAFETY: // - self a valid SID, well constructed. // - The mutability of the pointer is changed, but ConvertSidToStringSidW is not modifying the underlying data. - unsafe { ConvertSidToStringSidW(self, &mut repr_ptr)? }; + unsafe { ConvertSidToStringSidW(self.as_psid_const(), &mut repr_ptr)? }; // SAFETY: ConvertSidToStringSidW returns a null-terminated SID string. let repr = unsafe { U16CString::from_pwstr(repr_ptr) }; // SAFETY: The pointer allocated by ConvertSidToStringSidW must be freed using `LocalFree`. - unsafe { LocalFree(HLOCAL(repr_ptr.0.cast())) }; + unsafe { LocalFree(Some(HLOCAL(repr_ptr.0.cast()))) }; Ok(StringSid { inner: repr }) } @@ -395,7 +381,7 @@ impl Sid { /// than the maximum. pub fn is_valid(&self) -> bool { // SAFETY: FFI call with no outstanding precondition. - unsafe { Security::IsValidSid(self).as_bool() } + unsafe { Security::IsValidSid(self.as_psid_const()).as_bool() } } /// Retrieves the name of the account for this SID and the name of the first domain on which this SID is found. @@ -424,10 +410,10 @@ impl Sid { let res = unsafe { Security::LookupAccountSidW( system_name.map_or_else(PCWSTR::null, U16CStrExt::as_pcwstr), - self, - PWSTR::null(), + self.as_psid_const(), + None, &mut account_name_size, - PWSTR::null(), + None, &mut domain_name_size, &mut sid_name_use, ) @@ -454,10 +440,10 @@ impl Sid { unsafe { Security::LookupAccountSidW( system_name.map_or_else(PCWSTR::null, U16CStrExt::as_pcwstr), - self, - PWSTR::from_raw(account_name_buf.as_mut_ptr()), + self.as_psid_const(), + Some(PWSTR::from_raw(account_name_buf.as_mut_ptr())), &mut account_name_size, - PWSTR::from_raw(domain_name_buf.as_mut_ptr()), + Some(PWSTR::from_raw(domain_name_buf.as_mut_ptr())), &mut domain_name_size, &mut sid_name_use, )? diff --git a/crates/win-api-wrappers/src/process.rs b/crates/win-api-wrappers/src/process.rs index 2c948aed4..da568f5b3 100644 --- a/crates/win-api-wrappers/src/process.rs +++ b/crates/win-api-wrappers/src/process.rs @@ -517,7 +517,7 @@ impl Module { let mut buf = vec![0; MAX_PATH as usize]; // SAFETY: No preconditions. `buf` is large enough and handle is valid. - let size = unsafe { GetModuleFileNameW(self.handle, &mut buf) } as usize; + let size = unsafe { GetModuleFileNameW(Some(self.handle), &mut buf) } as usize; if size == 0 { bail!(Error::last_error()); } @@ -700,7 +700,7 @@ pub fn create_process_as_user( // - `DestroyEnvironmentBlock` is called in the `ProcessEnvironment` destructor. // // Therefore, all preconditions are met to safely call `CreateEnvironmentBlock`. - unsafe { CreateEnvironmentBlock(&mut environment, token.handle().raw(), false) }?; + unsafe { CreateEnvironmentBlock(&mut environment, Some(token.handle().raw()), false) }?; } ProcessEnvironment::OsDefined(environment.cast_const()) @@ -721,9 +721,9 @@ pub fn create_process_as_user( // SAFETY: FFI call with no outstanding precondition. unsafe { CreateProcessAsUserW( - token.map(|x| x.handle().raw()).unwrap_or_default(), + token.map(|x| x.handle().raw()), application_name.as_pcwstr(), - command_line.as_pwstr(), + Some(command_line.as_pwstr()), process_attributes.map(|x| x.as_ptr()), thread_attributes.map(|x| x.as_ptr()), inherit_handles, diff --git a/crates/win-api-wrappers/src/security/acl.rs b/crates/win-api-wrappers/src/security/acl.rs index 49d5ae21e..572926532 100644 --- a/crates/win-api-wrappers/src/security/acl.rs +++ b/crates/win-api-wrappers/src/security/acl.rs @@ -100,7 +100,7 @@ impl Drop for Acl { fn drop(&mut self) { // SAFETY: Per invariants: the pointer can be freed using LocalFree. unsafe { - LocalFree(self.ptr); + LocalFree(Some(self.ptr)); } } } @@ -249,8 +249,8 @@ pub fn set_named_security_info( object_name.as_pcwstr(), object_type, security_info, - owner.map(|x| x.as_psid_const()).unwrap_or_default(), - group.map(|x| x.as_psid_const()).unwrap_or_default(), + owner.map(|x| x.as_psid_const()), + group.map(|x| x.as_psid_const()), dacl.as_ref().map(|x| x.acl.as_ptr().cast()), sacl.as_ref().map(|x| x.acl.as_ptr().cast()), ) diff --git a/crates/win-api-wrappers/src/security/crypt.rs b/crates/win-api-wrappers/src/security/crypt.rs index fcd0e8d8f..c4e5f96fd 100644 --- a/crates/win-api-wrappers/src/security/crypt.rs +++ b/crates/win-api-wrappers/src/security/crypt.rs @@ -156,7 +156,7 @@ impl CatalogAdminContext { None, BCRYPT_SHA256_ALGORITHM, None, - 0, + None, ) }?; @@ -178,7 +178,7 @@ impl CatalogAdminContext { HANDLE(file.as_raw_handle().cast()), &mut required_size, None, - 0, + None, ) }?; @@ -193,7 +193,7 @@ impl CatalogAdminContext { HANDLE(file.as_raw_handle().cast()), &mut allocated_length, Some(hash.as_mut_ptr()), - 0, + None, ) }?; @@ -241,7 +241,7 @@ impl Iterator for CatalogIterator<'_> { CryptCATAdminEnumCatalogFromHash( self.admin_ctx.handle.0 as isize, self.hash, - 0, + None, self.cur.map(|mut x| &mut x.0 as *mut _ as *mut isize), ) }; diff --git a/crates/win-api-wrappers/src/thread.rs b/crates/win-api-wrappers/src/thread.rs index df32c2926..0efa42d4b 100644 --- a/crates/win-api-wrappers/src/thread.rs +++ b/crates/win-api-wrappers/src/thread.rs @@ -104,9 +104,7 @@ impl<'a> ThreadAttributeList { let mut required_size = 0; // SAFETY: No preconditions. - let res = unsafe { - InitializeProcThreadAttributeList(LPPROC_THREAD_ATTRIBUTE_LIST::default(), count, 0, &mut required_size) - }; + let res = unsafe { InitializeProcThreadAttributeList(None, count, None, &mut required_size) }; let Err(err) = res else { anyhow::bail!("first call to InitializeProcThreadAttributeList did not fail") @@ -127,9 +125,9 @@ impl<'a> ThreadAttributeList { // SAFETY: `lpAttributeList` points to a buffer of the `out_size`. unsafe { InitializeProcThreadAttributeList( - LPPROC_THREAD_ATTRIBUTE_LIST(buf.as_mut_ptr().cast()), + Some(LPPROC_THREAD_ATTRIBUTE_LIST(buf.as_mut_ptr().cast())), count, - 0, + None, &mut allocated_length, )?; }; diff --git a/crates/win-api-wrappers/src/token.rs b/crates/win-api-wrappers/src/token.rs index aeaa5881d..31790c31d 100644 --- a/crates/win-api-wrappers/src/token.rs +++ b/crates/win-api-wrappers/src/token.rs @@ -14,10 +14,10 @@ use windows::Win32::Security::{ self, AdjustTokenGroups, AdjustTokenPrivileges, DuplicateTokenEx, GetTokenInformation, ImpersonateLoggedOnUser, RevertToSelf, SecurityIdentification, SecurityImpersonation, SetTokenInformation, TokenElevationTypeDefault, TokenElevationTypeFull, TokenElevationTypeLimited, LOGON32_LOGON, LOGON32_PROVIDER, LUID_AND_ATTRIBUTES, - SECURITY_ATTRIBUTES, SECURITY_DYNAMIC_TRACKING, SECURITY_IMPERSONATION_LEVEL, SECURITY_QUALITY_OF_SERVICE, - TOKEN_ACCESS_MASK, TOKEN_ALL_ACCESS, TOKEN_DUPLICATE, TOKEN_ELEVATION_TYPE, TOKEN_IMPERSONATE, - TOKEN_INFORMATION_CLASS, TOKEN_MANDATORY_POLICY, TOKEN_MANDATORY_POLICY_ID, TOKEN_PRIVILEGES, - TOKEN_PRIVILEGES_ATTRIBUTES, TOKEN_QUERY, TOKEN_SOURCE, TOKEN_STATISTICS, TOKEN_TYPE, + SECURITY_ATTRIBUTES, SECURITY_IMPERSONATION_LEVEL, SECURITY_QUALITY_OF_SERVICE, TOKEN_ACCESS_MASK, + TOKEN_ALL_ACCESS, TOKEN_DUPLICATE, TOKEN_ELEVATION_TYPE, TOKEN_IMPERSONATE, TOKEN_INFORMATION_CLASS, + TOKEN_MANDATORY_POLICY, TOKEN_MANDATORY_POLICY_ID, TOKEN_PRIVILEGES, TOKEN_PRIVILEGES_ATTRIBUTES, TOKEN_QUERY, + TOKEN_SOURCE, TOKEN_STATISTICS, TOKEN_TYPE, }; use windows::Win32::System::RemoteDesktop::WTSQueryUserToken; use windows::Win32::System::SystemServices::SE_GROUP_LOGON_ID; @@ -95,8 +95,8 @@ impl Token { let sqos = SECURITY_QUALITY_OF_SERVICE { Length: u32size_of::(), ImpersonationLevel: SecurityImpersonation, - ContextTrackingMode: SECURITY_DYNAMIC_TRACKING.0, - EffectiveOnly: false.into(), + ContextTrackingMode: Security::SECURITY_DYNAMIC_TRACKING as u8, + EffectiveOnly: false, }; let object_attributes = undoc::OBJECT_ATTRIBUTES { diff --git a/crates/win-api-wrappers/src/undoc.rs b/crates/win-api-wrappers/src/undoc.rs index 7d6a9c758..5f61cbdba 100644 --- a/crates/win-api-wrappers/src/undoc.rs +++ b/crates/win-api-wrappers/src/undoc.rs @@ -14,8 +14,8 @@ use std::ffi::c_void; use std::mem; -use windows::core::PCWSTR; -use windows::Win32::Foundation::{BOOL, HANDLE, LUID, NTSTATUS, UNICODE_STRING}; +use windows::core::{BOOL, PCWSTR}; +use windows::Win32::Foundation::{HANDLE, LUID, NTSTATUS, UNICODE_STRING}; use windows::Win32::Security::{ LOGON32_LOGON, LOGON32_PROVIDER, PSID, QUOTA_LIMITS, TOKEN_ACCESS_MASK, TOKEN_DEFAULT_DACL, TOKEN_GROUPS, TOKEN_OWNER, TOKEN_PRIMARY_GROUP, TOKEN_PRIVILEGES, TOKEN_SOURCE, TOKEN_TYPE, TOKEN_USER, @@ -307,7 +307,7 @@ pub const PIPE_ACCESS_FULL_CONTROL: u32 = 0x1F019F; /// https://www.geoffchappell.com/studies/windows/km/ntoskrnl/inc/api/pebteb/curdir.htm #[repr(C)] -#[derive(Clone, Copy, Debug, Eq, PartialEq)] +#[derive(Clone, Copy, Debug, PartialEq)] pub struct CURDIR { pub DosPath: UNICODE_STRING, pub Handle: HANDLE, @@ -315,7 +315,7 @@ pub struct CURDIR { /// https://www.geoffchappell.com/studies/windows/km/ntoskrnl/inc/api/pebteb/rtl_user_process_parameters.htm #[repr(C)] -#[derive(Clone, Copy, Debug, Eq, PartialEq)] +#[derive(Clone, Copy, Debug, PartialEq)] pub struct RTL_USER_PROCESS_PARAMETERS { pub MaximumLength: u32, pub Length: u32, @@ -379,7 +379,7 @@ pub const TOKEN_SECURITY_ATTRIBUTE_COMPARE_IGNORE: TOKEN_SECURITY_ATTRIBUTE_FLAG /// Based on https://github.com/winsiderss/systeminformer/blob/7ad69bf13d31892a89be7230bdbd47ffde024a2b/phnt/include/ntseapi.h#L197. #[repr(C)] -#[derive(Clone, Copy, Debug, Eq, PartialEq)] +#[derive(Clone, Copy, Debug, PartialEq)] pub struct TOKEN_SECURITY_ATTRIBUTE_FQBN_VALUE { pub Version: u64, pub Name: UNICODE_STRING, diff --git a/crates/win-api-wrappers/src/user.rs b/crates/win-api-wrappers/src/user.rs index 4ff1f5f93..d1297c2f0 100644 --- a/crates/win-api-wrappers/src/user.rs +++ b/crates/win-api-wrappers/src/user.rs @@ -15,7 +15,7 @@ pub fn load_string(hinstance: HINSTANCE, resource_id: u32) -> anyhow::Result Ok(None), diff --git a/crates/win-api-wrappers/src/utils.rs b/crates/win-api-wrappers/src/utils.rs index 502022e4a..026e974fc 100644 --- a/crates/win-api-wrappers/src/utils.rs +++ b/crates/win-api-wrappers/src/utils.rs @@ -232,7 +232,7 @@ impl CommandLine { .collect::>(); // SAFETY: No preconditions. `raw_args` is valid and must be freed. - let _ = unsafe { LocalFree(HLOCAL(raw_args.cast())) }; + let _ = unsafe { LocalFree(Some(HLOCAL(raw_args.cast()))) }; Self(args) } @@ -368,7 +368,7 @@ pub fn environment_block(token: Option<&Token>, inherit: bool) -> anyhow::Result unsafe { CreateEnvironmentBlock( &mut raw_blocks as *mut _ as *mut *mut c_void, - token.map(|x| x.handle().raw()).unwrap_or_default(), + token.map(|x| x.handle().raw()), inherit, )?; } @@ -467,7 +467,7 @@ pub fn get_exe_version() -> Result { let mut path_buf = [0u16; MAX_PATH as usize]; // SAFETY: We're passing a valid mutable buffer to GetModuleFileNameW of large enough size (MAX_PATH WCHARs) - let len = unsafe { GetModuleFileNameW(h_module, &mut path_buf) }; + let len = unsafe { GetModuleFileNameW(Some(h_module), &mut path_buf) }; if len == 0 { anyhow::bail!("GetModuleFileNameW failed: {}", windows::core::Error::from_win32()); @@ -486,7 +486,7 @@ pub fn get_exe_version() -> Result { // SAFETY: `buffer` is allocated with the correct size. // `exe_path_w` is a valid pointer to a null-terminated UTF-16 string from the OS. - unsafe { GetFileVersionInfoW(exe_path_w, 0, size, buffer.as_mut_ptr() as *mut _)? }; + unsafe { GetFileVersionInfoW(exe_path_w, None, size, buffer.as_mut_ptr() as *mut _)? }; let mut lp_buffer: *mut c_void = ptr::null_mut(); let mut len = 0u32; @@ -625,7 +625,7 @@ impl Link { unsafe { persist_file.Load(raw_path.as_pcwstr(), STGM_READ) }?; // SAFETY: Must be called within COM context. - unsafe { inst.Resolve(None, SLR_NO_UI.0 as u32) }?; + unsafe { inst.Resolve(windows::Win32::Foundation::HWND::default(), SLR_NO_UI.0 as u32) }?; f(&inst) } @@ -763,7 +763,7 @@ impl Pipe { // Note that we are not setting FILE_FLAG_OVERLAPPED here, as we are not expecting async // writes from target process stdout/stderr. FILE_FLAGS_AND_ATTRIBUTES(0), - HANDLE::default(), + None, ) }?; diff --git a/crates/win-api-wrappers/src/wts.rs b/crates/win-api-wrappers/src/wts.rs index 32a488f3b..3a5b89f55 100644 --- a/crates/win-api-wrappers/src/wts.rs +++ b/crates/win-api-wrappers/src/wts.rs @@ -158,7 +158,7 @@ pub fn get_sessions() -> anyhow::Result> { // SAFETY: FFI call with no outstanding precondition. unsafe { - WTSEnumerateSessionsW(WTS_CURRENT_SERVER_HANDLE, 0, 1, &mut sessions, &mut count)?; + WTSEnumerateSessionsW(Some(WTS_CURRENT_SERVER_HANDLE), 0, 1, &mut sessions, &mut count)?; }; // SAFETY: The pointer placed into `sessions` by `WTSEnumerateSessionsW` must be freed by `WTSFreeMemory`. @@ -184,7 +184,7 @@ pub fn get_sessions() -> anyhow::Result> { pub fn log_off_session(session_id: u32, wait: bool) -> anyhow::Result<()> { // SAFETY: FFI call with no outstanding precondition. - unsafe { WTSLogoffSession(WTS_CURRENT_SERVER_HANDLE, session_id, wait).map_err(|e| e.into()) } + unsafe { WTSLogoffSession(Some(WTS_CURRENT_SERVER_HANDLE), session_id, wait).map_err(|e| e.into()) } } pub fn get_session_user_name(session_id: u32) -> anyhow::Result { @@ -213,7 +213,7 @@ pub fn send_message_to_session( // - `title` and `message` are holding a null-terminated UTF-16 string, and as_pcwstr() returns a valid pointer to it. unsafe { WTSSendMessageW( - WTS_CURRENT_SERVER_HANDLE, + Some(WTS_CURRENT_SERVER_HANDLE), session_id, title.as_pcwstr(), (title.0.unwrap().len() * size_of_val(&0u16)).try_into()?, @@ -243,7 +243,13 @@ fn query_session_information_string(session_id: u32, info_class: WTS_INFO_CLASS) // SAFETY: Passing a `PWSTR` is correct in the case where `info_class` represents a string result. unsafe { - WTSQuerySessionInformationW(WTS_CURRENT_SERVER_HANDLE, session_id, info_class, &mut string, &mut len)?; + WTSQuerySessionInformationW( + Some(WTS_CURRENT_SERVER_HANDLE), + session_id, + info_class, + &mut string, + &mut len, + )?; } // SAFETY: On success, WTSQuerySessionInformationW places a valid pointer which must be freed by `WTSFreeMemory`. diff --git a/devolutions-agent/Cargo.toml b/devolutions-agent/Cargo.toml index a877b4dac..db91579d2 100644 --- a/devolutions-agent/Cargo.toml +++ b/devolutions-agent/Cargo.toml @@ -40,7 +40,7 @@ features = [ ] [dependencies.tokio] -version = "1.44" +version = "1.45" features = [ "signal", "net", @@ -55,17 +55,17 @@ features = [ [target.'cfg(windows)'.dependencies] hex = "0.4" -notify-debouncer-mini = "0.4" +notify-debouncer-mini = "0.6" reqwest = { version = "0.12", default-features = false, features = ["rustls-tls-native-roots"] } -aws-lc-rs = "^1.11.1" +aws-lc-rs = "1.13" sha2 = "0.10" -thiserror = "1" -uuid = { version = "1.10", features = ["v4"] } +thiserror = "2" +uuid = { version = "1.17", features = ["v4"] } devolutions-pedm = { path = "../crates/devolutions-pedm" } win-api-wrappers = { path = "../crates/win-api-wrappers" } [target.'cfg(windows)'.dependencies.windows] -version = "0.58" +version = "0.61" features = [ "Win32_Foundation", "Win32_Storage_FileSystem", @@ -78,4 +78,4 @@ features = [ ] [target.'cfg(windows)'.build-dependencies] -embed-resource = "2.4" +embed-resource = "3.0" diff --git a/devolutions-agent/build.rs b/devolutions-agent/build.rs index a98c06e29..fef520418 100644 --- a/devolutions-agent/build.rs +++ b/devolutions-agent/build.rs @@ -13,8 +13,12 @@ mod win { let version_rc_data = generate_version_rc(); fs::write(&version_rc_file, version_rc_data).expect("BUG: failed to write version.rc"); - embed_resource::compile(&version_rc_file, embed_resource::NONE); - embed_resource::compile("resources.rc", embed_resource::NONE); + embed_resource::compile(&version_rc_file, embed_resource::NONE) + .manifest_required() + .unwrap(); + embed_resource::compile("resources.rc", embed_resource::NONE) + .manifest_required() + .unwrap(); } fn generate_version_rc() -> String { diff --git a/devolutions-agent/src/updater/security.rs b/devolutions-agent/src/updater/security.rs index 00724ff1d..5bf88dccf 100644 --- a/devolutions-agent/src/updater/security.rs +++ b/devolutions-agent/src/updater/security.rs @@ -21,9 +21,7 @@ pub(crate) fn set_file_dacl(file_path: &Utf8Path, acl: &str) -> Result<(), Updat use windows::Win32::Security::Authorization::{ ConvertStringSecurityDescriptorToSecurityDescriptorW, SetNamedSecurityInfoW, SDDL_REVISION_1, SE_FILE_OBJECT, }; - use windows::Win32::Security::{ - GetSecurityDescriptorDacl, ACL, DACL_SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, PSID, - }; + use windows::Win32::Security::{GetSecurityDescriptorDacl, ACL, DACL_SECURITY_INFORMATION, PSECURITY_DESCRIPTOR}; struct OwnedPSecurityDescriptor(PSECURITY_DESCRIPTOR); @@ -34,7 +32,7 @@ pub(crate) fn set_file_dacl(file_path: &Utf8Path, acl: &str) -> Result<(), Updat } // SAFETY: `self.0` is a valid pointer to a security descriptor, therefore the function // is safe to call. - unsafe { LocalFree(HLOCAL(self.0 .0)) }; + unsafe { LocalFree(Some(HLOCAL(self.0 .0))) }; } } @@ -67,9 +65,9 @@ pub(crate) fn set_file_dacl(file_path: &Utf8Path, acl: &str) -> Result<(), Updat unsafe { GetSecurityDescriptorDacl( psecurity_descriptor.0, - &mut sec_present as *mut windows::Win32::Foundation::BOOL, + &mut sec_present as *mut windows::core::BOOL, &mut dacl as *mut *mut ACL, - &mut sec_defaulted as *mut windows::Win32::Foundation::BOOL, + &mut sec_defaulted as *mut windows::core::BOOL, ) } .map_err(|_| UpdaterError::AclString { acl: acl.to_owned() })?; @@ -87,8 +85,8 @@ pub(crate) fn set_file_dacl(file_path: &Utf8Path, acl: &str) -> Result<(), Updat wide_file_path.as_pcwstr(), SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, - PSID::default(), - PSID::default(), + None, + None, Some(dacl), None, ) diff --git a/devolutions-gateway/Cargo.toml b/devolutions-gateway/Cargo.toml index 472b97f75..4a546a080 100644 --- a/devolutions-gateway/Cargo.toml +++ b/devolutions-gateway/Cargo.toml @@ -29,11 +29,11 @@ job-queue-libsql = { path = "../crates/job-queue-libsql" } ironrdp-pdu = { version = "0.5", features = ["std"] } ironrdp-core = { version = "0.1", features = ["std"] } ironrdp-rdcleanpath = "0.1" -ironrdp-tokio = { version = "0.4", default-features = false } +ironrdp-tokio = "0.5" ironrdp-connector = { version = "0.5" } ironrdp-acceptor = { version = "0.5" } ceviche = "0.6.1" -picky-krb = "0.9" +picky-krb = "0.11" network-scanner = { version = "0.0.0", path = "../crates/network-scanner" } video-streamer = { path = "../crates/video-streamer" } terminal-streamer = { path = "../crates/terminal-streamer" } @@ -47,25 +47,25 @@ serde-querystring = "0.3.0" # Utils, misc hostname = "0.4" camino = { version = "1.1", features = ["serde1"] } -smol_str = { version = "0.2", features = ["serde"] } -nonempty = "0.10" +smol_str = { version = "0.3", features = ["serde"] } +nonempty = "0.11" tap = "1.0" -bytes = "1.6" +bytes = "1.10" cfg-if = "1.0" url = { version = "2.5", features = ["serde"] } -uuid = { version = "1.10", features = ["v4", "serde"] } +uuid = { version = "1.17", features = ["v4", "serde"] } time = { version = "0.3", default-features = false, features = ["std", "serde", "formatting"] } parking_lot = "0.12" anyhow = "1.0" -thiserror = "1" -typed-builder = "0.19" +thiserror = "2" +typed-builder = "0.21" backoff = "0.4" -sysinfo = "0.30" +sysinfo = { version = "0.35", default-features = false, features = ["disk"] } dunce = "1.0" bitflags = "2.9" # Security, crypto… -picky = { version = "7.0.0-rc.10", default-features = false, features = ["jose", "x509", "pkcs12", "time_conversion"] } +picky = { version = "7.0.0-rc.15", default-features = false, features = ["jose", "x509", "pkcs12", "time_conversion"] } zeroize = { version = "1.8", features = ["derive"] } multibase = "0.9" argon2 = { version = "0.5", features = ["std"] } @@ -75,7 +75,7 @@ x509-cert = { version = "0.2", default-features = false, features = ["std"] } tracing = "0.1" # Async, futures… -tokio = { version = "1.44", features = ["signal", "net", "io-util", "time", "rt", "rt-multi-thread", "sync", "macros", "parking_lot", "fs"] } +tokio = { version = "1.45", features = ["signal", "net", "io-util", "time", "rt", "rt-multi-thread", "sync", "macros", "parking_lot", "fs"] } tokio-rustls = { version = "0.26", default-features = false, features = ["logging", "tls12", "ring"] } reqwest = { version = "0.12", default-features = false, features = ["rustls-tls-native-roots", "json", "stream"] } futures = "0.3" @@ -84,7 +84,7 @@ tower = { version = "0.5", features = ["timeout"] } ngrok = "0.13" # HTTP -hyper = "1.4" +hyper = "1.6" hyper-util = { version = "0.1", features = ["tokio", "server", "server-auto"] } axum = { version = "0.8", default-features = false, features = ["http1", "json", "ws", "query", "tracing", "tower-log"] } axum-extra = { version = "0.10", features = ["query", "async-read-body", "typed-header"] } @@ -120,12 +120,12 @@ portpicker = "0.1" rustls-cng = { version = "0.5", default-features = false, features = ["logging", "tls12", "ring"] } [target.'cfg(windows)'.build-dependencies] -embed-resource = "2.4" +embed-resource = "3.0" [dev-dependencies] tokio-test = "0.4" -proptest = "1.5" -rstest = "0.24" +proptest = "1.7" +rstest = "0.25" devolutions-gateway-generators = { path = "../crates/devolutions-gateway-generators" } http-body-util = "0.1" tracing-cov-mark = { path = "../crates/tracing-cov-mark" } diff --git a/devolutions-gateway/build.rs b/devolutions-gateway/build.rs index 5132297b0..df6d98db0 100644 --- a/devolutions-gateway/build.rs +++ b/devolutions-gateway/build.rs @@ -13,7 +13,9 @@ mod win { let version_rc_data = generate_version_rc(); fs::write(&version_rc_file, version_rc_data).unwrap(); - embed_resource::compile(&version_rc_file, embed_resource::NONE); + embed_resource::compile(&version_rc_file, embed_resource::NONE) + .manifest_required() + .unwrap(); } fn generate_version_rc() -> String { diff --git a/devolutions-session/Cargo.toml b/devolutions-session/Cargo.toml index cf7f82c2b..d9140760d 100644 --- a/devolutions-session/Cargo.toml +++ b/devolutions-session/Cargo.toml @@ -30,7 +30,7 @@ ctrlc = "3.4" devolutions-log = { path = "../crates/devolutions-log" } devolutions-gateway-task = { path = "../crates/devolutions-gateway-task" } parking_lot = "0.12" -serde = "1" +serde = { version = "1", features = ["derive"] } serde_json = "1" tap = "1.0" tracing = "0.1" @@ -39,7 +39,7 @@ tokio = { version = "1", features = ["macros", "sync", "time"] } async-trait = { version = "0.1", optional = true } tempfile = { version = "3", optional = true } -thiserror = { version = "1", optional = true } +thiserror = { version = "2", optional = true } win-api-wrappers = { path = "../crates/win-api-wrappers", optional = true } [dependencies.now-proto-pdu] @@ -48,10 +48,10 @@ version = "0.2" features = ["std"] [target.'cfg(windows)'.build-dependencies] -embed-resource = "2.4" +embed-resource = "3.0" [target.'cfg(windows)'.dependencies.windows] -version = "0.58" +version = "0.61" optional = true features = [ "Win32_Foundation", @@ -60,4 +60,4 @@ features = [ "Win32_UI_Shell", "Win32_System_Console", "Win32_UI_Input_KeyboardAndMouse", -] \ No newline at end of file +] diff --git a/devolutions-session/build.rs b/devolutions-session/build.rs index 3fd609083..512d3bc73 100644 --- a/devolutions-session/build.rs +++ b/devolutions-session/build.rs @@ -13,7 +13,9 @@ mod win { let version_rc_data = generate_version_rc(); fs::write(&version_rc_file, version_rc_data).expect("BUG: failed to write version.rc"); - embed_resource::compile(&version_rc_file, embed_resource::NONE); + embed_resource::compile(&version_rc_file, embed_resource::NONE) + .manifest_required() + .unwrap(); } fn generate_version_rc() -> String { diff --git a/devolutions-session/src/config.rs b/devolutions-session/src/config.rs index 78c620d54..595d7f258 100644 --- a/devolutions-session/src/config.rs +++ b/devolutions-session/src/config.rs @@ -1,7 +1,6 @@ use anyhow::Context; use camino::{Utf8Path, Utf8PathBuf}; use cfg_if::cfg_if; -use serde::{Deserialize, Serialize}; use tap::prelude::*; use std::fs::File; diff --git a/devolutions-session/src/dvc/process.rs b/devolutions-session/src/dvc/process.rs index 364a6873b..948e60d62 100644 --- a/devolutions-session/src/dvc/process.rs +++ b/devolutions-session/src/dvc/process.rs @@ -1,8 +1,7 @@ use tokio::sync::mpsc::Sender; -use windows::core::PCWSTR; +use windows::core::{BOOL, PCWSTR}; use windows::Win32::Foundation::{ - CloseHandle, GetLastError, BOOL, ERROR_BROKEN_PIPE, ERROR_HANDLE_EOF, HWND, LPARAM, WAIT_EVENT, WAIT_OBJECT_0, - WPARAM, + CloseHandle, GetLastError, ERROR_BROKEN_PIPE, ERROR_HANDLE_EOF, HWND, LPARAM, WAIT_EVENT, WAIT_OBJECT_0, WPARAM, }; use windows::Win32::Storage::FileSystem::{ReadFile, WriteFile}; use windows::Win32::System::Threading::{ @@ -508,7 +507,7 @@ impl WinApiProcessBuilder { unsafe { CreateProcessW( PCWSTR::null(), - command_line_wide.as_pwstr(), + Some(command_line_wide.as_pwstr()), Some(security_attributes.as_ptr()), None, true, diff --git a/devolutions-session/src/dvc/task.rs b/devolutions-session/src/dvc/task.rs index a62adbaeb..dada583a8 100644 --- a/devolutions-session/src/dvc/task.rs +++ b/devolutions-session/src/dvc/task.rs @@ -868,7 +868,7 @@ fn set_kbd_layout(layout: SetKbdLayoutOption<'_>) -> anyhow::Result<()> { // SAFETY: hwnd is valid window handle. unsafe { PostMessageW( - focused_window, + Some(focused_window), WM_INPUTLANGCHANGEREQUEST, WPARAM(0), // wParam is not used. LPARAM(locale), // lParam is locale (low word of layout identifier). diff --git a/devolutions-session/src/lib.rs b/devolutions-session/src/lib.rs index e90299422..58005a675 100644 --- a/devolutions-session/src/lib.rs +++ b/devolutions-session/src/lib.rs @@ -1,4 +1,6 @@ #[macro_use] +extern crate serde; +#[macro_use] extern crate tracing; use ::{ctrlc as _, devolutions_gateway_task as _, futures as _, tokio as _}; diff --git a/jetsocat/Cargo.toml b/jetsocat/Cargo.toml index a49a32f3f..f8477fc8a 100644 --- a/jetsocat/Cargo.toml +++ b/jetsocat/Cargo.toml @@ -19,7 +19,7 @@ native-tls = ["tokio-tungstenite/native-tls", "dep:openssl", "dep:native-tls"] # jet protocol support jet-proto = { path = "../crates/jet-proto" } -uuid = "1.10" +uuid = "1.17" # jmux protocol support jmux-proto = { path = "../crates/jmux-proto" } @@ -33,10 +33,10 @@ proxy_cfg = { version = "0.4", optional = true } # cli seahorse = "2.2" -humantime = "2.1" +humantime = "2.2" # async -tokio = { version = "1.44", features = ["io-std", "io-util", "net", "fs", "signal", "time", "rt", "sync", "process", "rt-multi-thread", "macros"] } +tokio = { version = "1.45", features = ["io-std", "io-util", "net", "fs", "signal", "time", "rt", "sync", "process", "rt-multi-thread", "macros"] } tokio-tungstenite = "0.26" futures-util = "0.3" transport = { path = "../crates/transport" } @@ -53,7 +53,7 @@ anyhow = "1.0" dirs-next = "2.0" # find parent process / watch process -sysinfo = { version = "0.30", default-features = false } +sysinfo = { version = "0.35", default-features = false, features = ["system"] } # doctor tinyjson = "2.5" # Small JSON library; used to avoid including a bigger like serde-json @@ -70,7 +70,7 @@ openssl = { version = "0.10", optional = true } # Same dependency as tokio-tungs # doctor [target.'cfg(target_os = "windows")'.dependencies.windows] -version = "0.58" +version = "0.61" features = [ "Win32_Security_Authentication_Identity", "Win32_Security_Cryptography", @@ -80,5 +80,5 @@ features = [ [dev-dependencies] test-utils = { path = "../crates/test-utils" } -tokio = { version = "1.44", features = ["time"] } -proptest = "1.5" +tokio = { version = "1.45", features = ["time"] } +proptest = "1.7" diff --git a/jetsocat/src/doctor/schannel.rs b/jetsocat/src/doctor/schannel.rs index 9490468bd..b8961c2ce 100644 --- a/jetsocat/src/doctor/schannel.rs +++ b/jetsocat/src/doctor/schannel.rs @@ -598,7 +598,7 @@ mod wrapper { // SAFETY: FFI call with no outstanding preconditions. unsafe { Cryptography::CertAddEncodedCertificateToStore( - self.ptr, + Some(self.ptr), Cryptography::X509_ASN_ENCODING, cert, Cryptography::CERT_STORE_ADD_ALWAYS, @@ -650,7 +650,7 @@ mod wrapper { impl Drop for CertStore { fn drop(&mut self) { // SAFETY: The store handle is owned by us. - let res = unsafe { Cryptography::CertCloseStore(self.ptr, 0) }; + let res = unsafe { Cryptography::CertCloseStore(Some(self.ptr), 0) }; if let Err(error) = res { warn!(%error, "failed to close certificate store"); @@ -778,7 +778,7 @@ mod wrapper { None, self.ptr, None, - store, + Some(store), &chain_para, 0, None, diff --git a/jetsocat/src/main.rs b/jetsocat/src/main.rs index 587fdd98d..9b2757c25 100644 --- a/jetsocat/src/main.rs +++ b/jetsocat/src/main.rs @@ -468,9 +468,9 @@ impl CommonArgs { // Find current process' parent process ID let current_pid = sysinfo::get_current_pid().map_err(|e| anyhow::anyhow!("couldn't find current process ID: {e}"))?; - let refresh_kind = RefreshKind::new().with_processes(ProcessRefreshKind::new()); - let system = System::new_with_specifics(refresh_kind); - let current_process = system.process(current_pid).expect("current process exists"); + let mut sys = System::new(); + sys.refresh_processes(sysinfo::ProcessesToUpdate::Some(&[current_pid]), false); + let current_process = sys.process(current_pid).expect("current process exists"); Some(current_process.parent().context("couldn't find parent process")?) } else { None diff --git a/jetsocat/src/process_watcher.rs b/jetsocat/src/process_watcher.rs index 1d93f8219..480bf27f8 100644 --- a/jetsocat/src/process_watcher.rs +++ b/jetsocat/src/process_watcher.rs @@ -1,15 +1,13 @@ -use sysinfo::{Pid, ProcessRefreshKind, RefreshKind, System}; -use tokio::time::{sleep, Duration}; +use std::process::ExitStatus; +use sysinfo::{Pid, ProcessesToUpdate, System}; +use tokio::task; -pub(crate) async fn watch_process(pid: Pid) { - let mut system = System::new_with_specifics(RefreshKind::new()); - let process_refresh_kind = ProcessRefreshKind::new(); - - loop { - if !system.refresh_process_specifics(pid, process_refresh_kind) { - return; - } - - sleep(Duration::from_secs(60)).await; - } +pub(crate) async fn watch_process(pid: Pid) -> Option { + task::spawn_blocking(move || { + let mut sys = System::new(); + sys.refresh_processes(ProcessesToUpdate::Some(&[pid]), false); + sys.process(pid).and_then(|p| p.wait()) + }) + .await + .expect("blocking task panicked") } diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 3d572e0d6..5675074ab 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] -channel = "1.82.0" +channel = "1.87.0" components = ["rustfmt", "clippy"]