From 05b84f2ca1f53f6cabdc07f543e15d695a726a61 Mon Sep 17 00:00:00 2001 From: Jonson Petard <41122242+greenhat616@users.noreply.github.com> Date: Tue, 19 Dec 2023 03:17:56 +0800 Subject: [PATCH 1/4] fix: pin runas to v1.0.0 --- backend/Cargo.lock | 196 +++++++++++++++++++-------------------- backend/tauri/Cargo.toml | 2 +- 2 files changed, 99 insertions(+), 99 deletions(-) diff --git a/backend/Cargo.lock b/backend/Cargo.lock index fd3d9cda4e..7b928bdc61 100644 --- a/backend/Cargo.lock +++ b/backend/Cargo.lock @@ -185,9 +185,9 @@ dependencies = [ [[package]] name = "async-io" -version = "2.2.1" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6d3b15875ba253d1110c740755e246537483f152fa334f91abd7fe84c88b3ff" +checksum = "6afaa937395a620e33dc6a742c593c01aced20aa376ffb0f628121198578ccc7" dependencies = [ "async-lock 3.2.0", "cfg-if", @@ -196,7 +196,7 @@ dependencies = [ "futures-lite 2.1.0", "parking", "polling 3.3.1", - "rustix 0.38.26", + "rustix 0.38.28", "slab", "tracing", "windows-sys 0.52.0", @@ -246,7 +246,7 @@ dependencies = [ "cfg-if", "event-listener 3.1.0", "futures-lite 1.13.0", - "rustix 0.38.26", + "rustix 0.38.28", "windows-sys 0.48.0", ] @@ -258,7 +258,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -267,13 +267,13 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" dependencies = [ - "async-io 2.2.1", + "async-io 2.2.2", "async-lock 2.8.0", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix 0.38.26", + "rustix 0.38.28", "signal-hook-registry", "slab", "windows-sys 0.48.0", @@ -281,9 +281,9 @@ dependencies = [ [[package]] name = "async-task" -version = "4.5.0" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1" +checksum = "e1d90cd0b264dfdd8eb5bad0a2c217c1f88fa96a8573f40e7b12de23fb468f46" [[package]] name = "async-trait" @@ -293,7 +293,7 @@ checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -732,7 +732,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f76990911f2267d837d9d0ad060aa63aaad170af40904b29461734c339030d4d" dependencies = [ "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -840,9 +840,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.8" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +checksum = "14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5" dependencies = [ "cfg-if", "crossbeam-utils", @@ -850,9 +850,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751" dependencies = [ "cfg-if", "crossbeam-epoch", @@ -861,22 +861,21 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.15" +version = "0.9.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +checksum = "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", "memoffset 0.9.0", - "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.16" +version = "0.8.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" dependencies = [ "cfg-if", ] @@ -915,17 +914,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] name = "ctor" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37e366bff8cd32dd8754b0991fb66b279dc48f598c3a18914852a6673deef583" +checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e" dependencies = [ "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -959,7 +958,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -970,7 +969,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" dependencies = [ "darling_core", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -1229,7 +1228,7 @@ checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -1386,7 +1385,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -1504,7 +1503,7 @@ checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -1961,11 +1960,11 @@ dependencies = [ [[package]] name = "home" -version = "0.5.5" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -2004,14 +2003,14 @@ checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" dependencies = [ "bytes", "fnv", - "itoa 1.0.9", + "itoa 1.0.10", ] [[package]] name = "http-body" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", "http", @@ -2044,9 +2043,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.27" +version = "0.14.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" dependencies = [ "bytes", "futures-channel", @@ -2057,9 +2056,9 @@ dependencies = [ "http-body", "httparse", "httpdate", - "itoa 1.0.9", + "itoa 1.0.10", "pin-project-lite", - "socket2 0.4.10", + "socket2 0.5.5", "tokio", "tower-service", "tracing", @@ -2300,9 +2299,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "javascriptcore-rs" @@ -2434,9 +2433,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.150" +version = "0.2.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" [[package]] name = "libloading" @@ -3048,7 +3047,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -3059,9 +3058,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "300.1.6+3.1.4" +version = "300.2.1+3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439fac53e092cd7442a3660c85dde4643ab3b5bd39040912388dcdabf6b88085" +checksum = "3fe476c29791a5ca0d1273c697e96085bbabbbea2ef7afd5617e78a4b40332d3" dependencies = [ "cc", ] @@ -3261,7 +3260,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -3389,7 +3388,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -3436,7 +3435,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -3520,7 +3519,7 @@ dependencies = [ "cfg-if", "concurrent-queue", "pin-project-lite", - "rustix 0.38.26", + "rustix 0.38.28", "tracing", "windows-sys 0.52.0", ] @@ -3920,14 +3919,12 @@ checksum = "e60ef3b82994702bbe4e134d98aadca4b49ed04440148985678d415c68127666" [[package]] name = "runas" -version = "1.1.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49535b7c73aec5596ae2c44a6d8a7a8f8592e5744564c327fd4846750413d921" +checksum = "ed87390fefd18965ff20baae5aeb9913bcf82d2b59dc04c0f6d8f17f7be56ff2" dependencies = [ - "libc", - "security-framework-sys", + "cc", "which", - "windows-sys 0.48.0", ] [[package]] @@ -3970,9 +3967,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.26" +version = "0.38.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9470c4bf8246c8daf25f9598dca807fb6510347b1e1cfa55749113850c79d88a" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" dependencies = [ "bitflags 2.4.1", "errno", @@ -3983,9 +3980,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.9" +version = "0.21.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9" +checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" dependencies = [ "log", "ring", @@ -4020,9 +4017,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" [[package]] name = "safemem" @@ -4182,7 +4179,7 @@ checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -4191,7 +4188,7 @@ version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ - "itoa 1.0.9", + "itoa 1.0.10", "ryu", "serde", ] @@ -4204,7 +4201,7 @@ checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -4223,7 +4220,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa 1.0.9", + "itoa 1.0.10", "ryu", "serde", ] @@ -4254,7 +4251,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -4276,7 +4273,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3cc7a1570e38322cfe4154732e5110f887ea57e22b76f4bfd32b5bdd3368666c" dependencies = [ "indexmap 2.1.0", - "itoa 1.0.9", + "itoa 1.0.10", "ryu", "serde", "unsafe-libyaml", @@ -4567,9 +4564,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269" dependencies = [ "proc-macro2", "quote", @@ -4959,7 +4956,7 @@ dependencies = [ "cfg-if", "fastrand 2.0.1", "redox_syscall", - "rustix 0.38.26", + "rustix 0.38.28", "windows-sys 0.48.0", ] @@ -5036,22 +5033,22 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" [[package]] name = "thiserror" -version = "1.0.50" +version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.50" +version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -5081,7 +5078,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" dependencies = [ "deranged", - "itoa 1.0.9", + "itoa 1.0.10", "powerfmt", "serde", "time-core", @@ -5120,9 +5117,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.34.0" +version = "1.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" +checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c" dependencies = [ "backtrace", "bytes", @@ -5145,7 +5142,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -5299,7 +5296,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -5352,9 +5349,9 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" @@ -5398,10 +5395,11 @@ checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" [[package]] name = "uds_windows" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" dependencies = [ + "memoffset 0.9.0", "tempfile", "winapi", ] @@ -5453,9 +5451,9 @@ dependencies = [ [[package]] name = "unsafe-libyaml" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa" +checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b" [[package]] name = "untrusted" @@ -5644,7 +5642,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", "wasm-bindgen-shared", ] @@ -5678,7 +5676,7 @@ checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -5812,7 +5810,7 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.26", + "rustix 0.38.28", ] [[package]] @@ -6261,9 +6259,9 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winnow" -version = "0.5.25" +version = "0.5.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e87b8dfbe3baffbe687eef2e164e32286eff31a5ee16463ce03d991643ec94" +checksum = "6c830786f7720c2fd27a1a0e27a709dbd3c4d009b56d098fc742d4f4eab91fe2" dependencies = [ "memchr", ] @@ -6358,11 +6356,13 @@ dependencies = [ [[package]] name = "xattr" -version = "1.0.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985" +checksum = "a7dae5072fe1f8db8f8d29059189ac175196e410e40ba42d5d4684ae2f750995" dependencies = [ "libc", + "linux-raw-sys 0.4.12", + "rustix 0.38.28", ] [[package]] @@ -6452,22 +6452,22 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.29" +version = "0.7.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d075cf85bbb114e933343e087b92f2146bac0d55b534cbb8188becf0039948e" +checksum = "1c4061bedbb353041c12f413700357bec76df2c7e2ca8e4df8bac24c6bf68e3d" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.29" +version = "0.7.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86cd5ca076997b97ef09d3ad65efe811fa68c9e874cb636ccb211223a813b0c2" +checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] diff --git a/backend/tauri/Cargo.toml b/backend/tauri/Cargo.toml index 6bc07180ee..fca6e9b9c9 100644 --- a/backend/tauri/Cargo.toml +++ b/backend/tauri/Cargo.toml @@ -58,7 +58,7 @@ tempfile = "3.8.1" glob = "0.3.1" [target.'cfg(windows)'.dependencies] -runas = "=1.1.0" +runas = "=1.0.0" # blocked by https://github.com/mitsuhiko/rust-runas/issues/13 deelevate = "0.2.0" winreg = { version = "0.50", features = ["transactions"] } windows-sys = { version = "0.48", features = [ From 63f324b80c09cdffdf3198f14af5171149d24739 Mon Sep 17 00:00:00 2001 From: Jonson Petard <41122242+greenhat616@users.noreply.github.com> Date: Tue, 19 Dec 2023 18:48:41 +0800 Subject: [PATCH 2/4] feat: backport concurrency of latency test --- backend/tauri/src/cmds.rs | 11 +++++++++ backend/tauri/src/core/clash_api.rs | 38 ++++++++++++++++++++++++----- backend/tauri/src/main.rs | 1 + src/services/api.ts | 2 +- src/services/cmds.ts | 5 ++++ src/services/delay.ts | 5 ++-- 6 files changed, 53 insertions(+), 9 deletions(-) diff --git a/backend/tauri/src/cmds.rs b/backend/tauri/src/cmds.rs index b672f60fab..208c9ee403 100644 --- a/backend/tauri/src/cmds.rs +++ b/backend/tauri/src/cmds.rs @@ -301,6 +301,17 @@ pub async fn update_core(core_type: ClashCore) -> CmdResult { ) } +#[tauri::command] +pub async fn clash_api_get_proxy_delay( + name: String, + url: Option, +) -> CmdResult { + match clash_api::get_proxy_delay(name, url).await { + Ok(res) => Ok(res), + Err(err) => Err(format!("{}", err.to_string())), + } +} + #[cfg(windows)] pub mod uwp { use super::*; diff --git a/backend/tauri/src/core/clash_api.rs b/backend/tauri/src/core/clash_api.rs index 4714371bbc..28255f2c6f 100644 --- a/backend/tauri/src/core/clash_api.rs +++ b/backend/tauri/src/core/clash_api.rs @@ -1,6 +1,7 @@ use crate::config::Config; use anyhow::{bail, Result}; use reqwest::header::HeaderMap; +use serde::{Deserialize, Serialize}; use serde_yaml::Mapping; use std::collections::HashMap; @@ -19,7 +20,7 @@ pub async fn put_configs(path: &str) -> Result<()> { match response.status().as_u16() { 204 => Ok(()), - status @ _ => { + status => { bail!("failed to put configs with status \"{status}\"") } } @@ -36,6 +37,31 @@ pub async fn patch_configs(config: &Mapping) -> Result<()> { Ok(()) } +#[derive(Default, Debug, Clone, Deserialize, Serialize)] +pub struct DelayRes { + delay: u64, +} + +/// GET /proxies/{name}/delay +/// 获取代理延迟 +pub async fn get_proxy_delay(name: String, test_url: Option) -> Result { + let (url, headers) = clash_client_info()?; + let url = format!("{url}/proxies/{name}/delay"); + let default_url = "http://www.gstatic.com/generate_204"; + let test_url = test_url + .map(|s| if s.is_empty() { default_url.into() } else { s }) + .unwrap_or(default_url.into()); + + let client = reqwest::ClientBuilder::new().no_proxy().build()?; + let builder = client + .get(&url) + .headers(headers) + .query(&[("timeout", "10000"), ("url", &test_url)]); + let response = builder.send().await?; + + Ok(response.json::().await?) +} + /// 根据clash info获取clash服务地址和请求头 fn clash_client_info() -> Result<(String, HeaderMap)> { let client = { Config::clash().data().get_client_info() }; @@ -56,12 +82,12 @@ fn clash_client_info() -> Result<(String, HeaderMap)> { /// 缩短clash的日志 pub fn parse_log(log: String) -> String { if log.starts_with("time=") && log.len() > 33 { - return (&log[33..]).to_owned(); + return log[33..].to_owned(); } if log.len() > 9 { - return (&log[9..]).to_owned(); + return log[9..].to_owned(); } - return log; + log } /// 缩短clash -t的错误输出 @@ -78,7 +104,7 @@ pub fn parse_check_output(log: String) -> String { }; if mr > m { - return (&log[e..mr]).to_owned(); + return log[e..mr].to_owned(); } } @@ -86,7 +112,7 @@ pub fn parse_check_output(log: String) -> String { let r = log.find("path=").or(Some(log.len())); if let (Some(l), Some(r)) = (l, r) { - return (&log[(l + 6)..(r - 1)]).to_owned(); + return log[(l + 6)..(r - 1)].to_owned(); } log diff --git a/backend/tauri/src/main.rs b/backend/tauri/src/main.rs index 702f80bb0b..f8de7fa2a3 100644 --- a/backend/tauri/src/main.rs +++ b/backend/tauri/src/main.rs @@ -46,6 +46,7 @@ fn main() -> std::io::Result<()> { cmds::get_runtime_yaml, cmds::get_runtime_exists, cmds::get_runtime_logs, + cmds::clash_api_get_proxy_delay, cmds::uwp::invoke_uwp_tool, // updater cmds::fetch_latest_core_versions, diff --git a/src/services/api.ts b/src/services/api.ts index f210c5e8cb..cf16fd26dc 100644 --- a/src/services/api.ts +++ b/src/services/api.ts @@ -65,7 +65,7 @@ export const getRules = async () => { /// Get Proxy delay export const getProxyDelay = async (name: string, url?: string) => { const params = { - timeout: 5000, + timeout: 10000, url: url || "http://www.gstatic.com/generate_204", }; const instance = await getAxios(); diff --git a/src/services/cmds.ts b/src/services/cmds.ts index 861741d58b..067c0571f4 100644 --- a/src/services/cmds.ts +++ b/src/services/cmds.ts @@ -212,3 +212,8 @@ export async function updateCore( export async function collectLogs() { return invoke("collect_logs"); } + +export async function cmdGetProxyDelay(name: string, url?: string) { + name = encodeURIComponent(name); + return invoke<{ delay: number }>("clash_api_get_proxy_delay", { name, url }); +} diff --git a/src/services/delay.ts b/src/services/delay.ts index 91e4ab8985..b613f7e55c 100644 --- a/src/services/delay.ts +++ b/src/services/delay.ts @@ -1,4 +1,5 @@ import { getProxyDelay } from "./api"; +import { cmdGetProxyDelay } from "./cmds"; const hashKey = (name: string, group: string) => `${group ?? ""}::${name}`; @@ -74,7 +75,7 @@ class DelayManager { try { const url = this.getUrl(group); - const result = await getProxyDelay(name, url); + const result = await cmdGetProxyDelay(name, url); delay = result.delay; } catch { delay = 1e6; // error @@ -84,7 +85,7 @@ class DelayManager { return delay; } - async checkListDelay(nameList: string[], group: string, concurrency = 6) { + async checkListDelay(nameList: string[], group: string, concurrency = 36) { const names = nameList.filter(Boolean); // 设置正在延迟测试中 names.forEach((name) => this.setDelay(name, group, -2)); From a509863cb6b726ef34738fc14492c8ca858c40c7 Mon Sep 17 00:00:00 2001 From: roy Date: Mon, 30 Oct 2023 00:38:28 +0800 Subject: [PATCH 3/4] feat: auto add dns according this method Author: roy Date: Mon Oct 30 00:38:28 2023 +0800 --- backend/tauri/src/config/clash.rs | 20 +++++++++++++ backend/tauri/src/core/core.rs | 47 +++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) diff --git a/backend/tauri/src/config/clash.rs b/backend/tauri/src/config/clash.rs index e146b248b7..9ccc52b961 100644 --- a/backend/tauri/src/config/clash.rs +++ b/backend/tauri/src/config/clash.rs @@ -129,6 +129,26 @@ impl IClashTemp { Err(_) => "127.0.0.1:9090".into(), } } + + pub fn get_tun_device_ip(&self) -> String { + let config = &self.0; + + let ip = config + .get("dns") + .and_then(|value| match value { + Value::Mapping(val_map) => Some(val_map.get("fake-ip-range").and_then( + |fake_ip_range| match fake_ip_range { + Value::String(ip_range_val) => Some(ip_range_val.replace("1/16", "2")), + _ => None, + }, + )), + _ => None, + }) + // 默认IP + .unwrap_or(Some("198.18.0.2".to_string())); + + ip.unwrap() + } } #[derive(Default, Debug, Clone, Deserialize, Serialize, PartialEq, Eq)] diff --git a/backend/tauri/src/core/core.rs b/backend/tauri/src/core/core.rs index 5caa24693f..5476317825 100644 --- a/backend/tauri/src/core/core.rs +++ b/backend/tauri/src/core/core.rs @@ -104,7 +104,31 @@ impl CoreManager { if should_kill { sleep(Duration::from_millis(500)).await; } + #[cfg(target_os = "macos")] + { + let enable_tun = Config::verge().latest().enable_tun_mode.clone(); + let enable_tun = enable_tun.unwrap_or(false); + + if enable_tun { + log::debug!(target: "app", "try to set system dns"); + match (|| async { + let tun_device_ip = Config::clash().clone().latest().get_tun_device_ip(); + // 执行 networksetup -setdnsservers Wi-Fi $tun_device_ip + Command::new("networksetup") + .args(["-setdnsservers", "Wi-Fi", tun_device_ip.as_str()]) + .output() + })() + .await + { + Ok(_) => return Ok(()), + Err(err) => { + // 修改这个值,免得stop出错 + log::error!(target: "app", "{err}"); + } + } + } + } #[cfg(target_os = "windows")] { use super::win_service; @@ -253,6 +277,29 @@ impl CoreManager { return Ok(()); } + #[cfg(target_os = "macos")] + { + let enable_tun = Config::verge().latest().enable_tun_mode.clone(); + let enable_tun = enable_tun.unwrap_or(false); + + if enable_tun { + log::debug!(target: "app", "try to set system dns"); + + match (|| { + // 执行 networksetup -setdnsservers Wi-Fi "Empty" + Command::new("networksetup") + .args(["-setdnsservers", "Wi-Fi", "Empty"]) + .output() + })() { + Ok(_) => return Ok(()), + Err(err) => { + // 修改这个值,免得stop出错 + *self.use_service_mode.lock() = false; + log::error!(target: "app", "{err}"); + } + } + } + } let mut sidecar = self.sidecar.lock(); if let Some(child) = sidecar.take() { log::debug!(target: "app", "stop the core by sidecar"); From e0430e15070458221a0a5856485332a51e8d7dd5 Mon Sep 17 00:00:00 2001 From: Jonson Petard <41122242+greenhat616@users.noreply.github.com> Date: Tue, 19 Dec 2023 20:14:10 +0800 Subject: [PATCH 4/4] fix(dialog): align center and overflow issue --- .stylelintrc.js | 6 +++++- src/components/base/base-dialog.module.scss | 5 +++++ src/components/base/base-dialog.tsx | 18 +++++++++++++++--- 3 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 src/components/base/base-dialog.module.scss diff --git a/.stylelintrc.js b/.stylelintrc.js index 8405bc6df7..8e4e085fe4 100644 --- a/.stylelintrc.js +++ b/.stylelintrc.js @@ -13,6 +13,10 @@ module.exports = { // 'stylelint-config-prettier' ], rules: { + "selector-pseudo-class-no-unknown": [ + true, + { ignorePseudoClasses: ["global"] }, + ], "font-family-name-quotes": null, "font-family-no-missing-generic-family-keyword": null, "max-nesting-depth": [ @@ -24,7 +28,7 @@ module.exports = { "declaration-block-no-duplicate-properties": true, "no-duplicate-selectors": true, "no-descending-specificity": null, - "selector-class-pattern": "^([a-z][a-z0-9]*)((-|__)[a-z0-9]+)*$", + "selector-class-pattern": null, "value-no-vendor-prefix": [true, { ignoreValues: ["box"] }], "at-rule-no-unknown": [ true, diff --git a/src/components/base/base-dialog.module.scss b/src/components/base/base-dialog.module.scss new file mode 100644 index 0000000000..e0ca825020 --- /dev/null +++ b/src/components/base/base-dialog.module.scss @@ -0,0 +1,5 @@ +.basePageTransition { + :global(.MuiDialog-paper) { + max-height: calc(100vh - 64px); + } +} diff --git a/src/components/base/base-dialog.tsx b/src/components/base/base-dialog.tsx index dfe428e38c..55b8623f7b 100644 --- a/src/components/base/base-dialog.tsx +++ b/src/components/base/base-dialog.tsx @@ -1,3 +1,4 @@ +import { classNames } from "@/utils"; import { LoadingButton } from "@mui/lab"; import { Button, @@ -11,6 +12,8 @@ import { import { TransitionProps } from "@mui/material/transitions"; import { AnimatePresence, motion } from "framer-motion"; import React, { ReactNode } from "react"; +import styles from "./base-dialog.module.scss"; + interface Props { title: ReactNode; open: boolean; @@ -50,7 +53,6 @@ export function BaseDialog(props: Props) { return ( {inProp && (