From 5feb4dbc8b057d86997b2a488b021435aca1e937 Mon Sep 17 00:00:00 2001 From: Asmir Avdicevic Date: Thu, 14 Nov 2024 22:52:44 +0100 Subject: [PATCH 01/25] chore: prune some deps --- Cargo.lock | 549 +++++++++++++++++++++++++------- iroh-base/Cargo.toml | 6 +- iroh-dns-server/Cargo.toml | 26 +- iroh-metrics/Cargo.toml | 2 +- iroh-net/Cargo.toml | 24 +- iroh-net/bench/Cargo.toml | 2 +- iroh-relay/Cargo.toml | 12 +- iroh-router/Cargo.toml | 6 +- iroh/Cargo.toml | 8 +- net-tools/netwatch/Cargo.toml | 13 +- net-tools/portmapper/Cargo.toml | 6 +- 11 files changed, 476 insertions(+), 178 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a511cede31..04ba4466f9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -163,7 +163,7 @@ dependencies = [ "nom", "num-traits", "rusticata-macros", - "thiserror 1.0.69", + "thiserror 1.0.68", "time", ] @@ -547,6 +547,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "cfg_aliases" version = "0.2.1" @@ -643,7 +649,7 @@ version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "syn 2.0.87", @@ -657,13 +663,11 @@ checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7" [[package]] name = "clipboard-win" -version = "4.5.0" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" +checksum = "15efe7a882b08f34e38556b14f2fb3daa98769d06c7f0c1b076dfd0d983bc892" dependencies = [ "error-code", - "str-buf", - "winapi", ] [[package]] @@ -707,7 +711,20 @@ dependencies = [ "crossterm", "strum 0.26.3", "strum_macros 0.26.4", - "unicode-width 0.2.0", + "unicode-width", +] + +[[package]] +name = "compact_str" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f86b9c4c00838774a6d902ef931eff7470720c51d90c2e32cfe15dc304737b3f" +dependencies = [ + "castaway", + "cfg-if", + "itoa", + "ryu", + "static_assertions", ] [[package]] @@ -872,8 +889,11 @@ checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" dependencies = [ "bitflags 2.6.0", "crossterm_winapi", + "libc", + "mio 0.8.11", "parking_lot", - "rustix", + "signal-hook", + "signal-hook-mio", "winapi", ] @@ -1095,6 +1115,19 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "dialoguer" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de" +dependencies = [ + "console", + "shell-words", + "tempfile", + "thiserror 1.0.68", + "zeroize", +] + [[package]] name = "diatomic-waker" version = "0.2.3" @@ -1302,7 +1335,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "syn 2.0.87", @@ -1374,13 +1407,9 @@ dependencies = [ [[package]] name = "error-code" -version = "2.3.1" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21" -dependencies = [ - "libc", - "str-buf", -] +checksum = "a5d9305ccc6942a704f4335694ecd3de2ea531b114ac2d51f5f843750787a92f" [[package]] name = "event-listener" @@ -1437,13 +1466,13 @@ checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" [[package]] name = "fd-lock" -version = "3.0.13" +version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef033ed5e9bad94e55838ca0ca906db0e043f517adda0c8b79c7a8c66c93c1b5" +checksum = "7e5768da2206272c81ef0b5e951a41862938a6070da63bcea197899942d3b947" dependencies = [ "cfg-if", "rustix", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -1508,7 +1537,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8835f84f38484cc86f110a805655697908257fb9a7af005234060891557198e9" dependencies = [ "nonempty", - "thiserror 1.0.69", + "thiserror 1.0.68", ] [[package]] @@ -1834,12 +1863,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - [[package]] name = "heck" version = "0.5.0" @@ -1881,7 +1904,7 @@ dependencies = [ "ipnet", "once_cell", "rand", - "thiserror 1.0.69", + "thiserror 1.0.68", "tinyvec", "tokio", "tracing", @@ -1911,7 +1934,7 @@ dependencies = [ "rustls", "rustls-pemfile", "serde", - "thiserror 1.0.69", + "thiserror 1.0.68", "time", "tinyvec", "tokio", @@ -1937,7 +1960,7 @@ dependencies = [ "lru-cache", "parking_lot", "serde", - "thiserror 1.0.69", + "thiserror 1.0.68", "tokio", "tracing", ] @@ -1960,7 +1983,7 @@ dependencies = [ "rustls", "serde", "smallvec", - "thiserror 1.0.69", + "thiserror 1.0.68", "tokio", "tokio-rustls", "tracing", @@ -1984,7 +2007,7 @@ dependencies = [ "prefix-trie", "rustls", "serde", - "thiserror 1.0.69", + "thiserror 1.0.68", "time", "tokio", "tokio-rustls", @@ -2422,6 +2445,12 @@ dependencies = [ "web-time", ] +[[package]] +name = "indoc" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5" + [[package]] name = "inout" version = "0.1.3" @@ -2440,6 +2469,20 @@ dependencies = [ "smallvec", ] +[[package]] +name = "instability" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b829f37dead9dc39df40c2d3376c179fdfd2ac771f53f55d3c30dc096a3c0c6e" +dependencies = [ + "darling", + "indoc", + "pretty_assertions", + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "instant" version = "0.1.13" @@ -2511,11 +2554,11 @@ dependencies = [ "serde", "serde-error", "serde_json", - "strum 0.25.0", + "strum", "tempfile", "testdir", "testresult", - "thiserror 1.0.69", + "thiserror 1.0.68", "tokio", "tokio-stream", "tokio-util", @@ -2549,7 +2592,7 @@ dependencies = [ "serde_json", "serde_test", "ssh-key", - "thiserror 1.0.69", + "thiserror 1.0.68", "ttl_cache", "url", "zeroize", @@ -2568,6 +2611,118 @@ dependencies = [ "constant_time_eq", ] +[[package]] +name = "iroh-blobs" +version = "0.28.1" +source = "git+https://github.com/n0-computer/iroh-blobs?branch=main#cdcb863d7c75cdd7258c8f5001154272df7460c0" +dependencies = [ + "anyhow", + "async-channel", + "bao-tree", + "bytes", + "chrono", + "clap", + "console", + "derive_more", + "futures-buffered", + "futures-lite 2.5.0", + "futures-util", + "genawaiter", + "hashlink", + "hex", + "indicatif", + "iroh-base", + "iroh-io", + "iroh-metrics", + "iroh-net", + "iroh-quinn", + "iroh-router", + "nested_enum_utils", + "num_cpus", + "oneshot", + "parking_lot", + "portable-atomic", + "postcard", + "quic-rpc", + "quic-rpc-derive", + "rand", + "range-collections", + "redb 1.5.1", + "redb 2.2.0", + "ref-cast", + "reflink-copy", + "self_cell", + "serde", + "serde-error", + "smallvec", + "strum 0.26.3", + "tempfile", + "thiserror 2.0.3", + "tokio", + "tokio-util", + "tracing", + "tracing-futures", + "walkdir", +] + +[[package]] +name = "iroh-cli" +version = "0.28.1" +dependencies = [ + "anyhow", + "async-channel", + "bao-tree", + "bytes", + "clap", + "colored", + "comfy-table", + "console", + "crossterm", + "derive_more", + "dialoguer", + "duct", + "futures-buffered", + "futures-lite 2.5.0", + "futures-util", + "hex", + "human-time", + "indicatif", + "iroh", + "iroh-blobs", + "iroh-docs", + "iroh-gossip", + "iroh-metrics", + "iroh-net-report", + "iroh-node-util", + "nix 0.27.1", + "parking_lot", + "pkarr", + "portable-atomic", + "portmapper", + "postcard", + "quic-rpc", + "rand", + "rand_xorshift", + "ratatui", + "regex", + "reqwest", + "rustyline", + "serde", + "shell-words", + "shellexpand", + "strum 0.26.3", + "tempfile", + "testdir", + "thiserror 1.0.68", + "time", + "tokio", + "tokio-util", + "toml", + "tracing", + "url", + "walkdir", +] + [[package]] name = "iroh-dns-server" version = "0.28.0" @@ -2601,7 +2756,7 @@ dependencies = [ "rustls-pemfile", "serde", "struct_iterable", - "strum 0.26.3", + "strum", "tokio", "tokio-rustls", "tokio-rustls-acme", @@ -2617,6 +2772,90 @@ dependencies = [ "z32", ] +[[package]] +name = "iroh-docs" +version = "0.28.0" +source = "git+https://github.com/n0-computer/iroh-docs?branch=main#d4ab8db452bbefe7aab45ed25621dde6b6ee3f15" +dependencies = [ + "anyhow", + "async-channel", + "bytes", + "clap", + "colored", + "console", + "derive_more", + "dialoguer", + "ed25519-dalek", + "futures-buffered", + "futures-lite 2.5.0", + "futures-util", + "hex", + "indicatif", + "iroh-base", + "iroh-blake3", + "iroh-blobs", + "iroh-gossip", + "iroh-metrics", + "iroh-net", + "iroh-router", + "nested_enum_utils", + "num_enum", + "portable-atomic", + "postcard", + "quic-rpc", + "quic-rpc-derive", + "rand", + "rand_core", + "redb 1.5.1", + "redb 2.2.0", + "self_cell", + "serde", + "serde-error", + "shellexpand", + "strum 0.26.3", + "tempfile", + "thiserror 2.0.3", + "tokio", + "tokio-stream", + "tokio-util", + "tracing", +] + +[[package]] +name = "iroh-gossip" +version = "0.28.1" +source = "git+https://github.com/n0-computer/iroh-gossip?branch=main#7c90c3f351585e7a364bfbf3941d07592b20dec6" +dependencies = [ + "anyhow", + "async-channel", + "bytes", + "clap", + "derive_more", + "ed25519-dalek", + "futures-concurrency", + "futures-lite 2.5.0", + "futures-util", + "hex", + "indexmap 2.6.0", + "iroh-base", + "iroh-blake3", + "iroh-metrics", + "iroh-net", + "iroh-router", + "nested_enum_utils", + "postcard", + "quic-rpc", + "quic-rpc-derive", + "rand", + "rand_core", + "serde", + "serde-error", + "strum 0.26.3", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "iroh-io" version = "0.6.1" @@ -2718,12 +2957,12 @@ dependencies = [ "serde_json", "smallvec", "socket2", - "strum 0.26.3", + "strum", "stun-rs", "surge-ping", "swarm-discovery", "testresult", - "thiserror 1.0.69", + "thiserror 1.0.68", "time", "tokio", "tokio-rustls", @@ -2737,7 +2976,7 @@ dependencies = [ "url", "watchable", "webpki-roots", - "windows 0.51.1", + "windows 0.52.0", "wmi", "x509-parser", "z32", @@ -2835,7 +3074,7 @@ dependencies = [ "rustc-hash", "rustls", "socket2", - "thiserror 1.0.69", + "thiserror 1.0.68", "tokio", "tracing", ] @@ -2853,7 +3092,7 @@ dependencies = [ "rustls", "rustls-platform-verifier", "slab", - "thiserror 1.0.69", + "thiserror 1.0.68", "tinyvec", "tracing", ] @@ -2919,7 +3158,7 @@ dependencies = [ "smallvec", "socket2", "stun-rs", - "thiserror 1.0.69", + "thiserror 1.0.68", "time", "tokio", "tokio-rustls", @@ -2987,6 +3226,24 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.11" @@ -3003,7 +3260,7 @@ dependencies = [ "combine", "jni-sys", "log", - "thiserror 1.0.69", + "thiserror 1.0.68", "walkdir", ] @@ -3033,9 +3290,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.164" +version = "0.2.161" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f" +checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" [[package]] name = "libm" @@ -3140,7 +3397,7 @@ dependencies = [ "serde_bencode", "serde_bytes", "sha1_smol", - "thiserror 1.0.69", + "thiserror 1.0.68", "tracing", ] @@ -3212,6 +3469,7 @@ checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ "hermit-abi 0.3.9", "libc", + "log", "wasi", "windows-sys 0.52.0", ] @@ -3288,7 +3546,7 @@ dependencies = [ "anyhow", "byteorder", "paste", - "thiserror 1.0.69", + "thiserror 1.0.68", ] [[package]] @@ -3302,7 +3560,7 @@ dependencies = [ "log", "netlink-packet-core", "netlink-sys", - "thiserror 1.0.69", + "thiserror 1.0.68", "tokio", ] @@ -3340,12 +3598,12 @@ dependencies = [ "rtnetlink", "serde", "socket2", - "thiserror 1.0.69", + "thiserror 1.0.68", "time", "tokio", "tokio-util", "tracing", - "windows 0.51.1", + "windows 0.52.0", "wmi", ] @@ -3369,6 +3627,17 @@ dependencies = [ "libc", ] +[[package]] +name = "nix" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "libc", +] + [[package]] name = "no-std-compat" version = "0.4.1" @@ -3733,7 +4002,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" dependencies = [ "memchr", - "thiserror 1.0.69", + "thiserror 1.0.68", "ucd-trie", ] @@ -3821,7 +4090,7 @@ dependencies = [ "rand", "self_cell", "simple-dns", - "thiserror 1.0.69", + "thiserror 1.0.68", "tracing", "ureq", "wasm-bindgen", @@ -3959,7 +4228,7 @@ dependencies = [ "serde", "smallvec", "socket2", - "thiserror 1.0.69", + "thiserror 1.0.68", "time", "tokio", "tokio-util", @@ -4243,7 +4512,7 @@ dependencies = [ "rustc-hash", "rustls", "socket2", - "thiserror 2.0.3", + "thiserror 1.0.68", "tokio", "tracing", ] @@ -4262,7 +4531,7 @@ dependencies = [ "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.3", + "thiserror 1.0.68", "tinyvec", "tracing", "web-time", @@ -4274,7 +4543,7 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d5a626c6807713b15cac82a6acaccd6043c9a5408c24baae07611fec3f243da" dependencies = [ - "cfg_aliases", + "cfg_aliases 0.2.1", "libc", "once_cell", "socket2", @@ -4362,6 +4631,26 @@ dependencies = [ "smallvec", ] +[[package]] +name = "ratatui" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f44c9e68fd46eda15c646fbb85e1040b657a58cdc8c98db1d97a55930d991eef" +dependencies = [ + "bitflags 2.6.0", + "cassowary", + "compact_str", + "crossterm", + "itertools 0.12.1", + "lru", + "paste", + "stability", + "strum 0.26.3", + "unicode-segmentation", + "unicode-truncate", + "unicode-width", +] + [[package]] name = "raw-cpuid" version = "11.2.0" @@ -4442,7 +4731,7 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom", "libredox", - "thiserror 1.0.69", + "thiserror 1.0.68", ] [[package]] @@ -4465,6 +4754,17 @@ dependencies = [ "syn 2.0.87", ] +[[package]] +name = "reflink-copy" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc31414597d1cd7fdd2422798b7652a6329dda0fe0219e6335a13d5bcaa9aeb6" +dependencies = [ + "cfg-if", + "rustix", + "windows 0.58.0", +] + [[package]] name = "regex" version = "1.11.1" @@ -4626,8 +4926,8 @@ dependencies = [ "netlink-packet-utils", "netlink-proto", "netlink-sys", - "nix", - "thiserror 1.0.69", + "nix 0.26.4", + "thiserror 1.0.68", "tokio", ] @@ -4663,9 +4963,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.41" +version = "0.38.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" +checksum = "375116bee2be9ed569afe2154ea6a99dfdffd257f533f187498c2a8f5feaf4ee" dependencies = [ "bitflags 2.6.0", "errno", @@ -4778,9 +5078,9 @@ dependencies = [ [[package]] name = "rustyline" -version = "12.0.0" +version = "14.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "994eca4bca05c87e86e15d90fc7a91d1be64b4482b38cb2d27474568fe7c9db9" +checksum = "7803e8936da37efd9b6d4478277f4b2b9bb5cdb37a113e8d63222e58da647e63" dependencies = [ "bitflags 2.6.0", "cfg-if", @@ -4790,13 +5090,12 @@ dependencies = [ "libc", "log", "memchr", - "nix", + "nix 0.26.4", "radix_trie", - "scopeguard", "unicode-segmentation", "unicode-width 0.1.14", "utf8parse", - "winapi", + "windows-sys 0.52.0", ] [[package]] @@ -5090,6 +5389,27 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "signal-hook" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd" +dependencies = [ + "libc", + "mio 0.8.11", + "signal-hook", +] + [[package]] name = "signal-hook-registry" version = "1.4.2" @@ -5225,6 +5545,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + [[package]] name = "str-buf" version = "1.0.6" @@ -5266,35 +5592,13 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9426b2a0c03e6cc2ea8dbc0168dbbf943f88755e409fb91bcb8f6a268305f4a" -[[package]] -name = "strum" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" -dependencies = [ - "strum_macros 0.25.3", -] - [[package]] name = "strum" version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" dependencies = [ - "strum_macros 0.26.4", -] - -[[package]] -name = "strum_macros" -version = "0.25.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" -dependencies = [ - "heck 0.4.1", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.87", + "strum_macros", ] [[package]] @@ -5303,7 +5607,7 @@ version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "rustversion", @@ -5351,7 +5655,7 @@ dependencies = [ "pnet_packet", "rand", "socket2", - "thiserror 1.0.69", + "thiserror 1.0.68", "tokio", "tracing", ] @@ -5504,23 +5808,25 @@ version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl 1.0.69", + "thiserror-impl 1.0.68", ] [[package]] -name = "thiserror" -version = "2.0.3" +name = "thiserror-impl" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ - "thiserror-impl 2.0.3", + "proc-macro2", + "quote", + "syn 2.0.87", ] [[package]] name = "thiserror-impl" -version = "1.0.69" +version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e" dependencies = [ "proc-macro2", "quote", @@ -5677,7 +5983,7 @@ dependencies = [ "rustls", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.68", "time", "tokio", "tokio-rustls", @@ -5735,7 +6041,7 @@ dependencies = [ "http 1.1.0", "httparse", "js-sys", - "thiserror 1.0.69", + "thiserror 1.0.68", "tokio", "tokio-tungstenite", "wasm-bindgen", @@ -5825,15 +6131,14 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.5.2" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" +checksum = "8437150ab6bbc8c5f0f519e3d5ed4aa883a83dd4cdd3d1b21f9482936046cb97" dependencies = [ "bitflags 2.6.0", "bytes", "http 1.1.0", "http-body", - "http-body-util", "pin-project-lite", "tower-layer", "tower-service", @@ -5863,7 +6168,7 @@ dependencies = [ "governor", "http 1.1.0", "pin-project", - "thiserror 1.0.69", + "thiserror 1.0.68", "tower 0.4.13", "tracing", ] @@ -5887,7 +6192,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" dependencies = [ "crossbeam-channel", - "thiserror 1.0.69", + "thiserror 1.0.68", "time", "tracing-subscriber", ] @@ -5972,7 +6277,7 @@ dependencies = [ "log", "rand", "sha1", - "thiserror 1.0.69", + "thiserror 1.0.68", "url", "utf-8", ] @@ -6035,7 +6340,18 @@ checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" name = "unicode-width" version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" +checksum = "b3644627a5af5fa321c95b9b235a72fd24cd29c648c2c379431e6628655627bf" +dependencies = [ + "itertools 0.13.0", + "unicode-segmentation", + "unicode-width", +] + +[[package]] +name = "unicode-width" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" [[package]] name = "unicode-width" @@ -6250,7 +6566,7 @@ dependencies = [ "event-listener 4.0.3", "futures-util", "parking_lot", - "thiserror 1.0.69", + "thiserror 1.0.68", ] [[package]] @@ -6341,12 +6657,12 @@ dependencies = [ [[package]] name = "windows" -version = "0.51.1" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" dependencies = [ - "windows-core 0.51.1", - "windows-targets 0.48.5", + "windows-core 0.52.0", + "windows-targets 0.52.6", ] [[package]] @@ -6359,15 +6675,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-core" -version = "0.51.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" -dependencies = [ - "windows-targets 0.48.5", -] - [[package]] name = "windows-core" version = "0.52.0" @@ -6619,7 +6926,7 @@ dependencies = [ "futures", "log", "serde", - "thiserror 1.0.69", + "thiserror 1.0.68", "windows 0.58.0", "windows-core 0.58.0", ] @@ -6649,7 +6956,7 @@ dependencies = [ "nom", "oid-registry", "rusticata-macros", - "thiserror 1.0.69", + "thiserror 1.0.68", "time", ] diff --git a/iroh-base/Cargo.toml b/iroh-base/Cargo.toml index f2b7fc1d0e..6fc831d8b8 100644 --- a/iroh-base/Cargo.toml +++ b/iroh-base/Cargo.toml @@ -36,15 +36,15 @@ ssh-key = { version = "0.6.0", features = ["ed25519", "std", "rand_core"], optio ttl_cache = { version = "0.5.1", optional = true } crypto_box = { version = "0.9.1", features = ["serde", "chacha20"], optional = true } zeroize = { version = "1.5", optional = true } -url = { version = "2.5.0", features = ["serde"], optional = true } +url = { version = "2.5", features = ["serde"], optional = true } # wasm getrandom = { version = "0.2", default-features = false, optional = true } [dev-dependencies] iroh-test = "0.28.0" proptest = "1.0.0" -serde_json = "1.0.107" -serde_test = "1.0.176" +serde_json = "1" +serde_test = "1" [features] default = ["hash", "base32", "relay"] diff --git a/iroh-dns-server/Cargo.toml b/iroh-dns-server/Cargo.toml index a0a298554d..78af5ed169 100644 --- a/iroh-dns-server/Cargo.toml +++ b/iroh-dns-server/Cargo.toml @@ -12,7 +12,7 @@ readme = "README.md" [dependencies] anyhow = "1.0.80" async-trait = "0.1.77" -axum = { version = "0.7.4", features = ["macros"] } +axum = { version = "0.7", features = ["macros"] } axum-server = { version = "0.7", features = ["tls-rustls-no-provider"] } base64-url = "2.0.2" bytes = "1.7" @@ -24,7 +24,7 @@ derive_more = { version = "1.0.0", features = [ "from", ] } dirs-next = "2.0.0" -futures-lite = "2.3.0" +futures-lite = "2.5" governor = "0.6.3" hickory-proto = "=0.25.0-alpha.2" hickory-server = { version = "=0.25.0-alpha.2", features = ["dns-over-rustls"] } @@ -33,19 +33,15 @@ iroh-metrics = { version = "0.28.0" } lru = "0.12.3" mainline = "2.0.1" parking_lot = "0.12.1" -pkarr = { version = "2.2.0", features = [ - "async", - "relay", - "dht", -], default-features = false } -rcgen = "0.13" +pkarr = { version = "2.2.0", features = [ "async", "relay", "dht"], default-features = false } +rcgen = "0.12.1" redb = "2.0.0" regex = "1.10.3" rustls = { version = "0.23", default-features = false, features = ["ring"] } rustls-pemfile = { version = "2.1" } -serde = { version = "1.0.197", features = ["derive"] } +serde = { version = "1", features = ["derive"] } struct_iterable = "0.1.1" -strum = { version = "0.26.1", features = ["derive"] } +strum = { version = "0.26", features = ["derive"] } tokio = { version = "1.36.0", features = ["full"] } tokio-rustls = { version = "0.26", default-features = false, features = [ "logging", @@ -53,14 +49,14 @@ tokio-rustls = { version = "0.26", default-features = false, features = [ ] } tokio-rustls-acme = { version = "0.4", features = ["axum"] } tokio-stream = "0.1.14" -tokio-util = "0.7.10" +tokio-util = "0.7" toml = "0.8.10" -tower-http = { version = "0.5.2", features = ["cors", "trace"] } -tower_governor = "0.3.2" -tracing = "0.1.40" +tower-http = { version = "0.6.1", features = ["cors", "trace"] } +tower_governor = "0.3" +tracing = "0.1" tracing-subscriber = "0.3.18" ttl_cache = "0.5.1" -url = "2.5.0" +url = "2.5" z32 = "1.1.1" [dev-dependencies] diff --git a/iroh-metrics/Cargo.toml b/iroh-metrics/Cargo.toml index c500e3845e..2a34c39f2f 100644 --- a/iroh-metrics/Cargo.toml +++ b/iroh-metrics/Cargo.toml @@ -23,7 +23,7 @@ hyper-util = { version = "0.1.1", features = ["tokio"] } once_cell = "1.17.0" prometheus-client = { version = "0.22", optional = true } reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } -serde = { version = "1.0", features = ["derive"] } +serde = { version = "1", features = ["derive"] } struct_iterable = "0.1" time = { version = "0.3.21", features = ["serde-well-known"] } tokio = { version = "1", features = ["rt", "net", "fs"]} diff --git a/iroh-net/Cargo.toml b/iroh-net/Cargo.toml index d84d95e754..a8a9d58c9f 100644 --- a/iroh-net/Cargo.toml +++ b/iroh-net/Cargo.toml @@ -19,7 +19,7 @@ workspace = true cc = "=1.1.31" # enforce cc version, because of https://github.com/rust-lang/cc-rs/issues/1278 anyhow = { version = "1" } -axum = { version = "0.7.4", optional = true } +axum = { version = "0.7", optional = true } backoff = "0.4.0" base64 = "0.22.1" bytes = "1.7" @@ -33,10 +33,10 @@ derive_more = { version = "1.0.0", features = [ "deref", ] } futures-buffered = "0.2.8" -futures-concurrency = "7.6.0" -futures-lite = "2.3" -futures-sink = "0.3.25" -futures-util = "0.3.25" +futures-concurrency = "7.6" +futures-lite = "2.5" +futures-sink = "0.3" +futures-util = "0.3" governor = "0.6.0" hex = "0.4.3" hickory-proto = "=0.25.0-alpha.2" @@ -102,13 +102,13 @@ tokio-rustls = { version = "0.26", default-features = false, features = [ tokio-stream = { version = "0.1.15" } tokio-tungstenite = "0.21" tokio-tungstenite-wasm = "0.3" -tokio-util = { version = "0.7.12", features = ["io-util", "io", "codec", "rt"] } +tokio-util = { version = "0.7", features = ["io-util", "io", "codec", "rt"] } tracing = "0.1" tracing-subscriber = { version = "0.3", features = [ "env-filter", ], optional = true } tungstenite = "0.21" -url = { version = "2.4", features = ["serde"] } +url = { version = "2.5", features = ["serde"] } watchable = "1.1.2" webpki = { package = "rustls-webpki", version = "0.102" } webpki-roots = "0.26" @@ -118,13 +118,13 @@ net-report = { package = "iroh-net-report", path = "../iroh-net-report", version # metrics iroh-metrics = { version = "0.28.0", default-features = false } -strum = { version = "0.26.2", features = ["derive"] } +strum = { version = "0.26", features = ["derive"] } # local-swarm-discovery swarm-discovery = { version = "0.2.1", optional = true } # dht_discovery -genawaiter = { version = "0.99.1", features = ["futures03"], optional = true } +genawaiter = { version = "0.99", features = ["futures03"], optional = true } [target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies] netlink-packet-core = "0.7.0" @@ -134,7 +134,7 @@ rtnetlink = "0.13.0" [target.'cfg(target_os = "windows")'.dependencies] wmi = "0.13" -windows = { version = "0.51", features = [ +windows = { version = "0.52", features = [ "Win32_NetworkManagement_IpHelper", "Win32_Foundation", "Win32_NetworkManagement_Ndis", @@ -142,7 +142,7 @@ windows = { version = "0.51", features = [ ] } [dev-dependencies] -axum = { version = "0.7.4" } +axum = { version = "0.7" } clap = { version = "4", features = ["derive"] } criterion = "0.5.1" crypto_box = { version = "0.9.1", features = ["serde", "chacha20"] } @@ -161,7 +161,7 @@ tokio = { version = "1", features = [ tracing-subscriber = { version = "0.3", features = ["env-filter"] } iroh-test = "0.28.0" iroh-net = { path = "." } -serde_json = "1.0.107" +serde_json = "1" testresult = "0.4.0" mainline = "2.0.1" iroh-relay = { version = "0.28", path = "../iroh-relay", features = ["test-utils", "server"] } diff --git a/iroh-net/bench/Cargo.toml b/iroh-net/bench/Cargo.toml index 9a9bbfe3fe..11bf0b7d3d 100644 --- a/iroh-net/bench/Cargo.toml +++ b/iroh-net/bench/Cargo.toml @@ -25,7 +25,7 @@ tracing-subscriber = { version = "0.3.0", default-features = false, features = [ "local-time", ] } socket2 = "0.5" -futures-lite = "2.3.0" +futures-lite = "2.5" [features] default = [] diff --git a/iroh-relay/Cargo.toml b/iroh-relay/Cargo.toml index 3f24f2a717..befa2fe904 100644 --- a/iroh-relay/Cargo.toml +++ b/iroh-relay/Cargo.toml @@ -26,9 +26,9 @@ derive_more = { version = "1.0.0", features = [ "deref", ] } futures-buffered = "0.2.9" -futures-lite = "2.3" -futures-sink = "0.3.25" -futures-util = "0.3.25" +futures-lite = "2.5" +futures-sink = "0.3" +futures-util = "0.3" governor = "0.6.0" hex = "0.4.3" hickory-proto = "=0.25.0-alpha.2" @@ -83,14 +83,14 @@ tokio-rustls = { version = "0.26", default-features = false, features = [ tokio-rustls-acme = { version = "0.4", optional = true } tokio-tungstenite = "0.21" tokio-tungstenite-wasm = "0.3" -tokio-util = { version = "0.7.12", features = ["io-util", "io", "codec", "rt"] } +tokio-util = { version = "0.7", features = ["io-util", "io", "codec", "rt"] } toml = { version = "0.8", optional = true } tracing = "0.1" tracing-subscriber = { version = "0.3", features = [ "env-filter", ], optional = true } tungstenite = "0.21" -url = { version = "2.4", features = ["serde"] } +url = { version = "2.5", features = ["serde"] } webpki = { package = "rustls-webpki", version = "0.102" } webpki-roots = "0.26" @@ -111,7 +111,7 @@ tokio = { version = "1", features = [ ] } tracing-subscriber = { version = "0.3", features = ["env-filter"] } iroh-test = "0.28.0" -serde_json = "1.0.107" +serde_json = "1" [build-dependencies] duct = "0.13.6" diff --git a/iroh-router/Cargo.toml b/iroh-router/Cargo.toml index 547431f819..25866000c5 100644 --- a/iroh-router/Cargo.toml +++ b/iroh-router/Cargo.toml @@ -13,12 +13,12 @@ keywords = ["quic", "networking", "holepunching", "p2p"] [dependencies] anyhow = "1.0.91" futures-buffered = "0.2.9" -futures-lite = "2.3.0" +futures-lite = "2.5" futures-util = "0.3.31" iroh-net = { version = "0.28.1", path = "../iroh-net" } tokio = "1.41.0" -tokio-util = "0.7.12" -tracing = "0.1.40" +tokio-util = "0.7" +tracing = "0.1" # Examples clap = { version = "4", features = ["derive"], optional = true } diff --git a/iroh/Cargo.toml b/iroh/Cargo.toml index 392256c730..a58042df11 100644 --- a/iroh/Cargo.toml +++ b/iroh/Cargo.toml @@ -27,7 +27,7 @@ derive_more = { version = "1.0.0", features = [ "try_into", "from_str", ] } -futures-lite = "2.3" +futures-lite = "2.5" futures-util = "0.3" iroh-base = { version = "0.28.0", features = ["key"] } iroh-io = { version = "0.6.0", features = ["stats"] } @@ -50,7 +50,7 @@ quic-rpc = { version = "0.15", default-features = false, features = [ quic-rpc-derive = { version = "0.15" } quinn = { package = "iroh-quinn", version = "0.12" } serde = { version = "1", features = ["derive"] } -strum = { version = "0.25", features = ["derive"] } +strum = { version = "0.26", features = ["derive"] } thiserror = "1" tempfile = "3.4" tokio = { version = "1", features = ["io-util", "rt"] } @@ -65,7 +65,7 @@ indicatif = { version = "0.17", features = ["tokio"], optional = true } parse-size = { version = "=1.0.0", optional = true } # pinned version to avoid bumping msrv to 1.81 # Documentation tests -url = { version = "2.5.0", features = ["serde"] } +url = { version = "2.5", features = ["serde"] } serde-error = "0.1.3" [features] @@ -88,7 +88,7 @@ proptest = "1.2.0" rand = "0.8" rand_chacha = "0.3.1" regex = { version = "1.7.1", features = ["std"] } -serde_json = "1.0.107" +serde_json = "1" testdir = "0.9.1" testresult = "0.4.0" tokio = { version = "1", features = ["macros", "io-util", "rt"] } diff --git a/net-tools/netwatch/Cargo.toml b/net-tools/netwatch/Cargo.toml index 2a0050666d..e1dd3e9be2 100644 --- a/net-tools/netwatch/Cargo.toml +++ b/net-tools/netwatch/Cargo.toml @@ -16,9 +16,9 @@ workspace = true anyhow = { version = "1" } atomic-waker = "1.1.2" bytes = "1.7" -futures-lite = "2.3" -futures-sink = "0.3.25" -futures-util = "0.3.25" +futures-lite = "2.5" +futures-sink = "0.3" +futures-util = "0.3" libc = "0.2.139" netdev = "0.30.0" once_cell = "1.18.0" @@ -49,12 +49,7 @@ rtnetlink = "0.13.0" [target.'cfg(target_os = "windows")'.dependencies] wmi = "0.13" -windows = { version = "0.51", features = [ - "Win32_NetworkManagement_IpHelper", - "Win32_Foundation", - "Win32_NetworkManagement_Ndis", - "Win32_Networking_WinSock", -] } +windows = { version = "0.52", features = ["Win32_NetworkManagement_IpHelper", "Win32_Foundation", "Win32_NetworkManagement_Ndis", "Win32_Networking_WinSock"] } serde = { version = "1", features = ["derive"] } derive_more = { version = "1.0.0", features = ["debug"] } diff --git a/net-tools/portmapper/Cargo.toml b/net-tools/portmapper/Cargo.toml index f75d09fcae..ce91382178 100644 --- a/net-tools/portmapper/Cargo.toml +++ b/net-tools/portmapper/Cargo.toml @@ -17,7 +17,7 @@ anyhow = { version = "1" } base64 = "0.22.1" bytes = "1.7" derive_more = { version = "1.0.0", features = ["debug", "display", "from", "try_into", "deref"] } -futures-lite = "2.3" +futures-lite = "2.5" futures-util = "0.3.25" igd-next = { version = "0.15.1", features = ["aio_tokio"] } iroh-metrics = { version = "0.28.0", default-features = false } @@ -31,9 +31,9 @@ socket2 = "0.5.3" thiserror = "1" time = "0.3.20" tokio = { version = "1", features = ["io-util", "macros", "sync", "rt", "net", "fs", "io-std", "signal", "process"] } -tokio-util = { version = "0.7.12", features = ["io-util", "io", "codec", "rt"] } +tokio-util = { version = "0.7", features = ["io-util", "io", "codec", "rt"] } tracing = "0.1" -url = { version = "2.4", features = ["serde"] } +url = { version = "2.5", features = ["serde"] } [dev-dependencies] ntest = "0.9" From 761178e47f94ca4474cbd108edd9a5b4a979a7d6 Mon Sep 17 00:00:00 2001 From: Asmir Avdicevic Date: Fri, 15 Nov 2024 12:51:08 +0100 Subject: [PATCH 02/25] another pass --- Cargo.lock | 193 ++++++++++++++++------ iroh-dns-server/Cargo.toml | 7 +- iroh-dns-server/src/http/rate_limiting.rs | 12 +- iroh-dns-server/src/lib.rs | 4 +- iroh-dns-server/src/store.rs | 3 +- iroh-net/Cargo.toml | 18 +- iroh-net/bench/Cargo.toml | 2 +- iroh-net/src/discovery/pkarr/dht.rs | 4 +- iroh-relay/Cargo.toml | 7 +- iroh-relay/src/server/http_server.rs | 6 +- iroh-relay/src/server/streams.rs | 2 +- net-tools/netwatch/Cargo.toml | 10 +- net-tools/netwatch/src/interfaces.rs | 20 +-- net-tools/netwatch/src/ip.rs | 4 +- 14 files changed, 190 insertions(+), 102 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 04ba4466f9..6321be2b4d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -401,11 +401,11 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64-url" -version = "2.0.2" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb9fb9fb058cc3063b5fc88d9a21eefa2735871498a04e1650da76ed511c8569" +checksum = "38e2b6c78c06f7288d5e3c3d683bde35a79531127c83b087e5d0d77c974b4b28" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", ] [[package]] @@ -1042,6 +1042,20 @@ dependencies = [ "parking_lot_core", ] +[[package]] +name = "dashmap" +version = "6.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" +dependencies = [ + "cfg-if", + "crossbeam-utils", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", +] + [[package]] name = "data-encoding" version = "2.6.0" @@ -1777,7 +1791,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" dependencies = [ "cfg-if", - "dashmap", + "dashmap 5.5.3", "futures", "futures-timer", "no-std-compat", @@ -1790,6 +1804,27 @@ dependencies = [ "spinning_top", ] +[[package]] +name = "governor" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0746aa765db78b521451ef74221663b57ba595bf83f75d0ce23cc09447c8139f" +dependencies = [ + "cfg-if", + "dashmap 6.1.0", + "futures-sink", + "futures-timer", + "futures-util", + "no-std-compat", + "nonzero_ext", + "parking_lot", + "portable-atomic", + "quanta", + "rand", + "smallvec", + "spinning_top", +] + [[package]] name = "group" version = "0.13.0" @@ -2060,6 +2095,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "hostname" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba" +dependencies = [ + "cfg-if", + "libc", + "windows 0.52.0", +] + [[package]] name = "hostname-validator" version = "1.1.1" @@ -2614,7 +2660,7 @@ dependencies = [ [[package]] name = "iroh-blobs" version = "0.28.1" -source = "git+https://github.com/n0-computer/iroh-blobs?branch=main#cdcb863d7c75cdd7258c8f5001154272df7460c0" +source = "git+https://github.com/n0-computer/iroh-blobs?branch=main#290eb42cfd2d13202208264c2674ce423829f571" dependencies = [ "anyhow", "async-channel", @@ -2657,7 +2703,7 @@ dependencies = [ "smallvec", "strum 0.26.3", "tempfile", - "thiserror 2.0.3", + "thiserror", "tokio", "tokio-util", "tracing", @@ -2737,7 +2783,7 @@ dependencies = [ "derive_more", "dirs-next", "futures-lite 2.5.0", - "governor", + "governor 0.6.3", "hickory-proto 0.25.0-alpha.2", "hickory-resolver", "hickory-server", @@ -2746,7 +2792,6 @@ dependencies = [ "iroh-net", "iroh-test", "lru", - "mainline", "parking_lot", "pkarr", "rcgen 0.13.1", @@ -2824,7 +2869,7 @@ dependencies = [ [[package]] name = "iroh-gossip" version = "0.28.1" -source = "git+https://github.com/n0-computer/iroh-gossip?branch=main#7c90c3f351585e7a364bfbf3941d07592b20dec6" +source = "git+https://github.com/n0-computer/iroh-gossip?branch=main#ba0f6b0f54a740d8eae7ee6683f4aa1d8d8c8eb2" dependencies = [ "anyhow", "async-channel", @@ -2910,11 +2955,11 @@ dependencies = [ "futures-sink", "futures-util", "genawaiter", - "governor", + "governor 0.7.0", "hex", "hickory-proto 0.25.0-alpha.2", "hickory-resolver", - "hostname", + "hostname 0.4.0", "http 1.1.0", "http-body-util", "hyper", @@ -2930,10 +2975,9 @@ dependencies = [ "iroh-relay", "iroh-test", "libc", - "mainline", "netdev", "netlink-packet-core", - "netlink-packet-route", + "netlink-packet-route 0.21.0", "netlink-sys", "netwatch", "num_enum", @@ -2967,16 +3011,15 @@ dependencies = [ "tokio", "tokio-rustls", "tokio-stream", - "tokio-tungstenite", + "tokio-tungstenite 0.24.0", "tokio-tungstenite-wasm", "tokio-util", "tracing", "tracing-subscriber", - "tungstenite", "url", "watchable", "webpki-roots", - "windows 0.52.0", + "windows 0.58.0", "wmi", "x509-parser", "z32", @@ -2984,7 +3027,7 @@ dependencies = [ [[package]] name = "iroh-net-bench" -version = "0.27.0" +version = "0.28.0" dependencies = [ "anyhow", "bytes", @@ -3125,11 +3168,11 @@ dependencies = [ "futures-lite 2.5.0", "futures-sink", "futures-util", - "governor", + "governor 0.7.0", "hex", "hickory-proto 0.25.0-alpha.2", "hickory-resolver", - "hostname", + "hostname 0.4.0", "http 1.1.0", "http-body-util", "hyper", @@ -3163,13 +3206,12 @@ dependencies = [ "tokio", "tokio-rustls", "tokio-rustls-acme", - "tokio-tungstenite", + "tokio-tungstenite 0.24.0", "tokio-tungstenite-wasm", "tokio-util", "toml", "tracing", "tracing-subscriber", - "tungstenite", "url", "webpki-roots", ] @@ -3428,12 +3470,6 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" -[[package]] -name = "memalloc" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df39d232f5c40b0891c10216992c2f250c054105cb1e56f0fc9032db6203ecc1" - [[package]] name = "memchr" version = "2.7.4" @@ -3497,15 +3533,15 @@ dependencies = [ [[package]] name = "netdev" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7516ad2c46cc25da098ed7d6b9a0cbe9e1fbffbd04b1596148b95f2841179c83" +checksum = "f901362e84cd407be6f8cd9d3a46bccf09136b095792785401ea7d283c79b91d" dependencies = [ "dlopen2", + "ipnet", "libc", - "memalloc", "netlink-packet-core", - "netlink-packet-route", + "netlink-packet-route 0.17.1", "netlink-sys", "once_cell", "system-configuration", @@ -3537,6 +3573,35 @@ dependencies = [ "netlink-packet-utils", ] +[[package]] +name = "netlink-packet-route" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74c171cd77b4ee8c7708da746ce392440cb7bcf618d122ec9ecc607b12938bf4" +dependencies = [ + "anyhow", + "byteorder", + "libc", + "log", + "netlink-packet-core", + "netlink-packet-utils", +] + +[[package]] +name = "netlink-packet-route" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "483325d4bfef65699214858f097d504eb812c38ce7077d165f301ec406c3066e" +dependencies = [ + "anyhow", + "bitflags 2.6.0", + "byteorder", + "libc", + "log", + "netlink-packet-core", + "netlink-packet-utils", +] + [[package]] name = "netlink-packet-utils" version = "0.5.2" @@ -3592,7 +3657,7 @@ dependencies = [ "libc", "netdev", "netlink-packet-core", - "netlink-packet-route", + "netlink-packet-route 0.21.0", "netlink-sys", "once_cell", "rtnetlink", @@ -3603,7 +3668,7 @@ dependencies = [ "tokio", "tokio-util", "tracing", - "windows 0.52.0", + "windows 0.58.0", "wmi", ] @@ -3618,11 +3683,11 @@ dependencies = [ [[package]] name = "nix" -version = "0.26.4" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "cfg-if", "libc", ] @@ -4863,7 +4928,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" dependencies = [ - "hostname", + "hostname 0.3.1", "quick-error", ] @@ -4915,19 +4980,19 @@ dependencies = [ [[package]] name = "rtnetlink" -version = "0.13.1" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a552eb82d19f38c3beed3f786bd23aa434ceb9ac43ab44419ca6d67a7e186c0" +checksum = "b684475344d8df1859ddb2d395dd3dac4f8f3422a1aa0725993cb375fc5caba5" dependencies = [ "futures", "log", "netlink-packet-core", - "netlink-packet-route", + "netlink-packet-route 0.19.0", "netlink-packet-utils", "netlink-proto", "netlink-sys", "nix 0.26.4", - "thiserror 1.0.68", + "thiserror", "tokio", ] @@ -6027,7 +6092,19 @@ dependencies = [ "futures-util", "log", "tokio", - "tungstenite", + "tungstenite 0.21.0", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9" +dependencies = [ + "futures-util", + "log", + "tokio", + "tungstenite 0.24.0", ] [[package]] @@ -6043,7 +6120,7 @@ dependencies = [ "js-sys", "thiserror 1.0.68", "tokio", - "tokio-tungstenite", + "tokio-tungstenite 0.21.0", "wasm-bindgen", "web-sys", ] @@ -6159,16 +6236,16 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tower_governor" -version = "0.3.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3790eac6ad3fb8d9d96c2b040ae06e2517aa24b067545d1078b96ae72f7bb9a7" +checksum = "aea939ea6cfa7c4880f3e7422616624f97a567c16df67b53b11f0d03917a8e46" dependencies = [ "axum", "forwarded-header-value", - "governor", + "governor 0.6.3", "http 1.1.0", "pin-project", - "thiserror 1.0.68", + "thiserror", "tower 0.4.13", "tracing", ] @@ -6282,6 +6359,24 @@ dependencies = [ "utf-8", ] +[[package]] +name = "tungstenite" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http 1.1.0", + "httparse", + "log", + "rand", + "sha1", + "thiserror 1.0.69", + "utf-8", +] + [[package]] name = "typenum" version = "1.17.0" @@ -6918,9 +7013,9 @@ dependencies = [ [[package]] name = "wmi" -version = "0.13.4" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff00ac1309d4c462be86f03a55e409509e8bf4323ec296aeb4b381dd9aabe6ec" +checksum = "fbdda506bdee26ba617bd814538b690e14f59e8185345344cff113a8be21c005" dependencies = [ "chrono", "futures", diff --git a/iroh-dns-server/Cargo.toml b/iroh-dns-server/Cargo.toml index 78af5ed169..7faeff3499 100644 --- a/iroh-dns-server/Cargo.toml +++ b/iroh-dns-server/Cargo.toml @@ -14,7 +14,7 @@ anyhow = "1.0.80" async-trait = "0.1.77" axum = { version = "0.7", features = ["macros"] } axum-server = { version = "0.7", features = ["tls-rustls-no-provider"] } -base64-url = "2.0.2" +base64-url = "3.0" bytes = "1.7" clap = { version = "4.5.1", features = ["derive"] } derive_more = { version = "1.0.0", features = [ @@ -25,13 +25,12 @@ derive_more = { version = "1.0.0", features = [ ] } dirs-next = "2.0.0" futures-lite = "2.5" -governor = "0.6.3" +governor = "0.6.0" #needs new release of tower_governor for 0.7.0 hickory-proto = "=0.25.0-alpha.2" hickory-server = { version = "=0.25.0-alpha.2", features = ["dns-over-rustls"] } http = "1.0.0" iroh-metrics = { version = "0.28.0" } lru = "0.12.3" -mainline = "2.0.1" parking_lot = "0.12.1" pkarr = { version = "2.2.0", features = [ "async", "relay", "dht"], default-features = false } rcgen = "0.12.1" @@ -52,7 +51,7 @@ tokio-stream = "0.1.14" tokio-util = "0.7" toml = "0.8.10" tower-http = { version = "0.6.1", features = ["cors", "trace"] } -tower_governor = "0.3" +tower_governor = "0.4" tracing = "0.1" tracing-subscriber = "0.3.18" ttl_cache = "0.5.1" diff --git a/iroh-dns-server/src/http/rate_limiting.rs b/iroh-dns-server/src/http/rate_limiting.rs index 4ba64b4049..8e929240a4 100644 --- a/iroh-dns-server/src/http/rate_limiting.rs +++ b/iroh-dns-server/src/http/rate_limiting.rs @@ -1,4 +1,4 @@ -use std::time::Duration; +use std::{sync::Arc, time::Duration}; use governor::{clock::QuantaInstant, middleware::NoOpMiddleware}; use serde::{Deserialize, Serialize}; @@ -38,7 +38,7 @@ impl Default for &RateLimitConfig { /// This spawns a background thread to clean up the rate limiting cache. pub fn create( rate_limit_config: &RateLimitConfig, -) -> Option>> { +) -> Option>> { let use_smart_extractor = match rate_limit_config { RateLimitConfig::Disabled => { tracing::info!("Rate limiting disabled"); @@ -66,11 +66,7 @@ pub fn create( .finish() .expect("failed to build rate-limiting governor"); - // The governor layer needs a reference that outlives the layer. - // The tower_governor crate recommends in its examples to use Box::leak here. - // In the unreleased v0.4 of tower_governor this was changed to use an Arc instead. - // https://github.com/benwis/tower-governor/pull/27 - let governor_conf = Box::leak(Box::new(governor_conf)); + let governor_conf = Arc::new(governor_conf); // The governor needs a background task for garbage collection (to clear expired records) let gc_interval = Duration::from_secs(60); @@ -82,6 +78,6 @@ pub fn create( }); Some(GovernorLayer { - config: &*governor_conf, + config: governor_conf, }) } diff --git a/iroh-dns-server/src/lib.rs b/iroh-dns-server/src/lib.rs index 09180131a7..f706314163 100644 --- a/iroh-dns-server/src/lib.rs +++ b/iroh-dns-server/src/lib.rs @@ -180,7 +180,7 @@ mod tests { iroh_test::logging::setup_multithreaded(); // run a mainline testnet - let testnet = mainline::dht::Testnet::new(5); + let testnet = pkarr::mainline::dht::Testnet::new(5); let bootstrap = testnet.bootstrap.clone(); // spawn our server with mainline support @@ -198,7 +198,7 @@ mod tests { // publish the signed packet to our DHT let pkarr = PkarrClient::builder() - .dht_settings(mainline::dht::DhtSettings { + .dht_settings(pkarr::mainline::dht::DhtSettings { bootstrap: Some(testnet.bootstrap), ..Default::default() }) diff --git a/iroh-dns-server/src/store.rs b/iroh-dns-server/src/store.rs index e8d957f0e1..d7cb595b39 100644 --- a/iroh-dns-server/src/store.rs +++ b/iroh-dns-server/src/store.rs @@ -6,9 +6,8 @@ use anyhow::Result; use hickory_proto::rr::{Name, RecordSet, RecordType, RrKey}; use iroh_metrics::inc; use lru::LruCache; -use mainline::dht::DhtSettings; use parking_lot::Mutex; -use pkarr::{PkarrClient, SignedPacket}; +use pkarr::{mainline::dht::DhtSettings, PkarrClient, SignedPacket}; use tracing::{debug, trace}; use ttl_cache::TtlCache; diff --git a/iroh-net/Cargo.toml b/iroh-net/Cargo.toml index a8a9d58c9f..3668257b03 100644 --- a/iroh-net/Cargo.toml +++ b/iroh-net/Cargo.toml @@ -37,11 +37,11 @@ futures-concurrency = "7.6" futures-lite = "2.5" futures-sink = "0.3" futures-util = "0.3" -governor = "0.6.0" +governor = "0.7.0" hex = "0.4.3" hickory-proto = "=0.25.0-alpha.2" hickory-resolver = "=0.25.0-alpha.2" -hostname = "0.3.1" +hostname = "0.4" http = "1" http-body-util = "0.1.0" hyper = { version = "1", features = ["server", "client", "http1"] } @@ -50,7 +50,7 @@ igd-next = { version = "0.15.1", features = ["aio_tokio"] } iroh-base = { version = "0.28.0", features = ["key"] } iroh-relay = { version = "0.28", path = "../iroh-relay" } libc = "0.2.139" -netdev = "0.30.0" +netdev = "0.31.0" netwatch = { version = "0.1.0", path = "../net-tools/netwatch" } num_enum = "0.7" once_cell = "1.18.0" @@ -100,14 +100,13 @@ tokio-rustls = { version = "0.26", default-features = false, features = [ "ring", ] } tokio-stream = { version = "0.1.15" } -tokio-tungstenite = "0.21" +tokio-tungstenite = "0.24" tokio-tungstenite-wasm = "0.3" tokio-util = { version = "0.7", features = ["io-util", "io", "codec", "rt"] } tracing = "0.1" tracing-subscriber = { version = "0.3", features = [ "env-filter", ], optional = true } -tungstenite = "0.21" url = { version = "2.5", features = ["serde"] } watchable = "1.1.2" webpki = { package = "rustls-webpki", version = "0.102" } @@ -128,13 +127,13 @@ genawaiter = { version = "0.99", features = ["futures03"], optional = true } [target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies] netlink-packet-core = "0.7.0" -netlink-packet-route = "0.17.0" +netlink-packet-route = "0.21.0" netlink-sys = "0.8.5" -rtnetlink = "0.13.0" +rtnetlink = "0.14" [target.'cfg(target_os = "windows")'.dependencies] -wmi = "0.13" -windows = { version = "0.52", features = [ +wmi = "0.14" +windows = { version = "0.58", features = [ "Win32_NetworkManagement_IpHelper", "Win32_Foundation", "Win32_NetworkManagement_Ndis", @@ -163,7 +162,6 @@ iroh-test = "0.28.0" iroh-net = { path = "." } serde_json = "1" testresult = "0.4.0" -mainline = "2.0.1" iroh-relay = { version = "0.28", path = "../iroh-relay", features = ["test-utils", "server"] } [[bench]] diff --git a/iroh-net/bench/Cargo.toml b/iroh-net/bench/Cargo.toml index 11bf0b7d3d..34376c4206 100644 --- a/iroh-net/bench/Cargo.toml +++ b/iroh-net/bench/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "iroh-net-bench" -version = "0.27.0" +version = "0.28.0" edition = "2021" license = "MIT OR Apache-2.0" publish = false diff --git a/iroh-net/src/discovery/pkarr/dht.rs b/iroh-net/src/discovery/pkarr/dht.rs index a2d3ddc541..9e7db71065 100644 --- a/iroh-net/src/discovery/pkarr/dht.rs +++ b/iroh-net/src/discovery/pkarr/dht.rs @@ -405,7 +405,7 @@ mod tests { use std::collections::BTreeSet; use iroh_base::node_addr::RelayUrl; - use mainline::dht::DhtSettings; + use pkarr::mainline::dht::DhtSettings; use testresult::TestResult; use super::*; @@ -416,7 +416,7 @@ mod tests { let _logging_guard = iroh_test::logging::setup(); let ep = crate::Endpoint::builder().bind().await?; let secret = ep.secret_key().clone(); - let testnet = mainline::dht::Testnet::new(2); + let testnet = pkarr::mainline::dht::Testnet::new(2); let settings = pkarr::Settings { dht: DhtSettings { bootstrap: Some(testnet.bootstrap.clone()), diff --git a/iroh-relay/Cargo.toml b/iroh-relay/Cargo.toml index befa2fe904..5d2492c3c6 100644 --- a/iroh-relay/Cargo.toml +++ b/iroh-relay/Cargo.toml @@ -29,11 +29,11 @@ futures-buffered = "0.2.9" futures-lite = "2.5" futures-sink = "0.3" futures-util = "0.3" -governor = "0.6.0" +governor = "0.7.0" hex = "0.4.3" hickory-proto = "=0.25.0-alpha.2" hickory-resolver = "=0.25.0-alpha.2" -hostname = "0.3.1" +hostname = "0.4" http = "1" http-body-util = "0.1.0" hyper = { version = "1", features = ["server", "client", "http1"] } @@ -81,7 +81,7 @@ tokio-rustls = { version = "0.26", default-features = false, features = [ "ring", ] } tokio-rustls-acme = { version = "0.4", optional = true } -tokio-tungstenite = "0.21" +tokio-tungstenite = "0.24" tokio-tungstenite-wasm = "0.3" tokio-util = { version = "0.7", features = ["io-util", "io", "codec", "rt"] } toml = { version = "0.8", optional = true } @@ -89,7 +89,6 @@ tracing = "0.1" tracing-subscriber = { version = "0.3", features = [ "env-filter", ], optional = true } -tungstenite = "0.21" url = { version = "2.5", features = ["serde"] } webpki = { package = "rustls-webpki", version = "0.102" } webpki-roots = "0.26" diff --git a/iroh-relay/src/server/http_server.rs b/iroh-relay/src/server/http_server.rs index 60e05a9d34..90c864f9c2 100644 --- a/iroh-relay/src/server/http_server.rs +++ b/iroh-relay/src/server/http_server.rs @@ -20,10 +20,12 @@ use tokio::{ sync::mpsc, }; use tokio_rustls_acme::AcmeAcceptor; -use tokio_tungstenite::WebSocketStream; +use tokio_tungstenite::{ + tungstenite::{handshake::derive_accept_key, protocol::Role}, + WebSocketStream, +}; use tokio_util::{codec::Framed, sync::CancellationToken, task::AbortOnDropHandle}; use tracing::{debug, debug_span, error, info, info_span, trace, warn, Instrument}; -use tungstenite::{handshake::derive_accept_key, protocol::Role}; use crate::{ http::{Protocol, LEGACY_RELAY_PATH, RELAY_PATH, SUPPORTED_WEBSOCKET_VERSION}, diff --git a/iroh-relay/src/server/streams.rs b/iroh-relay/src/server/streams.rs index 844f5ca92b..e7b867bafc 100644 --- a/iroh-relay/src/server/streams.rs +++ b/iroh-relay/src/server/streams.rs @@ -9,7 +9,7 @@ use anyhow::Result; use futures_lite::Stream; use futures_sink::Sink; use tokio::io::{AsyncRead, AsyncWrite}; -use tokio_tungstenite::WebSocketStream; +use tokio_tungstenite::{tungstenite, WebSocketStream}; use tokio_util::codec::Framed; use crate::protos::relay::{DerpCodec, Frame}; diff --git a/net-tools/netwatch/Cargo.toml b/net-tools/netwatch/Cargo.toml index e1dd3e9be2..165042874a 100644 --- a/net-tools/netwatch/Cargo.toml +++ b/net-tools/netwatch/Cargo.toml @@ -20,7 +20,7 @@ futures-lite = "2.5" futures-sink = "0.3" futures-util = "0.3" libc = "0.2.139" -netdev = "0.30.0" +netdev = "0.31.0" once_cell = "1.18.0" quinn-udp = { package = "iroh-quinn-udp", version = "0.5.5" } socket2 = "0.5.3" @@ -43,13 +43,13 @@ tracing = "0.1" [target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies] netlink-packet-core = "0.7.0" -netlink-packet-route = "0.17.0" +netlink-packet-route = "0.21.0" netlink-sys = "0.8.5" -rtnetlink = "0.13.0" +rtnetlink = "0.14" [target.'cfg(target_os = "windows")'.dependencies] -wmi = "0.13" -windows = { version = "0.52", features = ["Win32_NetworkManagement_IpHelper", "Win32_Foundation", "Win32_NetworkManagement_Ndis", "Win32_Networking_WinSock"] } +wmi = "0.14" +windows = { version = "0.58", features = ["Win32_NetworkManagement_IpHelper", "Win32_Foundation", "Win32_NetworkManagement_Ndis", "Win32_Networking_WinSock"] } serde = { version = "1", features = ["derive"] } derive_more = { version = "1.0.0", features = ["debug"] } diff --git a/net-tools/netwatch/src/interfaces.rs b/net-tools/netwatch/src/interfaces.rs index f9f511d879..5b0613ae3b 100644 --- a/net-tools/netwatch/src/interfaces.rs +++ b/net-tools/netwatch/src/interfaces.rs @@ -15,7 +15,7 @@ mod linux; #[cfg(target_os = "windows")] mod windows; -pub(crate) use netdev::ip::{Ipv4Net, Ipv6Net}; +pub(crate) use netdev::ipnet::{Ipv4Net, Ipv6Net}; #[cfg(any( target_os = "freebsd", @@ -96,11 +96,7 @@ impl Interface { description: None, if_type: InterfaceType::Ethernet, mac_addr: Some(MacAddr::new(2, 3, 4, 5, 6, 7)), - ipv4: vec![Ipv4Net { - addr: Ipv4Addr::from([192, 168, 0, 189]), - prefix_len: 24, - netmask: Ipv4Addr::from([255, 255, 255, 0]), - }], + ipv4: vec![Ipv4Net::new(Ipv4Addr::new(192, 168, 0, 189), 24).unwrap()], ipv6: vec![], flags: 69699, transmit_speed: None, @@ -130,10 +126,14 @@ impl PartialEq for IpNet { fn eq(&self, other: &Self) -> bool { match (self, other) { (IpNet::V4(a), IpNet::V4(b)) => { - a.addr == b.addr && a.prefix_len == b.prefix_len && a.netmask == b.netmask + a.addr() == b.addr() + && a.prefix_len() == b.prefix_len() + && a.netmask() == b.netmask() } (IpNet::V6(a), IpNet::V6(b)) => { - a.addr == b.addr && a.prefix_len == b.prefix_len && a.netmask == b.netmask + a.addr() == b.addr() + && a.prefix_len() == b.prefix_len() + && a.netmask() == b.netmask() } _ => false, } @@ -145,8 +145,8 @@ impl IpNet { /// The IP address of this structure. pub fn addr(&self) -> IpAddr { match self { - IpNet::V4(a) => IpAddr::V4(a.addr), - IpNet::V6(a) => IpAddr::V6(a.addr), + IpNet::V4(a) => IpAddr::V4(a.addr()), + IpNet::V6(a) => IpAddr::V6(a.addr()), } } } diff --git a/net-tools/netwatch/src/ip.rs b/net-tools/netwatch/src/ip.rs index 180fcd908e..45799aca59 100644 --- a/net-tools/netwatch/src/ip.rs +++ b/net-tools/netwatch/src/ip.rs @@ -42,8 +42,8 @@ impl LocalAddresses { let addrs = iface .ipv4 .iter() - .map(|a| IpAddr::V4(a.addr)) - .chain(iface.ipv6.iter().map(|a| IpAddr::V6(a.addr))); + .map(|a| IpAddr::V4(a.addr())) + .chain(iface.ipv6.iter().map(|a| IpAddr::V6(a.addr()))); for ip in addrs { let ip = ip.to_canonical(); From f87c3852352ca53945872e3e375a155fe17e79ad Mon Sep 17 00:00:00 2001 From: Asmir Avdicevic Date: Fri, 15 Nov 2024 15:02:30 +0100 Subject: [PATCH 03/25] slightly better --- net-tools/netwatch/src/netmon/linux.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/net-tools/netwatch/src/netmon/linux.rs b/net-tools/netwatch/src/netmon/linux.rs index 95fd8e35eb..2b63af79ba 100644 --- a/net-tools/netwatch/src/netmon/linux.rs +++ b/net-tools/netwatch/src/netmon/linux.rs @@ -6,7 +6,7 @@ use std::{ use anyhow::Result; use futures_lite::StreamExt; use netlink_packet_core::NetlinkPayload; -use netlink_packet_route::{address, constants::*, route, RtnlMessage}; +use netlink_packet_route::{address, route, RouteNetlinkMessage}; use netlink_sys::{AsyncSocket, SocketAddr}; use rtnetlink::new_connection; use tokio::{sync::mpsc, task::JoinHandle}; @@ -77,7 +77,7 @@ impl RouteMonitor { break; } NetlinkPayload::InnerMessage(msg) => match msg { - RtnlMessage::NewAddress(msg) => { + RouteNetlinkMessage::NewAddress(msg) => { trace!("NEWADDR: {:?}", msg); let addrs = addr_cache.entry(msg.header.index).or_default(); if let Some(addr) = get_nla!(msg, address::Nla::Address) { @@ -90,7 +90,7 @@ impl RouteMonitor { } } } - RtnlMessage::DelAddress(msg) => { + RouteNetlinkMessage::DelAddress(msg) => { trace!("DELADDR: {:?}", msg); let addrs = addr_cache.entry(msg.header.index).or_default(); if let Some(addr) = get_nla!(msg, address::Nla::Address) { @@ -98,7 +98,7 @@ impl RouteMonitor { } sender.send(NetworkMessage::Change).await.ok(); } - RtnlMessage::NewRoute(msg) | RtnlMessage::DelRoute(msg) => { + RouteNetlinkMessage::NewRoute(msg) | RouteNetlinkMessage::DelRoute(msg) => { trace!("ROUTE:: {:?}", msg); // Ignore the following messages @@ -125,19 +125,19 @@ impl RouteMonitor { } sender.send(NetworkMessage::Change).await.ok(); } - RtnlMessage::NewRule(msg) => { + RouteNetlinkMessage::NewRule(msg) => { trace!("NEWRULE: {:?}", msg); sender.send(NetworkMessage::Change).await.ok(); } - RtnlMessage::DelRule(msg) => { + RouteNetlinkMessage::DelRule(msg) => { trace!("DELRULE: {:?}", msg); sender.send(NetworkMessage::Change).await.ok(); } - RtnlMessage::NewLink(msg) => { + RouteNetlinkMessage::NewLink(msg) => { trace!("NEWLINK: {:?}", msg); // ignored atm } - RtnlMessage::DelLink(msg) => { + RouteNetlinkMessage::DelLink(msg) => { trace!("DELLINK: {:?}", msg); // ignored atm } From 0abcff81193a9d8596eb44db4620fca144465fe6 Mon Sep 17 00:00:00 2001 From: Asmir Avdicevic Date: Mon, 18 Nov 2024 10:02:48 +0100 Subject: [PATCH 04/25] bump --- Cargo.lock | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6321be2b4d..e566372fa3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2660,7 +2660,7 @@ dependencies = [ [[package]] name = "iroh-blobs" version = "0.28.1" -source = "git+https://github.com/n0-computer/iroh-blobs?branch=main#290eb42cfd2d13202208264c2674ce423829f571" +source = "git+https://github.com/n0-computer/iroh-blobs?branch=main#2337e46d89d6f2f2fda512439890ab74bab24fb4" dependencies = [ "anyhow", "async-channel", @@ -2859,7 +2859,7 @@ dependencies = [ "shellexpand", "strum 0.26.3", "tempfile", - "thiserror 2.0.3", + "thiserror", "tokio", "tokio-stream", "tokio-util", @@ -2869,7 +2869,7 @@ dependencies = [ [[package]] name = "iroh-gossip" version = "0.28.1" -source = "git+https://github.com/n0-computer/iroh-gossip?branch=main#ba0f6b0f54a740d8eae7ee6683f4aa1d8d8c8eb2" +source = "git+https://github.com/n0-computer/iroh-gossip?branch=main#3d6659daf326f57cbafec189be996b89c7f441bd" dependencies = [ "anyhow", "async-channel", @@ -3332,9 +3332,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.161" +version = "0.2.162" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" +checksum = "18d287de67fe55fd7e1581fe933d965a5a9477b38e949cfa9f8574ef01506398" [[package]] name = "libm" @@ -5041,9 +5041,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.18" +version = "0.23.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9cc1d47e243d655ace55ed38201c19ae02c148ae56412ab8750e8f0166ab7f" +checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e" dependencies = [ "log", "once_cell", From 35f66a8ea3d20c084e38462fc37f0a59dc63e3df Mon Sep 17 00:00:00 2001 From: Asmir Avdicevic Date: Mon, 18 Nov 2024 10:38:02 +0100 Subject: [PATCH 05/25] another pass --- Cargo.lock | 100 +++++++++++++++----------------- iroh-base/Cargo.toml | 2 +- iroh-dns-server/Cargo.toml | 2 +- iroh-metrics/Cargo.toml | 2 +- iroh-net/Cargo.toml | 2 +- iroh-relay/Cargo.toml | 2 +- iroh/Cargo.toml | 2 +- net-tools/netwatch/Cargo.toml | 2 +- net-tools/portmapper/Cargo.toml | 2 +- 9 files changed, 56 insertions(+), 60 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e566372fa3..76f247cb22 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -163,7 +163,7 @@ dependencies = [ "nom", "num-traits", "rusticata-macros", - "thiserror 1.0.68", + "thiserror", "time", ] @@ -1137,9 +1137,7 @@ checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de" dependencies = [ "console", "shell-words", - "tempfile", "thiserror 1.0.68", - "zeroize", ] [[package]] @@ -1405,9 +1403,9 @@ dependencies = [ [[package]] name = "erased_set" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a5aa24577083f8190ad401e376b55887c7cd9083ae95d83ceec5d28ea78125" +checksum = "a02a5d186d7bf1cb21f1f95e1a9cfa5c1f2dcd803a47aad454423ceec13525c5" [[package]] name = "errno" @@ -1551,7 +1549,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8835f84f38484cc86f110a805655697908257fb9a7af005234060891557198e9" dependencies = [ "nonempty", - "thiserror 1.0.68", + "thiserror", ] [[package]] @@ -1939,7 +1937,7 @@ dependencies = [ "ipnet", "once_cell", "rand", - "thiserror 1.0.68", + "thiserror", "tinyvec", "tokio", "tracing", @@ -1969,7 +1967,7 @@ dependencies = [ "rustls", "rustls-pemfile", "serde", - "thiserror 1.0.68", + "thiserror", "time", "tinyvec", "tokio", @@ -1995,7 +1993,7 @@ dependencies = [ "lru-cache", "parking_lot", "serde", - "thiserror 1.0.68", + "thiserror", "tokio", "tracing", ] @@ -2018,7 +2016,7 @@ dependencies = [ "rustls", "serde", "smallvec", - "thiserror 1.0.68", + "thiserror", "tokio", "tokio-rustls", "tracing", @@ -2042,7 +2040,7 @@ dependencies = [ "prefix-trie", "rustls", "serde", - "thiserror 1.0.68", + "thiserror", "time", "tokio", "tokio-rustls", @@ -2604,7 +2602,7 @@ dependencies = [ "tempfile", "testdir", "testresult", - "thiserror 1.0.68", + "thiserror", "tokio", "tokio-stream", "tokio-util", @@ -2638,7 +2636,7 @@ dependencies = [ "serde_json", "serde_test", "ssh-key", - "thiserror 1.0.68", + "thiserror", "ttl_cache", "url", "zeroize", @@ -2660,7 +2658,7 @@ dependencies = [ [[package]] name = "iroh-blobs" version = "0.28.1" -source = "git+https://github.com/n0-computer/iroh-blobs?branch=main#2337e46d89d6f2f2fda512439890ab74bab24fb4" +source = "git+https://github.com/n0-computer/iroh-blobs?branch=main#4c7b8e79f495376245852a14688ce23a12adda85" dependencies = [ "anyhow", "async-channel", @@ -2703,7 +2701,7 @@ dependencies = [ "smallvec", "strum 0.26.3", "tempfile", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-util", "tracing", @@ -2759,7 +2757,7 @@ dependencies = [ "strum 0.26.3", "tempfile", "testdir", - "thiserror 1.0.68", + "thiserror", "time", "tokio", "tokio-util", @@ -2859,7 +2857,7 @@ dependencies = [ "shellexpand", "strum 0.26.3", "tempfile", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-stream", "tokio-util", @@ -2869,7 +2867,7 @@ dependencies = [ [[package]] name = "iroh-gossip" version = "0.28.1" -source = "git+https://github.com/n0-computer/iroh-gossip?branch=main#3d6659daf326f57cbafec189be996b89c7f441bd" +source = "git+https://github.com/n0-computer/iroh-gossip?branch=main#0eba891f601b0a425be3f3a8a870d0c75eacc509" dependencies = [ "anyhow", "async-channel", @@ -3006,7 +3004,7 @@ dependencies = [ "surge-ping", "swarm-discovery", "testresult", - "thiserror 1.0.68", + "thiserror", "time", "tokio", "tokio-rustls", @@ -3117,7 +3115,7 @@ dependencies = [ "rustc-hash", "rustls", "socket2", - "thiserror 1.0.68", + "thiserror", "tokio", "tracing", ] @@ -3135,7 +3133,7 @@ dependencies = [ "rustls", "rustls-platform-verifier", "slab", - "thiserror 1.0.68", + "thiserror", "tinyvec", "tracing", ] @@ -3201,7 +3199,7 @@ dependencies = [ "smallvec", "socket2", "stun-rs", - "thiserror 1.0.68", + "thiserror", "time", "tokio", "tokio-rustls", @@ -3302,7 +3300,7 @@ dependencies = [ "combine", "jni-sys", "log", - "thiserror 1.0.68", + "thiserror", "walkdir", ] @@ -3439,7 +3437,7 @@ dependencies = [ "serde_bencode", "serde_bytes", "sha1_smol", - "thiserror 1.0.68", + "thiserror", "tracing", ] @@ -3611,7 +3609,7 @@ dependencies = [ "anyhow", "byteorder", "paste", - "thiserror 1.0.68", + "thiserror", ] [[package]] @@ -3625,7 +3623,7 @@ dependencies = [ "log", "netlink-packet-core", "netlink-sys", - "thiserror 1.0.68", + "thiserror", "tokio", ] @@ -3663,7 +3661,7 @@ dependencies = [ "rtnetlink", "serde", "socket2", - "thiserror 1.0.68", + "thiserror", "time", "tokio", "tokio-util", @@ -4067,7 +4065,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" dependencies = [ "memchr", - "thiserror 1.0.68", + "thiserror", "ucd-trie", ] @@ -4155,7 +4153,7 @@ dependencies = [ "rand", "self_cell", "simple-dns", - "thiserror 1.0.68", + "thiserror", "tracing", "ureq", "wasm-bindgen", @@ -4293,7 +4291,7 @@ dependencies = [ "serde", "smallvec", "socket2", - "thiserror 1.0.68", + "thiserror", "time", "tokio", "tokio-util", @@ -4577,7 +4575,7 @@ dependencies = [ "rustc-hash", "rustls", "socket2", - "thiserror 1.0.68", + "thiserror", "tokio", "tracing", ] @@ -4596,7 +4594,7 @@ dependencies = [ "rustls", "rustls-pki-types", "slab", - "thiserror 1.0.68", + "thiserror", "tinyvec", "tracing", "web-time", @@ -4796,7 +4794,7 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom", "libredox", - "thiserror 1.0.68", + "thiserror", ] [[package]] @@ -4992,7 +4990,7 @@ dependencies = [ "netlink-proto", "netlink-sys", "nix 0.26.4", - "thiserror", + "thiserror 1.0.69", "tokio", ] @@ -5720,7 +5718,7 @@ dependencies = [ "pnet_packet", "rand", "socket2", - "thiserror 1.0.68", + "thiserror", "tokio", "tracing", ] @@ -5873,25 +5871,23 @@ version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl 1.0.68", + "thiserror-impl", ] [[package]] -name = "thiserror-impl" -version = "1.0.69" +name = "thiserror" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", + "thiserror-impl 2.0.3", ] [[package]] name = "thiserror-impl" -version = "1.0.68" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e" +checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" dependencies = [ "proc-macro2", "quote", @@ -6048,7 +6044,7 @@ dependencies = [ "rustls", "serde", "serde_json", - "thiserror 1.0.68", + "thiserror", "time", "tokio", "tokio-rustls", @@ -6118,7 +6114,7 @@ dependencies = [ "http 1.1.0", "httparse", "js-sys", - "thiserror 1.0.68", + "thiserror", "tokio", "tokio-tungstenite 0.21.0", "wasm-bindgen", @@ -6245,7 +6241,7 @@ dependencies = [ "governor 0.6.3", "http 1.1.0", "pin-project", - "thiserror", + "thiserror 1.0.69", "tower 0.4.13", "tracing", ] @@ -6269,7 +6265,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" dependencies = [ "crossbeam-channel", - "thiserror 1.0.68", + "thiserror", "time", "tracing-subscriber", ] @@ -6354,7 +6350,7 @@ dependencies = [ "log", "rand", "sha1", - "thiserror 1.0.68", + "thiserror", "url", "utf-8", ] @@ -6661,7 +6657,7 @@ dependencies = [ "event-listener 4.0.3", "futures-util", "parking_lot", - "thiserror 1.0.68", + "thiserror", ] [[package]] @@ -7021,7 +7017,7 @@ dependencies = [ "futures", "log", "serde", - "thiserror 1.0.68", + "thiserror", "windows 0.58.0", "windows-core 0.58.0", ] @@ -7051,7 +7047,7 @@ dependencies = [ "nom", "oid-registry", "rusticata-macros", - "thiserror 1.0.68", + "thiserror", "time", ] diff --git a/iroh-base/Cargo.toml b/iroh-base/Cargo.toml index 6fc831d8b8..01802c9457 100644 --- a/iroh-base/Cargo.toml +++ b/iroh-base/Cargo.toml @@ -23,7 +23,7 @@ hex = "0.4.3" postcard = { version = "1", default-features = false, features = ["alloc", "use-std", "experimental-derive"], optional = true } redb = { version = "2.0.0", optional = true } serde = { version = "1", features = ["derive"] } -thiserror = "1" +thiserror = "2" # key module aead = { version = "0.5.2", features = ["bytes"], optional = true } diff --git a/iroh-dns-server/Cargo.toml b/iroh-dns-server/Cargo.toml index 7faeff3499..4aed99794c 100644 --- a/iroh-dns-server/Cargo.toml +++ b/iroh-dns-server/Cargo.toml @@ -33,7 +33,7 @@ iroh-metrics = { version = "0.28.0" } lru = "0.12.3" parking_lot = "0.12.1" pkarr = { version = "2.2.0", features = [ "async", "relay", "dht"], default-features = false } -rcgen = "0.12.1" +rcgen = "0.13" redb = "2.0.0" regex = "1.10.3" rustls = { version = "0.23", default-features = false, features = ["ring"] } diff --git a/iroh-metrics/Cargo.toml b/iroh-metrics/Cargo.toml index 2a34c39f2f..83173d350a 100644 --- a/iroh-metrics/Cargo.toml +++ b/iroh-metrics/Cargo.toml @@ -16,7 +16,7 @@ workspace = true [dependencies] anyhow = { version = "1" } -erased_set = "0.7" +erased_set = "0.8" http-body-util = "0.1.0" hyper = { version = "1", features = ["server", "http1"] } hyper-util = { version = "0.1.1", features = ["tokio"] } diff --git a/iroh-net/Cargo.toml b/iroh-net/Cargo.toml index 3668257b03..ef78ff6864 100644 --- a/iroh-net/Cargo.toml +++ b/iroh-net/Cargo.toml @@ -82,7 +82,7 @@ smallvec = "1.11.1" socket2 = "0.5.3" stun-rs = "0.1.5" surge-ping = "0.8.0" -thiserror = "1" +thiserror = "2" time = "0.3.20" tokio = { version = "1", features = [ "io-util", diff --git a/iroh-relay/Cargo.toml b/iroh-relay/Cargo.toml index 5d2492c3c6..ec3956d3d0 100644 --- a/iroh-relay/Cargo.toml +++ b/iroh-relay/Cargo.toml @@ -63,7 +63,7 @@ serde = { version = "1", features = ["derive", "rc"] } smallvec = "1.11.1" socket2 = "0.5.3" stun-rs = "0.1.5" -thiserror = "1" +thiserror = "2" time = "0.3.20" tokio = { version = "1", features = [ "io-util", diff --git a/iroh/Cargo.toml b/iroh/Cargo.toml index a58042df11..ebf78be288 100644 --- a/iroh/Cargo.toml +++ b/iroh/Cargo.toml @@ -51,7 +51,7 @@ quic-rpc-derive = { version = "0.15" } quinn = { package = "iroh-quinn", version = "0.12" } serde = { version = "1", features = ["derive"] } strum = { version = "0.26", features = ["derive"] } -thiserror = "1" +thiserror = "2" tempfile = "3.4" tokio = { version = "1", features = ["io-util", "rt"] } tokio-util = { version = "0.7", features = ["codec", "io-util", "io", "time"] } diff --git a/net-tools/netwatch/Cargo.toml b/net-tools/netwatch/Cargo.toml index 165042874a..b483b88f24 100644 --- a/net-tools/netwatch/Cargo.toml +++ b/net-tools/netwatch/Cargo.toml @@ -24,7 +24,7 @@ netdev = "0.31.0" once_cell = "1.18.0" quinn-udp = { package = "iroh-quinn-udp", version = "0.5.5" } socket2 = "0.5.3" -thiserror = "1" +thiserror = "2" time = "0.3.20" tokio = { version = "1", features = [ "io-util", diff --git a/net-tools/portmapper/Cargo.toml b/net-tools/portmapper/Cargo.toml index ce91382178..dbaa8e99df 100644 --- a/net-tools/portmapper/Cargo.toml +++ b/net-tools/portmapper/Cargo.toml @@ -28,7 +28,7 @@ rand = "0.8" serde = { version = "1", features = ["derive", "rc"] } smallvec = "1.11.1" socket2 = "0.5.3" -thiserror = "1" +thiserror = "2" time = "0.3.20" tokio = { version = "1", features = ["io-util", "macros", "sync", "rt", "net", "fs", "io-std", "signal", "process"] } tokio-util = { version = "0.7", features = ["io-util", "io", "codec", "rt"] } From 7902beab14b900c3199e6d3a296165aa366e41a4 Mon Sep 17 00:00:00 2001 From: Asmir Avdicevic Date: Mon, 18 Nov 2024 11:19:00 +0100 Subject: [PATCH 06/25] bump tokio-rustls-acme --- Cargo.lock | 55 +++++++++++++------------------------- iroh-dns-server/Cargo.toml | 2 +- iroh-relay/Cargo.toml | 2 +- 3 files changed, 20 insertions(+), 39 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 76f247cb22..0c8da02d44 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -387,12 +387,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - [[package]] name = "base64" version = "0.22.1" @@ -405,7 +399,7 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38e2b6c78c06f7288d5e3c3d683bde35a79531127c83b087e5d0d77c974b4b28" dependencies = [ - "base64 0.22.1", + "base64", ] [[package]] @@ -2793,7 +2787,7 @@ dependencies = [ "parking_lot", "pkarr", "rcgen 0.13.1", - "redb", + "redb 2.2.0", "regex", "rustls", "rustls-pemfile", @@ -2938,7 +2932,7 @@ dependencies = [ "anyhow", "axum", "backoff", - "base64 0.22.1", + "base64", "bytes", "cc", "clap", @@ -2988,7 +2982,7 @@ dependencies = [ "pretty_assertions", "rand", "rand_chacha", - "rcgen 0.13.1", + "rcgen", "regex", "reqwest", "ring", @@ -3035,7 +3029,7 @@ dependencies = [ "iroh-metrics", "iroh-net", "iroh-quinn", - "rcgen 0.13.1", + "rcgen", "rustls", "socket2", "tokio", @@ -3156,7 +3150,7 @@ name = "iroh-relay" version = "0.28.0" dependencies = [ "anyhow", - "base64 0.22.1", + "base64", "bytes", "clap", "crypto_box", @@ -3187,7 +3181,7 @@ dependencies = [ "proptest", "rand", "rand_chacha", - "rcgen 0.13.1", + "rcgen", "regex", "reqwest", "ring", @@ -4039,7 +4033,7 @@ version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" dependencies = [ - "base64 0.22.1", + "base64", "serde", ] @@ -4275,7 +4269,7 @@ name = "portmapper" version = "0.1.0" dependencies = [ "anyhow", - "base64 0.22.1", + "base64", "bytes", "derive_more", "futures-lite 2.5.0", @@ -4743,18 +4737,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "rcgen" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48406db8ac1f3cbc7dcdb56ec355343817958a356ff430259bb07baf7607e1e1" -dependencies = [ - "pem", - "ring", - "time", - "yasna", -] - [[package]] name = "rcgen" version = "0.13.1" @@ -4884,7 +4866,7 @@ version = "0.12.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "futures-core", "futures-util", @@ -5365,7 +5347,7 @@ version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e28bdad6db2b8340e449f7108f020b3b092e8583a9e3fb82713e1d4e71fe817" dependencies = [ - "base64 0.22.1", + "base64", "chrono", "hex", "indexmap 1.9.3", @@ -5683,7 +5665,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b79cc624c9a747353810310af44f1f03f71eb4561284a894acc0396e6d0de76e" dependencies = [ - "base64 0.22.1", + "base64", "bounded-integer", "byteorder", "crc", @@ -6025,30 +6007,29 @@ dependencies = [ [[package]] name = "tokio-rustls-acme" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ee7cbca7da86fa030e33b0deac55bad0e0bf8ab909f1a84666f04447f6339b" +checksum = "0899f33c58a946878f9242bff2aa46417d2b3cc890b24bf534d73ceb75e079de" dependencies = [ "async-trait", "axum-server", - "base64 0.21.7", + "base64", "chrono", "futures", "log", "num-bigint", "pem", "proc-macro2", - "rcgen 0.12.1", + "rcgen", "reqwest", "ring", "rustls", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "time", "tokio", "tokio-rustls", - "url", "webpki-roots", "x509-parser", ] @@ -6478,7 +6459,7 @@ version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b74fc6b57825be3373f7054754755f03ac3a8f5d70015ccad699ba2029956f4a" dependencies = [ - "base64 0.22.1", + "base64", "log", "once_cell", "rustls", diff --git a/iroh-dns-server/Cargo.toml b/iroh-dns-server/Cargo.toml index 4aed99794c..194e6e7527 100644 --- a/iroh-dns-server/Cargo.toml +++ b/iroh-dns-server/Cargo.toml @@ -46,7 +46,7 @@ tokio-rustls = { version = "0.26", default-features = false, features = [ "logging", "ring", ] } -tokio-rustls-acme = { version = "0.4", features = ["axum"] } +tokio-rustls-acme = { version = "0.5", features = ["axum"] } tokio-stream = "0.1.14" tokio-util = "0.7" toml = "0.8.10" diff --git a/iroh-relay/Cargo.toml b/iroh-relay/Cargo.toml index ec3956d3d0..b7f7a5f829 100644 --- a/iroh-relay/Cargo.toml +++ b/iroh-relay/Cargo.toml @@ -80,7 +80,7 @@ tokio-rustls = { version = "0.26", default-features = false, features = [ "logging", "ring", ] } -tokio-rustls-acme = { version = "0.4", optional = true } +tokio-rustls-acme = { version = "0.5", optional = true } tokio-tungstenite = "0.24" tokio-tungstenite-wasm = "0.3" tokio-util = { version = "0.7", features = ["io-util", "io", "codec", "rt"] } From f10068f72b3f482544177606e0a6c129c8109e42 Mon Sep 17 00:00:00 2001 From: Asmir Avdicevic Date: Mon, 18 Nov 2024 11:57:44 +0100 Subject: [PATCH 07/25] fix for tokio-rustls-acme bump --- iroh-net/src/test_utils.rs | 5 +++- iroh-relay/src/server.rs | 50 +++++++++++++++++++++++++++++--------- 2 files changed, 43 insertions(+), 12 deletions(-) diff --git a/iroh-net/src/test_utils.rs b/iroh-net/src/test_utils.rs index 80b8a7257a..22956368e7 100644 --- a/iroh-net/src/test_utils.rs +++ b/iroh-net/src/test_utils.rs @@ -39,6 +39,9 @@ pub async fn run_relay_server() -> Result<(RelayMap, RelayUrl, Server)> { pub async fn run_relay_server_with( stun: Option, ) -> Result<(RelayMap, RelayUrl, Server)> { + #[derive(Default, Debug, derive_more::Display)] + struct Stub; + let cert = rcgen::generate_simple_self_signed(vec!["localhost".to_string(), "127.0.0.1".to_string()]) .expect("valid"); @@ -50,7 +53,7 @@ pub async fn run_relay_server_with( relay: Some(RelayConfig { http_bind_addr: (Ipv4Addr::LOCALHOST, 0).into(), tls: Some(TlsConfig { - cert: CertConfig::<(), ()>::Manual { + cert: CertConfig::::Manual { private_key, certs: vec![rustls_cert.clone()], }, diff --git a/iroh-relay/src/server.rs b/iroh-relay/src/server.rs index 6f32da2863..8b3efce8ff 100644 --- a/iroh-relay/src/server.rs +++ b/iroh-relay/src/server.rs @@ -16,7 +16,13 @@ //! - HTTPS `/generate_204`: Used for net_report probes. //! - STUN: UDP port for STUN requests/responses. -use std::{fmt, future::Future, net::SocketAddr, pin::Pin, sync::Arc}; +use std::{ + fmt::{self, Display}, + future::Future, + net::SocketAddr, + pin::Pin, + sync::Arc, +}; use anyhow::{anyhow, bail, Context, Result}; use futures_lite::StreamExt; @@ -79,7 +85,10 @@ fn body_empty() -> BytesBody { /// Be aware the generic parameters are for when using the Let's Encrypt TLS configuration. /// If not used dummy ones need to be provided, e.g. `ServerConfig::<(), ()>::default()`. #[derive(Debug, Default)] -pub struct ServerConfig { +pub struct ServerConfig< + EC: fmt::Debug + derive_more::Display, + EA: fmt::Debug + derive_more::Display = EC, +> { /// Configuration for the Relay server, disabled if `None`. pub relay: Option>, /// Configuration for the STUN server, disabled if `None`. @@ -95,7 +104,10 @@ pub struct ServerConfig { /// This includes the HTTP services hosted by the Relay server, the Relay `/relay` HTTP /// endpoint is only one of the services served. #[derive(Debug)] -pub struct RelayConfig { +pub struct RelayConfig< + EC: fmt::Debug + derive_more::Display, + EA: fmt::Debug + derive_more::Display = EC, +> { /// The socket address on which the Relay HTTP server should bind. /// /// Normally you'd choose port `80`. The bind address for the HTTPS server is @@ -126,7 +138,10 @@ pub struct StunConfig { /// /// Normally the Relay server accepts connections on both HTTPS and HTTP. #[derive(Debug)] -pub struct TlsConfig { +pub struct TlsConfig< + EC: fmt::Debug + derive_more::Display, + EA: fmt::Debug + derive_more::Display = EC, +> { /// The socket address on which to serve the HTTPS server. /// /// Since the captive portal probe has to run over plain text HTTP and TLS is used for @@ -197,8 +212,8 @@ impl Server { /// Starts the server. pub async fn spawn(config: ServerConfig) -> Result where - EC: fmt::Debug + 'static, - EA: fmt::Debug + 'static, + EC: fmt::Debug + derive_more::Display + 'static, + EA: fmt::Debug + derive_more::Display + 'static, { let mut tasks = JoinSet::new(); @@ -697,6 +712,7 @@ mod tests { use std::{net::Ipv4Addr, time::Duration}; use bytes::Bytes; + use derive_more::derive::Display; use http::header::UPGRADE; use iroh_base::{key::SecretKey, node_addr::RelayUrl}; @@ -707,8 +723,11 @@ mod tests { }; async fn spawn_local_relay() -> Result { - Server::spawn(ServerConfig::<(), ()> { - relay: Some(RelayConfig { + #[derive(Debug, Display)] + struct Stub; + + Server::spawn(ServerConfig:: { + relay: Some(RelayConfig:: { http_bind_addr: (Ipv4Addr::LOCALHOST, 0).into(), tls: None, limits: Default::default(), @@ -721,8 +740,11 @@ mod tests { #[tokio::test] async fn test_no_services() { + #[derive(Default, Debug, Display)] + struct Stub; + let _guard = iroh_test::logging::setup(); - let mut server = Server::spawn(ServerConfig::<(), ()>::default()) + let mut server = Server::spawn(ServerConfig::::default()) .await .unwrap(); let res = tokio::time::timeout(Duration::from_secs(5), server.task_handle()) @@ -734,8 +756,11 @@ mod tests { #[tokio::test] async fn test_conflicting_bind() { + #[derive(Debug, Display)] + struct Stub; + let _guard = iroh_test::logging::setup(); - let mut server = Server::spawn(ServerConfig::<(), ()> { + let mut server = Server::spawn(ServerConfig:: { relay: Some(RelayConfig { http_bind_addr: (Ipv4Addr::LOCALHOST, 1234).into(), tls: None, @@ -1006,8 +1031,11 @@ mod tests { #[tokio::test] async fn test_stun() { + #[derive(Debug, Display)] + struct Stub; + let _guard = iroh_test::logging::setup(); - let server = Server::spawn(ServerConfig::<(), ()> { + let server = Server::spawn(ServerConfig:: { relay: None, stun: Some(StunConfig { bind_addr: (Ipv4Addr::LOCALHOST, 0).into(), From d5710c33964c330378d1fecbb39371d89450ff7e Mon Sep 17 00:00:00 2001 From: Asmir Avdicevic Date: Tue, 19 Nov 2024 09:33:41 +0100 Subject: [PATCH 08/25] bump --- Cargo.lock | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0c8da02d44..4a927e3e43 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1131,7 +1131,7 @@ checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de" dependencies = [ "console", "shell-words", - "thiserror 1.0.68", + "thiserror", ] [[package]] @@ -2652,7 +2652,7 @@ dependencies = [ [[package]] name = "iroh-blobs" version = "0.28.1" -source = "git+https://github.com/n0-computer/iroh-blobs?branch=main#4c7b8e79f495376245852a14688ce23a12adda85" +source = "git+https://github.com/n0-computer/iroh-blobs?branch=main#cdcb863d7c75cdd7258c8f5001154272df7460c0" dependencies = [ "anyhow", "async-channel", @@ -2848,7 +2848,6 @@ dependencies = [ "self_cell", "serde", "serde-error", - "shellexpand", "strum 0.26.3", "tempfile", "thiserror 1.0.69", @@ -2861,7 +2860,7 @@ dependencies = [ [[package]] name = "iroh-gossip" version = "0.28.1" -source = "git+https://github.com/n0-computer/iroh-gossip?branch=main#0eba891f601b0a425be3f3a8a870d0c75eacc509" +source = "git+https://github.com/n0-computer/iroh-gossip?branch=main#7c90c3f351585e7a364bfbf3941d07592b20dec6" dependencies = [ "anyhow", "async-channel", @@ -5008,9 +5007,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.39" +version = "0.38.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375116bee2be9ed569afe2154ea6a99dfdffd257f533f187498c2a8f5feaf4ee" +checksum = "99e4ea3e1cdc4b559b8e5650f9c8e5998e3e5c1343b4eaf034565f32318d63c0" dependencies = [ "bitflags 2.6.0", "errno", @@ -6185,9 +6184,9 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8437150ab6bbc8c5f0f519e3d5ed4aa883a83dd4cdd3d1b21f9482936046cb97" +checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697" dependencies = [ "bitflags 2.6.0", "bytes", From 91908a943ab8b682fa4a6335af75aa100f65e7f8 Mon Sep 17 00:00:00 2001 From: dignifiedquire Date: Mon, 25 Nov 2024 20:29:19 +0100 Subject: [PATCH 09/25] fixup compile issues --- Cargo.lock | 163 +++++++++++++++++++-------------------- Cargo.toml | 2 + iroh-relay/src/server.rs | 36 +++------ 3 files changed, 93 insertions(+), 108 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4a927e3e43..c8c56eaba6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -175,7 +175,7 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "synstructure", ] @@ -187,7 +187,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -210,7 +210,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -221,7 +221,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -274,7 +274,7 @@ dependencies = [ "serde_json", "serde_path_to_error", "serde_urlencoded", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "tokio", "tower 0.5.1", "tower-layer", @@ -297,7 +297,7 @@ dependencies = [ "mime", "pin-project-lite", "rustversion", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "tower-layer", "tower-service", "tracing", @@ -311,7 +311,7 @@ checksum = "57d123550fa8d071b7255cb0cc04dc302baa6c8c4a79f55701552684d8399bce" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -646,7 +646,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -783,9 +783,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca741a962e1b0bff6d724a1a0958b686406e853bb14061f218562e1896f95e6" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" dependencies = [ "libc", ] @@ -985,7 +985,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1009,7 +1009,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1020,7 +1020,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1089,7 +1089,7 @@ checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1119,7 +1119,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "unicode-xid", ] @@ -1187,7 +1187,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1344,7 +1344,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1357,7 +1357,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1377,7 +1377,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1657,7 +1657,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1830,9 +1830,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ "atomic-waker", "bytes", @@ -1871,9 +1871,9 @@ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" [[package]] name = "hashbrown" -version = "0.15.1" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ "allocator-api2", "equivalent", @@ -2182,9 +2182,9 @@ dependencies = [ [[package]] name = "hyper" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" +checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" dependencies = [ "bytes", "futures-channel", @@ -2376,7 +2376,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -2465,7 +2465,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.15.1", + "hashbrown 0.15.2", "serde", ] @@ -2518,7 +2518,7 @@ dependencies = [ "pretty_assertions", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -3279,9 +3279,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "jni" @@ -3357,9 +3357,9 @@ checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "litemap" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "litrs" @@ -3402,7 +3402,7 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.15.1", + "hashbrown 0.15.2", ] [[package]] @@ -3871,7 +3871,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4082,7 +4082,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4113,7 +4113,7 @@ checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4222,7 +4222,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4259,9 +4259,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" +checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" [[package]] name = "portmapper" @@ -4447,9 +4447,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.89" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -4474,7 +4474,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4795,7 +4795,7 @@ checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4889,7 +4889,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "tokio", "tokio-rustls", "tower-service", @@ -5020,9 +5020,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.16" +version = "0.23.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e" +checksum = "7f1a745511c54ba6d4465e8d5dfbd81b45791756de28d4981af70d6dca128f1e" dependencies = [ "log", "once_cell", @@ -5285,7 +5285,7 @@ checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -5367,7 +5367,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -5627,7 +5627,7 @@ dependencies = [ "proc-macro2", "quote", "struct_iterable_internal", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -5655,7 +5655,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -5732,9 +5732,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.87" +version = "2.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" +checksum = "44d46482f1c1c87acd84dea20c1bf5ebff4c757009ed6bf19cfd36fb10e92c4e" dependencies = [ "proc-macro2", "quote", @@ -5760,9 +5760,9 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ "futures-core", ] @@ -5775,7 +5775,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -5872,7 +5872,7 @@ checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -5883,7 +5883,7 @@ checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -5990,7 +5990,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -6007,8 +6007,7 @@ dependencies = [ [[package]] name = "tokio-rustls-acme" version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0899f33c58a946878f9242bff2aa46417d2b3cc890b24bf534d73ceb75e079de" +source = "git+https://github.com/n0-computer/tokio-rustls-acme?branch=fix-display#15ef6138ef9e071c17bcb1901ce21157e7c59acc" dependencies = [ "async-trait", "axum-server", @@ -6258,7 +6257,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -6388,9 +6387,9 @@ checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-normalization" @@ -6583,7 +6582,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "wasm-bindgen-shared", ] @@ -6617,7 +6616,7 @@ checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -6662,9 +6661,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.6" +version = "0.26.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" +checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" dependencies = [ "rustls-pki-types", ] @@ -6776,7 +6775,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -6787,7 +6786,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -7063,9 +7062,9 @@ dependencies = [ [[package]] name = "yoke" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ "serde", "stable_deref_trait", @@ -7075,13 +7074,13 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "synstructure", ] @@ -7109,27 +7108,27 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] name = "zerofrom" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "synstructure", ] @@ -7158,5 +7157,5 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] diff --git a/Cargo.toml b/Cargo.toml index 2574ed852a..a27f63f86f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -55,3 +55,5 @@ iroh-net = { path = "./iroh-net" } iroh-metrics = { path = "./iroh-metrics" } iroh-test = { path = "./iroh-test" } iroh-router = { path = "./iroh-router" } + +tokio-rustls-acme = { git = "https://github.com/n0-computer/tokio-rustls-acme", branch = "fix-display" } diff --git a/iroh-relay/src/server.rs b/iroh-relay/src/server.rs index 8b3efce8ff..d2134b40d1 100644 --- a/iroh-relay/src/server.rs +++ b/iroh-relay/src/server.rs @@ -16,13 +16,7 @@ //! - HTTPS `/generate_204`: Used for net_report probes. //! - STUN: UDP port for STUN requests/responses. -use std::{ - fmt::{self, Display}, - future::Future, - net::SocketAddr, - pin::Pin, - sync::Arc, -}; +use std::{fmt, future::Future, net::SocketAddr, pin::Pin, sync::Arc}; use anyhow::{anyhow, bail, Context, Result}; use futures_lite::StreamExt; @@ -85,10 +79,7 @@ fn body_empty() -> BytesBody { /// Be aware the generic parameters are for when using the Let's Encrypt TLS configuration. /// If not used dummy ones need to be provided, e.g. `ServerConfig::<(), ()>::default()`. #[derive(Debug, Default)] -pub struct ServerConfig< - EC: fmt::Debug + derive_more::Display, - EA: fmt::Debug + derive_more::Display = EC, -> { +pub struct ServerConfig { /// Configuration for the Relay server, disabled if `None`. pub relay: Option>, /// Configuration for the STUN server, disabled if `None`. @@ -104,10 +95,7 @@ pub struct ServerConfig< /// This includes the HTTP services hosted by the Relay server, the Relay `/relay` HTTP /// endpoint is only one of the services served. #[derive(Debug)] -pub struct RelayConfig< - EC: fmt::Debug + derive_more::Display, - EA: fmt::Debug + derive_more::Display = EC, -> { +pub struct RelayConfig { /// The socket address on which the Relay HTTP server should bind. /// /// Normally you'd choose port `80`. The bind address for the HTTPS server is @@ -138,10 +126,7 @@ pub struct StunConfig { /// /// Normally the Relay server accepts connections on both HTTPS and HTTP. #[derive(Debug)] -pub struct TlsConfig< - EC: fmt::Debug + derive_more::Display, - EA: fmt::Debug + derive_more::Display = EC, -> { +pub struct TlsConfig { /// The socket address on which to serve the HTTPS server. /// /// Since the captive portal probe has to run over plain text HTTP and TLS is used for @@ -212,8 +197,8 @@ impl Server { /// Starts the server. pub async fn spawn(config: ServerConfig) -> Result where - EC: fmt::Debug + derive_more::Display + 'static, - EA: fmt::Debug + derive_more::Display + 'static, + EC: fmt::Debug + 'static, + EA: fmt::Debug + 'static, { let mut tasks = JoinSet::new(); @@ -712,7 +697,6 @@ mod tests { use std::{net::Ipv4Addr, time::Duration}; use bytes::Bytes; - use derive_more::derive::Display; use http::header::UPGRADE; use iroh_base::{key::SecretKey, node_addr::RelayUrl}; @@ -723,7 +707,7 @@ mod tests { }; async fn spawn_local_relay() -> Result { - #[derive(Debug, Display)] + #[derive(Debug)] struct Stub; Server::spawn(ServerConfig:: { @@ -740,7 +724,7 @@ mod tests { #[tokio::test] async fn test_no_services() { - #[derive(Default, Debug, Display)] + #[derive(Default, Debug)] struct Stub; let _guard = iroh_test::logging::setup(); @@ -756,7 +740,7 @@ mod tests { #[tokio::test] async fn test_conflicting_bind() { - #[derive(Debug, Display)] + #[derive(Debug)] struct Stub; let _guard = iroh_test::logging::setup(); @@ -1031,7 +1015,7 @@ mod tests { #[tokio::test] async fn test_stun() { - #[derive(Debug, Display)] + #[derive(Debug)] struct Stub; let _guard = iroh_test::logging::setup(); From f882c86d0be2b8dce14526fc61e2ee458f784499 Mon Sep 17 00:00:00 2001 From: Asmir Avdicevic Date: Mon, 25 Nov 2024 22:00:12 +0100 Subject: [PATCH 10/25] start linux cleanup --- Cargo.lock | 80 +++++++++++++++++++++++--- net-tools/netwatch/src/netmon/linux.rs | 4 ++ 2 files changed, 76 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c8c56eaba6..35f076decb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -655,13 +655,24 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7" +[[package]] +name = "clipboard-win" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" +dependencies = [ + "error-code 2.3.1", + "str-buf", + "winapi", +] + [[package]] name = "clipboard-win" version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15efe7a882b08f34e38556b14f2fb3daa98769d06c7f0c1b076dfd0d983bc892" dependencies = [ - "error-code", + "error-code 3.3.1", ] [[package]] @@ -1411,6 +1422,16 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "error-code" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21" +dependencies = [ + "libc", + "str-buf", +] + [[package]] name = "error-code" version = "3.3.1" @@ -1470,6 +1491,17 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" +[[package]] +name = "fd-lock" +version = "3.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef033ed5e9bad94e55838ca0ca906db0e043f517adda0c8b79c7a8c66c93c1b5" +dependencies = [ + "cfg-if", + "rustix", + "windows-sys 0.48.0", +] + [[package]] name = "fd-lock" version = "4.0.2" @@ -2730,8 +2762,6 @@ dependencies = [ "iroh-docs", "iroh-gossip", "iroh-metrics", - "iroh-net-report", - "iroh-node-util", "nix 0.27.1", "parking_lot", "pkarr", @@ -2744,7 +2774,7 @@ dependencies = [ "ratatui", "regex", "reqwest", - "rustyline", + "rustyline 14.0.0", "serde", "shell-words", "shellexpand", @@ -3082,11 +3112,11 @@ dependencies = [ "nested_enum_utils", "quic-rpc", "quic-rpc-derive", - "rustyline", + "rustyline 12.0.0", "serde", "serde-error", "serde_with", - "strum 0.26.3", + "strum", "tempfile", "time", "tokio", @@ -3672,6 +3702,17 @@ dependencies = [ "smallvec", ] +[[package]] +name = "nix" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", +] + [[package]] name = "nix" version = "0.27.1" @@ -5120,6 +5161,29 @@ dependencies = [ "wait-timeout", ] +[[package]] +name = "rustyline" +version = "12.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "994eca4bca05c87e86e15d90fc7a91d1be64b4482b38cb2d27474568fe7c9db9" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "clipboard-win 4.5.0", + "fd-lock 3.0.13", + "home", + "libc", + "log", + "memchr", + "nix 0.26.4", + "radix_trie", + "scopeguard", + "unicode-segmentation", + "unicode-width 0.1.14", + "utf8parse", + "winapi", +] + [[package]] name = "rustyline" version = "14.0.0" @@ -5128,8 +5192,8 @@ checksum = "7803e8936da37efd9b6d4478277f4b2b9bb5cdb37a113e8d63222e58da647e63" dependencies = [ "bitflags 2.6.0", "cfg-if", - "clipboard-win", - "fd-lock", + "clipboard-win 5.4.0", + "fd-lock 4.0.2", "home", "libc", "log", diff --git a/net-tools/netwatch/src/netmon/linux.rs b/net-tools/netwatch/src/netmon/linux.rs index 2b63af79ba..61274e8d58 100644 --- a/net-tools/netwatch/src/netmon/linux.rs +++ b/net-tools/netwatch/src/netmon/linux.rs @@ -5,6 +5,10 @@ use std::{ use anyhow::Result; use futures_lite::StreamExt; +use libc::{ + RTNLGRP_IPV4_IFADDR, RTNLGRP_IPV4_ROUTE, RTNLGRP_IPV4_RULE, RTNLGRP_IPV6_IFADDR, + RTNLGRP_IPV6_ROUTE, RTNLGRP_IPV6_RULE, +}; use netlink_packet_core::NetlinkPayload; use netlink_packet_route::{address, route, RouteNetlinkMessage}; use netlink_sys::{AsyncSocket, SocketAddr}; From 6efd81e2fdd3f7ea8c31ff619bf135a4128968c4 Mon Sep 17 00:00:00 2001 From: Asmir Avdicevic Date: Mon, 25 Nov 2024 22:57:40 +0100 Subject: [PATCH 11/25] more fixes --- net-tools/netwatch/src/netmon/linux.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/net-tools/netwatch/src/netmon/linux.rs b/net-tools/netwatch/src/netmon/linux.rs index 61274e8d58..1c7154a6e1 100644 --- a/net-tools/netwatch/src/netmon/linux.rs +++ b/net-tools/netwatch/src/netmon/linux.rs @@ -84,7 +84,7 @@ impl RouteMonitor { RouteNetlinkMessage::NewAddress(msg) => { trace!("NEWADDR: {:?}", msg); let addrs = addr_cache.entry(msg.header.index).or_default(); - if let Some(addr) = get_nla!(msg, address::Nla::Address) { + if let Some(addr) = get_nla!(msg, address::AddressAttribute::Address) { if addrs.contains(addr) { // already cached continue; @@ -97,7 +97,7 @@ impl RouteMonitor { RouteNetlinkMessage::DelAddress(msg) => { trace!("DELADDR: {:?}", msg); let addrs = addr_cache.entry(msg.header.index).or_default(); - if let Some(addr) = get_nla!(msg, address::Nla::Address) { + if let Some(addr) = get_nla!(msg, address::AddressAttribute::Address) { addrs.remove(addr); } sender.send(NetworkMessage::Change).await.ok(); @@ -106,7 +106,7 @@ impl RouteMonitor { trace!("ROUTE:: {:?}", msg); // Ignore the following messages - let table = get_nla!(msg, route::Nla::Table) + let table = get_nla!(msg, route::nlas::Nla::Table) .copied() .unwrap_or_default(); if let Some(dst) = get_nla!(msg, route::Nla::Destination) { From 60fd54804f027034ee13bfbdf99068b56e3ebc7a Mon Sep 17 00:00:00 2001 From: Asmir Avdicevic Date: Mon, 25 Nov 2024 23:10:10 +0100 Subject: [PATCH 12/25] more fixes --- Cargo.lock | 505 ++++++----------------------------------------------- Cargo.toml | 2 +- 2 files changed, 57 insertions(+), 450 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 35f076decb..7706d814c2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -163,7 +163,7 @@ dependencies = [ "nom", "num-traits", "rusticata-macros", - "thiserror", + "thiserror 1.0.69", "time", ] @@ -541,12 +541,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -[[package]] -name = "cfg_aliases" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" - [[package]] name = "cfg_aliases" version = "0.2.1" @@ -661,20 +655,11 @@ version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" dependencies = [ - "error-code 2.3.1", + "error-code", "str-buf", "winapi", ] -[[package]] -name = "clipboard-win" -version = "5.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15efe7a882b08f34e38556b14f2fb3daa98769d06c7f0c1b076dfd0d983bc892" -dependencies = [ - "error-code 3.3.1", -] - [[package]] name = "cobs" version = "0.2.3" @@ -714,22 +699,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24f165e7b643266ea80cb858aed492ad9280e3e05ce24d4a99d7d7b889b6a4d9" dependencies = [ "crossterm", - "strum 0.26.3", - "strum_macros 0.26.4", - "unicode-width", -] - -[[package]] -name = "compact_str" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f86b9c4c00838774a6d902ef931eff7470720c51d90c2e32cfe15dc304737b3f" -dependencies = [ - "castaway", - "cfg-if", - "itoa", - "ryu", - "static_assertions", + "strum", + "strum_macros", + "unicode-width 0.2.0", ] [[package]] @@ -894,11 +866,8 @@ checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" dependencies = [ "bitflags 2.6.0", "crossterm_winapi", - "libc", - "mio 0.8.11", "parking_lot", - "signal-hook", - "signal-hook-mio", + "rustix", "winapi", ] @@ -1134,17 +1103,6 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "dialoguer" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de" -dependencies = [ - "console", - "shell-words", - "thiserror", -] - [[package]] name = "diatomic-waker" version = "0.2.3" @@ -1432,12 +1390,6 @@ dependencies = [ "str-buf", ] -[[package]] -name = "error-code" -version = "3.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5d9305ccc6942a704f4335694ecd3de2ea531b114ac2d51f5f843750787a92f" - [[package]] name = "event-listener" version = "4.0.3" @@ -1502,17 +1454,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "fd-lock" -version = "4.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e5768da2206272c81ef0b5e951a41862938a6070da63bcea197899942d3b947" -dependencies = [ - "cfg-if", - "rustix", - "windows-sys 0.52.0", -] - [[package]] name = "ff" version = "0.13.0" @@ -1575,7 +1516,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8835f84f38484cc86f110a805655697908257fb9a7af005234060891557198e9" dependencies = [ "nonempty", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1963,7 +1904,7 @@ dependencies = [ "ipnet", "once_cell", "rand", - "thiserror", + "thiserror 1.0.69", "tinyvec", "tokio", "tracing", @@ -1993,7 +1934,7 @@ dependencies = [ "rustls", "rustls-pemfile", "serde", - "thiserror", + "thiserror 1.0.69", "time", "tinyvec", "tokio", @@ -2019,7 +1960,7 @@ dependencies = [ "lru-cache", "parking_lot", "serde", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", ] @@ -2042,7 +1983,7 @@ dependencies = [ "rustls", "serde", "smallvec", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-rustls", "tracing", @@ -2066,7 +2007,7 @@ dependencies = [ "prefix-trie", "rustls", "serde", - "thiserror", + "thiserror 1.0.69", "time", "tokio", "tokio-rustls", @@ -2515,12 +2456,6 @@ dependencies = [ "web-time", ] -[[package]] -name = "indoc" -version = "2.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5" - [[package]] name = "inout" version = "0.1.3" @@ -2539,20 +2474,6 @@ dependencies = [ "smallvec", ] -[[package]] -name = "instability" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b829f37dead9dc39df40c2d3376c179fdfd2ac771f53f55d3c30dc096a3c0c6e" -dependencies = [ - "darling", - "indoc", - "pretty_assertions", - "proc-macro2", - "quote", - "syn 2.0.89", -] - [[package]] name = "instant" version = "0.1.13" @@ -2628,7 +2549,7 @@ dependencies = [ "tempfile", "testdir", "testresult", - "thiserror", + "thiserror 2.0.3", "tokio", "tokio-stream", "tokio-util", @@ -2662,7 +2583,7 @@ dependencies = [ "serde_json", "serde_test", "ssh-key", - "thiserror", + "thiserror 2.0.3", "ttl_cache", "url", "zeroize", @@ -2681,116 +2602,6 @@ dependencies = [ "constant_time_eq", ] -[[package]] -name = "iroh-blobs" -version = "0.28.1" -source = "git+https://github.com/n0-computer/iroh-blobs?branch=main#cdcb863d7c75cdd7258c8f5001154272df7460c0" -dependencies = [ - "anyhow", - "async-channel", - "bao-tree", - "bytes", - "chrono", - "clap", - "console", - "derive_more", - "futures-buffered", - "futures-lite 2.5.0", - "futures-util", - "genawaiter", - "hashlink", - "hex", - "indicatif", - "iroh-base", - "iroh-io", - "iroh-metrics", - "iroh-net", - "iroh-quinn", - "iroh-router", - "nested_enum_utils", - "num_cpus", - "oneshot", - "parking_lot", - "portable-atomic", - "postcard", - "quic-rpc", - "quic-rpc-derive", - "rand", - "range-collections", - "redb 1.5.1", - "redb 2.2.0", - "ref-cast", - "reflink-copy", - "self_cell", - "serde", - "serde-error", - "smallvec", - "strum 0.26.3", - "tempfile", - "thiserror 1.0.69", - "tokio", - "tokio-util", - "tracing", - "tracing-futures", - "walkdir", -] - -[[package]] -name = "iroh-cli" -version = "0.28.1" -dependencies = [ - "anyhow", - "async-channel", - "bao-tree", - "bytes", - "clap", - "colored", - "comfy-table", - "console", - "crossterm", - "derive_more", - "dialoguer", - "duct", - "futures-buffered", - "futures-lite 2.5.0", - "futures-util", - "hex", - "human-time", - "indicatif", - "iroh", - "iroh-blobs", - "iroh-docs", - "iroh-gossip", - "iroh-metrics", - "nix 0.27.1", - "parking_lot", - "pkarr", - "portable-atomic", - "portmapper", - "postcard", - "quic-rpc", - "rand", - "rand_xorshift", - "ratatui", - "regex", - "reqwest", - "rustyline 14.0.0", - "serde", - "shell-words", - "shellexpand", - "strum 0.26.3", - "tempfile", - "testdir", - "thiserror", - "time", - "tokio", - "tokio-util", - "toml", - "tracing", - "url", - "walkdir", -] - [[package]] name = "iroh-dns-server" version = "0.28.0" @@ -2816,8 +2627,8 @@ dependencies = [ "lru", "parking_lot", "pkarr", - "rcgen 0.13.1", - "redb 2.2.0", + "rcgen", + "redb", "regex", "rustls", "rustls-pemfile", @@ -2839,89 +2650,6 @@ dependencies = [ "z32", ] -[[package]] -name = "iroh-docs" -version = "0.28.0" -source = "git+https://github.com/n0-computer/iroh-docs?branch=main#d4ab8db452bbefe7aab45ed25621dde6b6ee3f15" -dependencies = [ - "anyhow", - "async-channel", - "bytes", - "clap", - "colored", - "console", - "derive_more", - "dialoguer", - "ed25519-dalek", - "futures-buffered", - "futures-lite 2.5.0", - "futures-util", - "hex", - "indicatif", - "iroh-base", - "iroh-blake3", - "iroh-blobs", - "iroh-gossip", - "iroh-metrics", - "iroh-net", - "iroh-router", - "nested_enum_utils", - "num_enum", - "portable-atomic", - "postcard", - "quic-rpc", - "quic-rpc-derive", - "rand", - "rand_core", - "redb 1.5.1", - "redb 2.2.0", - "self_cell", - "serde", - "serde-error", - "strum 0.26.3", - "tempfile", - "thiserror 1.0.69", - "tokio", - "tokio-stream", - "tokio-util", - "tracing", -] - -[[package]] -name = "iroh-gossip" -version = "0.28.1" -source = "git+https://github.com/n0-computer/iroh-gossip?branch=main#7c90c3f351585e7a364bfbf3941d07592b20dec6" -dependencies = [ - "anyhow", - "async-channel", - "bytes", - "clap", - "derive_more", - "ed25519-dalek", - "futures-concurrency", - "futures-lite 2.5.0", - "futures-util", - "hex", - "indexmap 2.6.0", - "iroh-base", - "iroh-blake3", - "iroh-metrics", - "iroh-net", - "iroh-router", - "nested_enum_utils", - "postcard", - "quic-rpc", - "quic-rpc-derive", - "rand", - "rand_core", - "serde", - "serde-error", - "strum 0.26.3", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "iroh-io" version = "0.6.1" @@ -3027,7 +2755,7 @@ dependencies = [ "surge-ping", "swarm-discovery", "testresult", - "thiserror", + "thiserror 2.0.3", "time", "tokio", "tokio-rustls", @@ -3112,7 +2840,7 @@ dependencies = [ "nested_enum_utils", "quic-rpc", "quic-rpc-derive", - "rustyline 12.0.0", + "rustyline", "serde", "serde-error", "serde_with", @@ -3138,7 +2866,7 @@ dependencies = [ "rustc-hash", "rustls", "socket2", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", ] @@ -3156,7 +2884,7 @@ dependencies = [ "rustls", "rustls-platform-verifier", "slab", - "thiserror", + "thiserror 1.0.69", "tinyvec", "tracing", ] @@ -3222,7 +2950,7 @@ dependencies = [ "smallvec", "socket2", "stun-rs", - "thiserror", + "thiserror 2.0.3", "time", "tokio", "tokio-rustls", @@ -3289,24 +3017,6 @@ dependencies = [ "either", ] -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -dependencies = [ - "either", -] - [[package]] name = "itoa" version = "1.0.14" @@ -3323,7 +3033,7 @@ dependencies = [ "combine", "jni-sys", "log", - "thiserror", + "thiserror 1.0.69", "walkdir", ] @@ -3353,9 +3063,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.162" +version = "0.2.165" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d287de67fe55fd7e1581fe933d965a5a9477b38e949cfa9f8574ef01506398" +checksum = "fcb4d3d38eab6c5239a362fa8bae48c03baf980a6e7079f063942d563ef3533e" [[package]] name = "libm" @@ -3460,7 +3170,7 @@ dependencies = [ "serde_bencode", "serde_bytes", "sha1_smol", - "thiserror", + "thiserror 1.0.69", "tracing", ] @@ -3526,7 +3236,6 @@ checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ "hermit-abi 0.3.9", "libc", - "log", "wasi", "windows-sys 0.52.0", ] @@ -3632,7 +3341,7 @@ dependencies = [ "anyhow", "byteorder", "paste", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -3646,7 +3355,7 @@ dependencies = [ "log", "netlink-packet-core", "netlink-sys", - "thiserror", + "thiserror 1.0.69", "tokio", ] @@ -3684,7 +3393,7 @@ dependencies = [ "rtnetlink", "serde", "socket2", - "thiserror", + "thiserror 2.0.3", "time", "tokio", "tokio-util", @@ -3724,17 +3433,6 @@ dependencies = [ "libc", ] -[[package]] -name = "nix" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" -dependencies = [ - "bitflags 2.6.0", - "cfg-if", - "libc", -] - [[package]] name = "no-std-compat" version = "0.4.1" @@ -4099,7 +3797,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" dependencies = [ "memchr", - "thiserror", + "thiserror 1.0.69", "ucd-trie", ] @@ -4187,7 +3885,7 @@ dependencies = [ "rand", "self_cell", "simple-dns", - "thiserror", + "thiserror 1.0.69", "tracing", "ureq", "wasm-bindgen", @@ -4325,7 +4023,7 @@ dependencies = [ "serde", "smallvec", "socket2", - "thiserror", + "thiserror 2.0.3", "time", "tokio", "tokio-util", @@ -4609,7 +4307,7 @@ dependencies = [ "rustc-hash", "rustls", "socket2", - "thiserror", + "thiserror 2.0.3", "tokio", "tracing", ] @@ -4628,7 +4326,7 @@ dependencies = [ "rustls", "rustls-pki-types", "slab", - "thiserror", + "thiserror 2.0.3", "tinyvec", "tracing", "web-time", @@ -4640,7 +4338,7 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d5a626c6807713b15cac82a6acaccd6043c9a5408c24baae07611fec3f243da" dependencies = [ - "cfg_aliases 0.2.1", + "cfg_aliases", "libc", "once_cell", "socket2", @@ -4728,26 +4426,6 @@ dependencies = [ "smallvec", ] -[[package]] -name = "ratatui" -version = "0.26.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f44c9e68fd46eda15c646fbb85e1040b657a58cdc8c98db1d97a55930d991eef" -dependencies = [ - "bitflags 2.6.0", - "cassowary", - "compact_str", - "crossterm", - "itertools 0.12.1", - "lru", - "paste", - "stability", - "strum 0.26.3", - "unicode-segmentation", - "unicode-truncate", - "unicode-width", -] - [[package]] name = "raw-cpuid" version = "11.2.0" @@ -4816,7 +4494,7 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom", "libredox", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -4839,17 +4517,6 @@ dependencies = [ "syn 2.0.89", ] -[[package]] -name = "reflink-copy" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc31414597d1cd7fdd2422798b7652a6329dda0fe0219e6335a13d5bcaa9aeb6" -dependencies = [ - "cfg-if", - "rustix", - "windows 0.58.0", -] - [[package]] name = "regex" version = "1.11.1" @@ -5011,7 +4678,7 @@ dependencies = [ "netlink-packet-utils", "netlink-proto", "netlink-sys", - "nix 0.26.4", + "nix 0.27.1", "thiserror 1.0.69", "tokio", ] @@ -5048,9 +4715,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.40" +version = "0.38.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99e4ea3e1cdc4b559b8e5650f9c8e5998e3e5c1343b4eaf034565f32318d63c0" +checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" dependencies = [ "bitflags 2.6.0", "errno", @@ -5061,9 +4728,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.17" +version = "0.23.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f1a745511c54ba6d4465e8d5dfbd81b45791756de28d4981af70d6dca128f1e" +checksum = "9c9cc1d47e243d655ace55ed38201c19ae02c148ae56412ab8750e8f0166ab7f" dependencies = [ "log", "once_cell", @@ -5169,8 +4836,8 @@ checksum = "994eca4bca05c87e86e15d90fc7a91d1be64b4482b38cb2d27474568fe7c9db9" dependencies = [ "bitflags 2.6.0", "cfg-if", - "clipboard-win 4.5.0", - "fd-lock 3.0.13", + "clipboard-win", + "fd-lock", "home", "libc", "log", @@ -5184,28 +4851,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "rustyline" -version = "14.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7803e8936da37efd9b6d4478277f4b2b9bb5cdb37a113e8d63222e58da647e63" -dependencies = [ - "bitflags 2.6.0", - "cfg-if", - "clipboard-win 5.4.0", - "fd-lock 4.0.2", - "home", - "libc", - "log", - "memchr", - "nix 0.26.4", - "radix_trie", - "unicode-segmentation", - "unicode-width 0.1.14", - "utf8parse", - "windows-sys 0.52.0", -] - [[package]] name = "ryu" version = "1.0.18" @@ -5497,27 +5142,6 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" -[[package]] -name = "signal-hook" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" -dependencies = [ - "libc", - "signal-hook-registry", -] - -[[package]] -name = "signal-hook-mio" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd" -dependencies = [ - "libc", - "mio 0.8.11", - "signal-hook", -] - [[package]] name = "signal-hook-registry" version = "1.4.2" @@ -5653,12 +5277,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - [[package]] name = "str-buf" version = "1.0.6" @@ -5763,7 +5381,7 @@ dependencies = [ "pnet_packet", "rand", "socket2", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", ] @@ -5916,7 +5534,7 @@ version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.69", ] [[package]] @@ -5930,9 +5548,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.3" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", @@ -6071,7 +5689,7 @@ dependencies = [ [[package]] name = "tokio-rustls-acme" version = "0.5.0" -source = "git+https://github.com/n0-computer/tokio-rustls-acme?branch=fix-display#15ef6138ef9e071c17bcb1901ce21157e7c59acc" +source = "git+https://github.com/n0-computer/tokio-rustls-acme?branch=main#05f23ec8eaaf1cf7e5d3735c0db3517e7f27f151" dependencies = [ "async-trait", "axum-server", @@ -6088,7 +5706,7 @@ dependencies = [ "rustls", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.3", "time", "tokio", "tokio-rustls", @@ -6157,7 +5775,7 @@ dependencies = [ "http 1.1.0", "httparse", "js-sys", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-tungstenite 0.21.0", "wasm-bindgen", @@ -6285,7 +5903,7 @@ dependencies = [ "http 1.1.0", "pin-project", "thiserror 1.0.69", - "tower 0.4.13", + "tower 0.5.1", "tracing", ] @@ -6308,7 +5926,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" dependencies = [ "crossbeam-channel", - "thiserror", + "thiserror 1.0.69", "time", "tracing-subscriber", ] @@ -6393,7 +6011,7 @@ dependencies = [ "log", "rand", "sha1", - "thiserror", + "thiserror 1.0.69", "url", "utf-8", ] @@ -6474,18 +6092,7 @@ checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" name = "unicode-width" version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3644627a5af5fa321c95b9b235a72fd24cd29c648c2c379431e6628655627bf" -dependencies = [ - "itertools 0.13.0", - "unicode-segmentation", - "unicode-width", -] - -[[package]] -name = "unicode-width" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] name = "unicode-width" @@ -6700,7 +6307,7 @@ dependencies = [ "event-listener 4.0.3", "futures-util", "parking_lot", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -7060,7 +6667,7 @@ dependencies = [ "futures", "log", "serde", - "thiserror", + "thiserror 1.0.69", "windows 0.58.0", "windows-core 0.58.0", ] @@ -7090,7 +6697,7 @@ dependencies = [ "nom", "oid-registry", "rusticata-macros", - "thiserror", + "thiserror 1.0.69", "time", ] diff --git a/Cargo.toml b/Cargo.toml index a27f63f86f..b2b334dcef 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,4 +56,4 @@ iroh-metrics = { path = "./iroh-metrics" } iroh-test = { path = "./iroh-test" } iroh-router = { path = "./iroh-router" } -tokio-rustls-acme = { git = "https://github.com/n0-computer/tokio-rustls-acme", branch = "fix-display" } +tokio-rustls-acme = { git = "https://github.com/n0-computer/tokio-rustls-acme", branch = "main" } From 549d205364fb961f0639c2d4187826ecc3fb599e Mon Sep 17 00:00:00 2001 From: Asmir Avdicevic Date: Tue, 26 Nov 2024 09:36:10 +0000 Subject: [PATCH 13/25] cleanup netlink --- Cargo.lock | 27 ++++----------- iroh-net/Cargo.toml | 6 ++-- net-tools/netwatch/Cargo.toml | 6 ++-- net-tools/netwatch/src/interfaces/linux.rs | 28 +++++++++++---- net-tools/netwatch/src/netmon/linux.rs | 40 ++++++++++++---------- 5 files changed, 56 insertions(+), 51 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7706d814c2..b46faaeccb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2726,7 +2726,7 @@ dependencies = [ "libc", "netdev", "netlink-packet-core", - "netlink-packet-route 0.21.0", + "netlink-packet-route 0.19.0", "netlink-sys", "netwatch", "num_enum", @@ -3317,21 +3317,6 @@ dependencies = [ "netlink-packet-utils", ] -[[package]] -name = "netlink-packet-route" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "483325d4bfef65699214858f097d504eb812c38ce7077d165f301ec406c3066e" -dependencies = [ - "anyhow", - "bitflags 2.6.0", - "byteorder", - "libc", - "log", - "netlink-packet-core", - "netlink-packet-utils", -] - [[package]] name = "netlink-packet-utils" version = "0.5.2" @@ -3387,7 +3372,7 @@ dependencies = [ "libc", "netdev", "netlink-packet-core", - "netlink-packet-route 0.21.0", + "netlink-packet-route 0.19.0", "netlink-sys", "once_cell", "rtnetlink", @@ -5944,9 +5929,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", "valuable", @@ -6659,9 +6644,9 @@ dependencies = [ [[package]] name = "wmi" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbdda506bdee26ba617bd814538b690e14f59e8185345344cff113a8be21c005" +checksum = "70df482bbec7017ce4132154233642de658000b24b805345572036782a66ad55" dependencies = [ "chrono", "futures", diff --git a/iroh-net/Cargo.toml b/iroh-net/Cargo.toml index ef78ff6864..82d46ff825 100644 --- a/iroh-net/Cargo.toml +++ b/iroh-net/Cargo.toml @@ -127,9 +127,9 @@ genawaiter = { version = "0.99", features = ["futures03"], optional = true } [target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies] netlink-packet-core = "0.7.0" -netlink-packet-route = "0.21.0" -netlink-sys = "0.8.5" -rtnetlink = "0.14" +netlink-packet-route = "0.19.0" # 0.20/21 is blocked on rtnetlink bumping its dependency +netlink-sys = "0.8.6" +rtnetlink = "0.14.1" [target.'cfg(target_os = "windows")'.dependencies] wmi = "0.14" diff --git a/net-tools/netwatch/Cargo.toml b/net-tools/netwatch/Cargo.toml index b483b88f24..56bc306071 100644 --- a/net-tools/netwatch/Cargo.toml +++ b/net-tools/netwatch/Cargo.toml @@ -43,9 +43,9 @@ tracing = "0.1" [target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies] netlink-packet-core = "0.7.0" -netlink-packet-route = "0.21.0" -netlink-sys = "0.8.5" -rtnetlink = "0.14" +netlink-packet-route = "0.19.0" # 0.21.0 is blocked on rtnetlink bumping its dependency +netlink-sys = "0.8.6" +rtnetlink = "0.14.1" [target.'cfg(target_os = "windows")'.dependencies] wmi = "0.14" diff --git a/net-tools/netwatch/src/interfaces/linux.rs b/net-tools/netwatch/src/interfaces/linux.rs index 8ceb65a8c1..b7bc16f337 100644 --- a/net-tools/netwatch/src/interfaces/linux.rs +++ b/net-tools/netwatch/src/interfaces/linux.rs @@ -128,18 +128,32 @@ async fn default_route_netlink_family( handle: &rtnetlink::Handle, family: rtnetlink::IpVersion, ) -> Result> { + use netlink_packet_route::route::RouteAttribute; + let mut routes = handle.route().get(family).execute(); while let Some(route) = routes.try_next().await? { - if route.gateway().is_none() { + let route_attrs = route.attributes; + + if !route_attrs + .iter() + .any(|attr| matches!(attr, RouteAttribute::Gateway(_))) + { // A default route has a gateway. continue; } - if route.destination_prefix().is_some() { - // A default route has no destination prefix because it needs to route all + + if route.header.destination_prefix_length > 0 { + // A default route has no destination prefix length because it needs to route all // destinations. continue; } - if let Some(index) = route.output_interface() { + + let index = route_attrs.iter().find_map(|attr| match attr { + RouteAttribute::Oif(index) => Some(*index), + _ => None, + }); + + if let Some(index) = index { if index == 0 { continue; } @@ -152,14 +166,16 @@ async fn default_route_netlink_family( #[cfg(not(target_os = "android"))] async fn iface_by_index(handle: &rtnetlink::Handle, index: u32) -> Result { + use netlink_packet_route::link::LinkAttribute; + let mut links = handle.link().get().match_index(index).execute(); let msg = links .try_next() .await? .ok_or_else(|| anyhow!("No netlink response"))?; - for nla in msg.nlas { - if let netlink_packet_route::link::nlas::Nla::IfName(name) = nla { + for nla in msg.attributes { + if let LinkAttribute::IfName(name) = nla { return Ok(name); } } diff --git a/net-tools/netwatch/src/netmon/linux.rs b/net-tools/netwatch/src/netmon/linux.rs index 1c7154a6e1..fb14849656 100644 --- a/net-tools/netwatch/src/netmon/linux.rs +++ b/net-tools/netwatch/src/netmon/linux.rs @@ -44,7 +44,7 @@ const fn nl_mgrp(group: u32) -> u32 { } macro_rules! get_nla { ($msg:expr, $nla:path) => { - $msg.nlas.iter().find_map(|nla| match nla { + $msg.attributes.iter().find_map(|nla| match nla { $nla(n) => Some(n), _ => None, }) @@ -69,7 +69,8 @@ impl RouteMonitor { let conn_handle = tokio::task::spawn(conn); let handle = tokio::task::spawn(async move { - let mut addr_cache: HashMap>> = HashMap::new(); + // let mut addr_cache: HashMap>> = HashMap::new(); + let mut addr_cache: HashMap> = HashMap::new(); while let Some((message, _)) = messages.next().await { match message.payload { @@ -106,25 +107,28 @@ impl RouteMonitor { trace!("ROUTE:: {:?}", msg); // Ignore the following messages - let table = get_nla!(msg, route::nlas::Nla::Table) + let table = get_nla!(msg, route::RouteAttribute::Table) .copied() .unwrap_or_default(); - if let Some(dst) = get_nla!(msg, route::Nla::Destination) { - let dst_addr = match dst.len() { - 4 => TryInto::<[u8; 4]>::try_into(&dst[..]) - .ok() - .map(IpAddr::from), - 16 => TryInto::<[u8; 16]>::try_into(&dst[..]) - .ok() - .map(IpAddr::from), - _ => None, - }; - if let Some(dst_addr) = dst_addr { - if (table == 255 || table == 254) - && (dst_addr.is_multicast() || is_link_local(dst_addr)) - { - continue; + if let Some(dst) = get_nla!(msg, route::RouteAttribute::Destination) { + match dst { + route::RouteAddress::Inet(addr) => { + if (table == 255 || table == 254) + && (addr.is_multicast() + || is_link_local(IpAddr::V4(*addr))) + { + continue; + } } + route::RouteAddress::Inet6(addr) => { + if (table == 255 || table == 254) + && (addr.is_multicast() + || is_link_local(IpAddr::V6(*addr))) + { + continue; + } + } + _ => {} } } sender.send(NetworkMessage::Change).await.ok(); From 7a0f8ffed860cc337b974f9351f283c2cf7c53b4 Mon Sep 17 00:00:00 2001 From: Asmir Avdicevic Date: Tue, 26 Nov 2024 09:48:51 +0000 Subject: [PATCH 14/25] downgrade rtnetlink --- iroh-net/Cargo.toml | 2 +- net-tools/netwatch/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/iroh-net/Cargo.toml b/iroh-net/Cargo.toml index 82d46ff825..a5cedbeda5 100644 --- a/iroh-net/Cargo.toml +++ b/iroh-net/Cargo.toml @@ -129,7 +129,7 @@ genawaiter = { version = "0.99", features = ["futures03"], optional = true } netlink-packet-core = "0.7.0" netlink-packet-route = "0.19.0" # 0.20/21 is blocked on rtnetlink bumping its dependency netlink-sys = "0.8.6" -rtnetlink = "0.14.1" +rtnetlink = "0.14.0" # 0.14.1 produces compile errors on android [target.'cfg(target_os = "windows")'.dependencies] wmi = "0.14" diff --git a/net-tools/netwatch/Cargo.toml b/net-tools/netwatch/Cargo.toml index 56bc306071..e79220b9bc 100644 --- a/net-tools/netwatch/Cargo.toml +++ b/net-tools/netwatch/Cargo.toml @@ -45,7 +45,7 @@ tracing = "0.1" netlink-packet-core = "0.7.0" netlink-packet-route = "0.19.0" # 0.21.0 is blocked on rtnetlink bumping its dependency netlink-sys = "0.8.6" -rtnetlink = "0.14.1" +rtnetlink = "0.14.0" # 0.14.1 produces compile errors on android [target.'cfg(target_os = "windows")'.dependencies] wmi = "0.14" From ad2c4b457f6cf9ceabc2913e177b2a31b62b61a2 Mon Sep 17 00:00:00 2001 From: Asmir Avdicevic Date: Tue, 26 Nov 2024 09:49:25 +0000 Subject: [PATCH 15/25] pin rtnetlink version --- Cargo.lock | 20 +++++++++++++++++--- iroh-net/Cargo.toml | 2 +- net-tools/netwatch/Cargo.toml | 2 +- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b46faaeccb..f519d34659 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3303,6 +3303,20 @@ dependencies = [ "netlink-packet-utils", ] +[[package]] +name = "netlink-packet-route" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd9ccdfabb457e05c7c61e66eb39262a204fbb376c53968b5e52dce15b423fc5" +dependencies = [ + "anyhow", + "byteorder", + "libc", + "log", + "netlink-packet-core", + "netlink-packet-utils", +] + [[package]] name = "netlink-packet-route" version = "0.19.0" @@ -4652,14 +4666,14 @@ dependencies = [ [[package]] name = "rtnetlink" -version = "0.14.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b684475344d8df1859ddb2d395dd3dac4f8f3422a1aa0725993cb375fc5caba5" +checksum = "bb5bbb61e037711ff30a3657ec537285b2e1ecb5427e4365d275164f0928c884" dependencies = [ "futures", "log", "netlink-packet-core", - "netlink-packet-route 0.19.0", + "netlink-packet-route 0.18.1", "netlink-packet-utils", "netlink-proto", "netlink-sys", diff --git a/iroh-net/Cargo.toml b/iroh-net/Cargo.toml index a5cedbeda5..79085c0861 100644 --- a/iroh-net/Cargo.toml +++ b/iroh-net/Cargo.toml @@ -129,7 +129,7 @@ genawaiter = { version = "0.99", features = ["futures03"], optional = true } netlink-packet-core = "0.7.0" netlink-packet-route = "0.19.0" # 0.20/21 is blocked on rtnetlink bumping its dependency netlink-sys = "0.8.6" -rtnetlink = "0.14.0" # 0.14.1 produces compile errors on android +rtnetlink = "=0.14.0" # 0.14.1 produces compile errors on android [target.'cfg(target_os = "windows")'.dependencies] wmi = "0.14" diff --git a/net-tools/netwatch/Cargo.toml b/net-tools/netwatch/Cargo.toml index e79220b9bc..fe3209011f 100644 --- a/net-tools/netwatch/Cargo.toml +++ b/net-tools/netwatch/Cargo.toml @@ -45,7 +45,7 @@ tracing = "0.1" netlink-packet-core = "0.7.0" netlink-packet-route = "0.19.0" # 0.21.0 is blocked on rtnetlink bumping its dependency netlink-sys = "0.8.6" -rtnetlink = "0.14.0" # 0.14.1 produces compile errors on android +rtnetlink = "=0.14.0" # 0.14.1 produces compile errors on android [target.'cfg(target_os = "windows")'.dependencies] wmi = "0.14" From 47384fc7144c510ef14d362db24c8179cd86edd3 Mon Sep 17 00:00:00 2001 From: Asmir Avdicevic Date: Tue, 26 Nov 2024 09:52:05 +0000 Subject: [PATCH 16/25] thats not it --- Cargo.lock | 20 +++----------------- iroh-net/Cargo.toml | 2 +- net-tools/netwatch/Cargo.toml | 2 +- 3 files changed, 5 insertions(+), 19 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f519d34659..b46faaeccb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3303,20 +3303,6 @@ dependencies = [ "netlink-packet-utils", ] -[[package]] -name = "netlink-packet-route" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd9ccdfabb457e05c7c61e66eb39262a204fbb376c53968b5e52dce15b423fc5" -dependencies = [ - "anyhow", - "byteorder", - "libc", - "log", - "netlink-packet-core", - "netlink-packet-utils", -] - [[package]] name = "netlink-packet-route" version = "0.19.0" @@ -4666,14 +4652,14 @@ dependencies = [ [[package]] name = "rtnetlink" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb5bbb61e037711ff30a3657ec537285b2e1ecb5427e4365d275164f0928c884" +checksum = "b684475344d8df1859ddb2d395dd3dac4f8f3422a1aa0725993cb375fc5caba5" dependencies = [ "futures", "log", "netlink-packet-core", - "netlink-packet-route 0.18.1", + "netlink-packet-route 0.19.0", "netlink-packet-utils", "netlink-proto", "netlink-sys", diff --git a/iroh-net/Cargo.toml b/iroh-net/Cargo.toml index 79085c0861..82d46ff825 100644 --- a/iroh-net/Cargo.toml +++ b/iroh-net/Cargo.toml @@ -129,7 +129,7 @@ genawaiter = { version = "0.99", features = ["futures03"], optional = true } netlink-packet-core = "0.7.0" netlink-packet-route = "0.19.0" # 0.20/21 is blocked on rtnetlink bumping its dependency netlink-sys = "0.8.6" -rtnetlink = "=0.14.0" # 0.14.1 produces compile errors on android +rtnetlink = "0.14.1" [target.'cfg(target_os = "windows")'.dependencies] wmi = "0.14" diff --git a/net-tools/netwatch/Cargo.toml b/net-tools/netwatch/Cargo.toml index fe3209011f..56bc306071 100644 --- a/net-tools/netwatch/Cargo.toml +++ b/net-tools/netwatch/Cargo.toml @@ -45,7 +45,7 @@ tracing = "0.1" netlink-packet-core = "0.7.0" netlink-packet-route = "0.19.0" # 0.21.0 is blocked on rtnetlink bumping its dependency netlink-sys = "0.8.6" -rtnetlink = "=0.14.0" # 0.14.1 produces compile errors on android +rtnetlink = "0.14.1" [target.'cfg(target_os = "windows")'.dependencies] wmi = "0.14" From 67c187905f45a9b88c2674e1929913c38b3a5814 Mon Sep 17 00:00:00 2001 From: Asmir Avdicevic Date: Tue, 26 Nov 2024 10:12:58 +0000 Subject: [PATCH 17/25] clippy --- net-tools/netwatch/src/netmon/linux.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net-tools/netwatch/src/netmon/linux.rs b/net-tools/netwatch/src/netmon/linux.rs index fb14849656..c623d2b995 100644 --- a/net-tools/netwatch/src/netmon/linux.rs +++ b/net-tools/netwatch/src/netmon/linux.rs @@ -90,7 +90,7 @@ impl RouteMonitor { // already cached continue; } else { - addrs.insert(addr.clone()); + addrs.insert(*addr); sender.send(NetworkMessage::Change).await.ok(); } } From c644d1ac382baf91859413f687b887915638e12a Mon Sep 17 00:00:00 2001 From: Asmir Avdicevic Date: Tue, 26 Nov 2024 13:57:24 +0100 Subject: [PATCH 18/25] some horrible casting for windows --- net-tools/netwatch/src/netmon/windows.rs | 36 ++++++++++++++++-------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/net-tools/netwatch/src/netmon/windows.rs b/net-tools/netwatch/src/netmon/windows.rs index 1b60a425cf..a26fba5ee5 100644 --- a/net-tools/netwatch/src/netmon/windows.rs +++ b/net-tools/netwatch/src/netmon/windows.rs @@ -66,7 +66,7 @@ impl Drop for CallbackHandler { let handles: Vec<_> = self .unicast_callbacks .keys() - .map(|h| UnicastCallbackHandle(Handle(*h))) + .map(|h| UnicastCallbackHandle(Handle(*h as *mut c_void))) .collect(); for handle in handles { @@ -76,7 +76,7 @@ impl Drop for CallbackHandler { let handles: Vec<_> = self .route_callbacks .keys() - .map(|h| RouteCallbackHandle(Handle(*h))) + .map(|h| RouteCallbackHandle(Handle(*h as *mut c_void))) .collect(); for handle in handles { @@ -100,16 +100,19 @@ impl CallbackHandler { let mut handle = Handle::default(); let cb = Arc::new(cb); unsafe { - windows::Win32::NetworkManagement::IpHelper::NotifyUnicastIpAddressChange( + let r = windows::Win32::NetworkManagement::IpHelper::NotifyUnicastIpAddressChange( windows::Win32::Networking::WinSock::AF_UNSPEC, Some(unicast_change_callback), Some(Arc::as_ptr(&cb) as *const c_void), // context BOOLEAN::from(false), // initial notification, &mut handle, - )?; + ); + if r.is_err() { + return Err(anyhow::anyhow!("NotifyUnicastIpAddressChange failed: {:?}", r)); + } } - self.unicast_callbacks.insert(handle.0, cb); + self.unicast_callbacks.insert(handle.0 as isize, cb); Ok(UnicastCallbackHandle(handle)) } @@ -119,9 +122,12 @@ impl CallbackHandler { handle: UnicastCallbackHandle, ) -> Result<()> { trace!("unregistering unicast callback"); - if self.unicast_callbacks.remove(&handle.0 .0).is_some() { + if self.unicast_callbacks.remove(&(handle.0 .0 as isize)).is_some() { unsafe { - windows::Win32::NetworkManagement::IpHelper::CancelMibChangeNotify2(handle.0)?; + let r = windows::Win32::NetworkManagement::IpHelper::CancelMibChangeNotify2(handle.0); + if r.is_err() { + return Err(anyhow::anyhow!("CancelMibChangeNotify2 failed: {:?}", r)); + } } } @@ -133,25 +139,31 @@ impl CallbackHandler { let mut handle = Handle::default(); let cb = Arc::new(cb); unsafe { - windows::Win32::NetworkManagement::IpHelper::NotifyRouteChange2( + let r = windows::Win32::NetworkManagement::IpHelper::NotifyRouteChange2( windows::Win32::Networking::WinSock::AF_UNSPEC, Some(route_change_callback), Arc::as_ptr(&cb) as *const c_void, // context BOOLEAN::from(false), // initial notification, &mut handle, - )?; + ); + if r.is_err() { + return Err(anyhow::anyhow!("NotifyRouteChange2 failed: {:?}", r)); + } } - self.route_callbacks.insert(handle.0, cb); + self.route_callbacks.insert(handle.0 as isize, cb); Ok(RouteCallbackHandle(handle)) } fn unregister_route_change_callback(&mut self, handle: RouteCallbackHandle) -> Result<()> { trace!("unregistering route callback"); - if self.route_callbacks.remove(&handle.0 .0).is_some() { + if self.route_callbacks.remove(&(handle.0 .0 as isize)).is_some() { unsafe { - windows::Win32::NetworkManagement::IpHelper::CancelMibChangeNotify2(handle.0)?; + let r = windows::Win32::NetworkManagement::IpHelper::CancelMibChangeNotify2(handle.0); + if r.is_err() { + return Err(anyhow::anyhow!("CancelMibChangeNotify2 failed: {:?}", r)); + } } } From 542b08e1ca05c2ef068f29774299dd30e0b614ad Mon Sep 17 00:00:00 2001 From: root Date: Tue, 26 Nov 2024 15:04:11 +0000 Subject: [PATCH 19/25] fix linux/android builds --- Cargo.lock | 44 +++++++++++++++++++++++++++++++---- iroh-net/Cargo.toml | 12 +++++++--- net-tools/netwatch/Cargo.toml | 12 +++++++--- 3 files changed, 58 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b46faaeccb..6b65eff30d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2727,6 +2727,7 @@ dependencies = [ "netdev", "netlink-packet-core", "netlink-packet-route 0.19.0", + "netlink-packet-route 0.21.0", "netlink-sys", "netwatch", "num_enum", @@ -2743,7 +2744,8 @@ dependencies = [ "regex", "reqwest", "ring", - "rtnetlink", + "rtnetlink 0.13.1", + "rtnetlink 0.14.1", "rustls", "rustls-webpki", "serde", @@ -3317,6 +3319,21 @@ dependencies = [ "netlink-packet-utils", ] +[[package]] +name = "netlink-packet-route" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "483325d4bfef65699214858f097d504eb812c38ce7077d165f301ec406c3066e" +dependencies = [ + "anyhow", + "bitflags 2.6.0", + "byteorder", + "libc", + "log", + "netlink-packet-core", + "netlink-packet-utils", +] + [[package]] name = "netlink-packet-utils" version = "0.5.2" @@ -3375,7 +3392,8 @@ dependencies = [ "netlink-packet-route 0.19.0", "netlink-sys", "once_cell", - "rtnetlink", + "rtnetlink 0.13.1", + "rtnetlink 0.14.1", "serde", "socket2", "thiserror 2.0.3", @@ -4631,9 +4649,9 @@ dependencies = [ [[package]] name = "rsa" -version = "0.9.6" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" +checksum = "47c75d7c5c6b673e58bf54d8544a9f432e3a925b0e80f7cd3602ab5c50c55519" dependencies = [ "const-oid", "digest", @@ -4650,6 +4668,24 @@ dependencies = [ "zeroize", ] +[[package]] +name = "rtnetlink" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a552eb82d19f38c3beed3f786bd23aa434ceb9ac43ab44419ca6d67a7e186c0" +dependencies = [ + "futures", + "log", + "netlink-packet-core", + "netlink-packet-route 0.17.1", + "netlink-packet-utils", + "netlink-proto", + "netlink-sys", + "nix 0.26.4", + "thiserror 1.0.69", + "tokio", +] + [[package]] name = "rtnetlink" version = "0.14.1" diff --git a/iroh-net/Cargo.toml b/iroh-net/Cargo.toml index 82d46ff825..136545c5df 100644 --- a/iroh-net/Cargo.toml +++ b/iroh-net/Cargo.toml @@ -125,11 +125,17 @@ swarm-discovery = { version = "0.2.1", optional = true } # dht_discovery genawaiter = { version = "0.99", features = ["futures03"], optional = true } -[target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies] +[target.'cfg(all(target_os = "linux", not(target_os = "android")))'.dependencies] netlink-packet-core = "0.7.0" -netlink-packet-route = "0.19.0" # 0.20/21 is blocked on rtnetlink bumping its dependency +netlink-packet-route = "0.21" netlink-sys = "0.8.6" -rtnetlink = "0.14.1" +rtnetlink = "=0.14.1" # pinned because of https://github.com/rust-netlink/rtnetlink/issues/83 + +[target.'cfg(target_os = "android")'.dependencies] +netlink-packet-core = "0.7.0" +netlink-packet-route = "0.19" # 0.20/21 is blocked on rtnetlink bumping its dependency +netlink-sys = "0.8.6" +rtnetlink = "=0.13.1" # pinned because of https://github.com/rust-netlink/rtnetlink/issues/83 [target.'cfg(target_os = "windows")'.dependencies] wmi = "0.14" diff --git a/net-tools/netwatch/Cargo.toml b/net-tools/netwatch/Cargo.toml index 56bc306071..9531158a2f 100644 --- a/net-tools/netwatch/Cargo.toml +++ b/net-tools/netwatch/Cargo.toml @@ -41,11 +41,17 @@ tokio = { version = "1", features = [ tokio-util = { version = "0.7", features = ["rt"] } tracing = "0.1" -[target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies] +[target.'cfg(all(target_os = "linux", not(target_os = "android")))'.dependencies] netlink-packet-core = "0.7.0" -netlink-packet-route = "0.19.0" # 0.21.0 is blocked on rtnetlink bumping its dependency +netlink-packet-route = "0.19" # 0.20/21 is blocked on rtnetlink bumping its dependency netlink-sys = "0.8.6" -rtnetlink = "0.14.1" +rtnetlink = "=0.14.1" # pinned because of https://github.com/rust-netlink/rtnetlink/issues/83 + +[target.'cfg(target_os = "android")'.dependencies] +netlink-packet-core = "0.7.0" +netlink-packet-route = "0.19" # 0.20/21 is blocked on rtnetlink bumping its dependency +netlink-sys = "0.8.6" +rtnetlink = "=0.13.1" # pinned because of https://github.com/rust-netlink/rtnetlink/issues/83 [target.'cfg(target_os = "windows")'.dependencies] wmi = "0.14" From 99fb605acb16c3990a4c6622c613434dd555f854 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 26 Nov 2024 15:08:37 +0000 Subject: [PATCH 20/25] bump governor dep --- iroh-dns-server/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iroh-dns-server/Cargo.toml b/iroh-dns-server/Cargo.toml index 194e6e7527..b8a49ec369 100644 --- a/iroh-dns-server/Cargo.toml +++ b/iroh-dns-server/Cargo.toml @@ -25,7 +25,7 @@ derive_more = { version = "1.0.0", features = [ ] } dirs-next = "2.0.0" futures-lite = "2.5" -governor = "0.6.0" #needs new release of tower_governor for 0.7.0 +governor = "0.6.3" #needs new release of tower_governor for 0.7.0 hickory-proto = "=0.25.0-alpha.2" hickory-server = { version = "=0.25.0-alpha.2", features = ["dns-over-rustls"] } http = "1.0.0" From b0cb5175b8fc1223af9540c66e159eb6de171633 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 26 Nov 2024 15:20:09 +0000 Subject: [PATCH 21/25] fmt --- net-tools/netwatch/src/netmon/windows.rs | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/net-tools/netwatch/src/netmon/windows.rs b/net-tools/netwatch/src/netmon/windows.rs index a26fba5ee5..95038a6399 100644 --- a/net-tools/netwatch/src/netmon/windows.rs +++ b/net-tools/netwatch/src/netmon/windows.rs @@ -108,7 +108,10 @@ impl CallbackHandler { &mut handle, ); if r.is_err() { - return Err(anyhow::anyhow!("NotifyUnicastIpAddressChange failed: {:?}", r)); + return Err(anyhow::anyhow!( + "NotifyUnicastIpAddressChange failed: {:?}", + r + )); } } @@ -122,9 +125,14 @@ impl CallbackHandler { handle: UnicastCallbackHandle, ) -> Result<()> { trace!("unregistering unicast callback"); - if self.unicast_callbacks.remove(&(handle.0 .0 as isize)).is_some() { + if self + .unicast_callbacks + .remove(&(handle.0 .0 as isize)) + .is_some() + { unsafe { - let r = windows::Win32::NetworkManagement::IpHelper::CancelMibChangeNotify2(handle.0); + let r = + windows::Win32::NetworkManagement::IpHelper::CancelMibChangeNotify2(handle.0); if r.is_err() { return Err(anyhow::anyhow!("CancelMibChangeNotify2 failed: {:?}", r)); } @@ -158,9 +166,14 @@ impl CallbackHandler { fn unregister_route_change_callback(&mut self, handle: RouteCallbackHandle) -> Result<()> { trace!("unregistering route callback"); - if self.route_callbacks.remove(&(handle.0 .0 as isize)).is_some() { + if self + .route_callbacks + .remove(&(handle.0 .0 as isize)) + .is_some() + { unsafe { - let r = windows::Win32::NetworkManagement::IpHelper::CancelMibChangeNotify2(handle.0); + let r = + windows::Win32::NetworkManagement::IpHelper::CancelMibChangeNotify2(handle.0); if r.is_err() { return Err(anyhow::anyhow!("CancelMibChangeNotify2 failed: {:?}", r)); } From c08c6e9943c11e1b2109f9f0ca3272c92fafcfbe Mon Sep 17 00:00:00 2001 From: Asmir Avdicevic Date: Tue, 26 Nov 2024 19:24:33 +0100 Subject: [PATCH 22/25] cleanup of stub structs --- iroh-net/src/test_utils.rs | 5 +---- iroh-relay/src/server.rs | 22 +++++----------------- 2 files changed, 6 insertions(+), 21 deletions(-) diff --git a/iroh-net/src/test_utils.rs b/iroh-net/src/test_utils.rs index 22956368e7..80b8a7257a 100644 --- a/iroh-net/src/test_utils.rs +++ b/iroh-net/src/test_utils.rs @@ -39,9 +39,6 @@ pub async fn run_relay_server() -> Result<(RelayMap, RelayUrl, Server)> { pub async fn run_relay_server_with( stun: Option, ) -> Result<(RelayMap, RelayUrl, Server)> { - #[derive(Default, Debug, derive_more::Display)] - struct Stub; - let cert = rcgen::generate_simple_self_signed(vec!["localhost".to_string(), "127.0.0.1".to_string()]) .expect("valid"); @@ -53,7 +50,7 @@ pub async fn run_relay_server_with( relay: Some(RelayConfig { http_bind_addr: (Ipv4Addr::LOCALHOST, 0).into(), tls: Some(TlsConfig { - cert: CertConfig::::Manual { + cert: CertConfig::<(), ()>::Manual { private_key, certs: vec![rustls_cert.clone()], }, diff --git a/iroh-relay/src/server.rs b/iroh-relay/src/server.rs index d2134b40d1..c8400c79a6 100644 --- a/iroh-relay/src/server.rs +++ b/iroh-relay/src/server.rs @@ -707,11 +707,8 @@ mod tests { }; async fn spawn_local_relay() -> Result { - #[derive(Debug)] - struct Stub; - - Server::spawn(ServerConfig:: { - relay: Some(RelayConfig:: { + Server::spawn(ServerConfig::<(), ()> { + relay: Some(RelayConfig::<(), ()> { http_bind_addr: (Ipv4Addr::LOCALHOST, 0).into(), tls: None, limits: Default::default(), @@ -724,11 +721,8 @@ mod tests { #[tokio::test] async fn test_no_services() { - #[derive(Default, Debug)] - struct Stub; - let _guard = iroh_test::logging::setup(); - let mut server = Server::spawn(ServerConfig::::default()) + let mut server = Server::spawn(ServerConfig::<(), ()>::default()) .await .unwrap(); let res = tokio::time::timeout(Duration::from_secs(5), server.task_handle()) @@ -740,11 +734,8 @@ mod tests { #[tokio::test] async fn test_conflicting_bind() { - #[derive(Debug)] - struct Stub; - let _guard = iroh_test::logging::setup(); - let mut server = Server::spawn(ServerConfig:: { + let mut server = Server::spawn(ServerConfig::<(), ()> { relay: Some(RelayConfig { http_bind_addr: (Ipv4Addr::LOCALHOST, 1234).into(), tls: None, @@ -1015,11 +1006,8 @@ mod tests { #[tokio::test] async fn test_stun() { - #[derive(Debug)] - struct Stub; - let _guard = iroh_test::logging::setup(); - let server = Server::spawn(ServerConfig:: { + let server = Server::spawn(ServerConfig::<(), ()> { relay: None, stun: Some(StunConfig { bind_addr: (Ipv4Addr::LOCALHOST, 0).into(), From 95c7227a07537964945eda8a119c9ee8ada37384 Mon Sep 17 00:00:00 2001 From: Asmir Avdicevic Date: Wed, 27 Nov 2024 11:05:57 +0100 Subject: [PATCH 23/25] cleanup deps --- Cargo.toml | 2 -- deny.toml | 1 - 2 files changed, 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index b2b334dcef..2574ed852a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -55,5 +55,3 @@ iroh-net = { path = "./iroh-net" } iroh-metrics = { path = "./iroh-metrics" } iroh-test = { path = "./iroh-test" } iroh-router = { path = "./iroh-router" } - -tokio-rustls-acme = { git = "https://github.com/n0-computer/tokio-rustls-acme", branch = "main" } diff --git a/deny.toml b/deny.toml index 800c849d90..dd450c447f 100644 --- a/deny.toml +++ b/deny.toml @@ -12,7 +12,6 @@ allow = [ "ISC", "MIT", "OpenSSL", - "Unicode-DFS-2016", "Zlib", "MPL-2.0", # https://fossa.com/blog/open-source-software-licenses-101-mozilla-public-license-2-0/ "Unicode-3.0", From 28277f304ff875a9b604595dadabaa449ce67611 Mon Sep 17 00:00:00 2001 From: Asmir Avdicevic Date: Wed, 27 Nov 2024 11:34:17 +0100 Subject: [PATCH 24/25] toml update --- Cargo.lock | 13 +++++++------ iroh-dns-server/Cargo.toml | 2 +- iroh-relay/Cargo.toml | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6b65eff30d..794071b3c6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3065,9 +3065,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.165" +version = "0.2.166" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb4d3d38eab6c5239a362fa8bae48c03baf980a6e7079f063942d563ef3533e" +checksum = "c2ccc108bbc0b1331bd061864e7cd823c0cab660bbe6970e66e2c0614decde36" [[package]] name = "libm" @@ -5709,8 +5709,9 @@ dependencies = [ [[package]] name = "tokio-rustls-acme" -version = "0.5.0" -source = "git+https://github.com/n0-computer/tokio-rustls-acme?branch=main#05f23ec8eaaf1cf7e5d3735c0db3517e7f27f151" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3184e8e292a828dd4bca5b2a60aba830ec5ed873a66c9ebb6e65038fa649e827" dependencies = [ "async-trait", "axum-server", @@ -5954,9 +5955,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", diff --git a/iroh-dns-server/Cargo.toml b/iroh-dns-server/Cargo.toml index b8a49ec369..06b1f99083 100644 --- a/iroh-dns-server/Cargo.toml +++ b/iroh-dns-server/Cargo.toml @@ -46,7 +46,7 @@ tokio-rustls = { version = "0.26", default-features = false, features = [ "logging", "ring", ] } -tokio-rustls-acme = { version = "0.5", features = ["axum"] } +tokio-rustls-acme = { version = "0.6", features = ["axum"] } tokio-stream = "0.1.14" tokio-util = "0.7" toml = "0.8.10" diff --git a/iroh-relay/Cargo.toml b/iroh-relay/Cargo.toml index b7f7a5f829..b94904e4d7 100644 --- a/iroh-relay/Cargo.toml +++ b/iroh-relay/Cargo.toml @@ -80,7 +80,7 @@ tokio-rustls = { version = "0.26", default-features = false, features = [ "logging", "ring", ] } -tokio-rustls-acme = { version = "0.5", optional = true } +tokio-rustls-acme = { version = "0.6", optional = true } tokio-tungstenite = "0.24" tokio-tungstenite-wasm = "0.3" tokio-util = { version = "0.7", features = ["io-util", "io", "codec", "rt"] } From a6ffc2dc7318bb5c6afd61d079f0cb5aee9698ed Mon Sep 17 00:00:00 2001 From: Asmir Avdicevic Date: Wed, 27 Nov 2024 11:52:43 +0100 Subject: [PATCH 25/25] align tokio deps --- iroh-net/bench/Cargo.toml | 2 +- iroh-router/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/iroh-net/bench/Cargo.toml b/iroh-net/bench/Cargo.toml index 34376c4206..6c9d609241 100644 --- a/iroh-net/bench/Cargo.toml +++ b/iroh-net/bench/Cargo.toml @@ -15,7 +15,7 @@ quinn = { package = "iroh-quinn", version = "0.12" } rcgen = "0.13" rustls = { version = "0.23", default-features = false, features = ["ring"] } clap = { version = "4", features = ["derive"] } -tokio = { version = "1.0.1", features = ["rt", "sync"] } +tokio = { version = "1", features = ["rt", "sync"] } tracing = "0.1" tracing-subscriber = { version = "0.3.0", default-features = false, features = [ "env-filter", diff --git a/iroh-router/Cargo.toml b/iroh-router/Cargo.toml index 25866000c5..a0b2a39b92 100644 --- a/iroh-router/Cargo.toml +++ b/iroh-router/Cargo.toml @@ -16,7 +16,7 @@ futures-buffered = "0.2.9" futures-lite = "2.5" futures-util = "0.3.31" iroh-net = { version = "0.28.1", path = "../iroh-net" } -tokio = "1.41.0" +tokio = "1" tokio-util = "0.7" tracing = "0.1"