mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 18:18:55 +00:00
3ced9ebee2a0658a4edcb2d9444dfdf998fa8df7
181 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
9b7c5d4ebd |
feat(windows): use ProgramData to store device ID instead of per-user… (#3172)
Fulfills #3159. This means the device ID is only tied to the Windows install instead of the user account. I also fixed up the logs and errors for that module real quick since I was already there. |
||
|
|
b8aa9fcc9d |
feat(windows): When the tunnel is ready, show a notification (#3166)
This is handy since the systray icon is hidden by default:  --------- Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com> Co-authored-by: Jamil <jamilbk@users.noreply.github.com> |
||
|
|
a63f178eff |
feat(windows): switch to the new auth flow per #2823 (#3147)
Also refactored to extract an auth state machine. The auth logic previously was scattered throughout the GUI module, which would make it hard to audit. Because of the refactoring I was able to add some simple unit tests. |
||
|
|
8fddde371e |
feat(windows): log Git version used to build the client (#3144)
Fulfills #3141 It took a little longer than I expected but since I'll be leaving the client running all the time even on my dev laptop, I want to easily see what version I built, even if I've changed branches since building it. |
||
|
|
33133d7448 |
feat(windows): new module to listen for network changes (#3137)
This isn't hooked up to the GUI yet, it's a debug subcommand. I overheard that the other clients rebuild the tunnel when they change networks, I think? And this might be useful for debugging the issue where Chrome / other browsers don't flush their TCP connections when the tunnel comes up. It's also reference code for how to use COM interfaces in Rust. The official samples are a little sparse. So I wanted to get this checked in.  |
||
|
|
9852808fc2 |
build(deps): Bump clap from 4.4.11 to 4.4.13 in /rust (#3136)
Bumps [clap](https://github.com/clap-rs/clap) from 4.4.11 to 4.4.13. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p> <blockquote> <h2>v4.4.13</h2> <h2>[4.4.13] - 2024-01-04</h2> <h3>Documentation</h3> <ul> <li>Fix link to structopt migration guide</li> </ul> <h2>v4.4.12</h2> <h2>[4.4.12] - 2023-12-28</h2> <h3>Performance</h3> <ul> <li>Only ask <code>TypedValueParser</code> for possible values if needed</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p> <blockquote> <h2>[4.4.13] - 2024-01-04</h2> <h3>Documentation</h3> <ul> <li>Fix link to structopt migration guide</li> </ul> <h2>[4.4.12] - 2023-12-28</h2> <h3>Performance</h3> <ul> <li>Only ask <code>TypedValueParser</code> for possible values if needed</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
23f8d1f904 |
wip(windows): make sure app panics show up in the logs (#3085)
Related to this discussion https://github.com/firezone/firezone/pull/2990#discussion_r1439629571 Add a dependency on the `tracing-panic` crate. This is about 100 lines of code that adds a panic handle so app panics get a line number, file name, etc. in the logs. No backtrace I think since we stripe symbols for release builds. I _think_ the line numbers are baked into the panic macro so those might still stay. @conectado I should remove the debug command before closing it, right? |
||
|
|
66ad1d0f47 |
build(deps): Bump itertools from 0.11.0 to 0.12.0 in /rust (#2679)
Bumps [itertools](https://github.com/rust-itertools/itertools) from 0.11.0 to 0.12.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md">itertools's changelog</a>.</em></p> <blockquote> <h2>0.12.0</h2> <h3>Breaking</h3> <ul> <li>Made <code>take_while_inclusive</code> consume iterator by value (<a href="https://redirect.github.com/rust-itertools/itertools/issues/709">#709</a>)</li> <li>Added <code>Clone</code> bound to <code>Unique</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/777">#777</a>)</li> </ul> <h3>Added</h3> <ul> <li>Added <code>Itertools::try_len</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/723">#723</a>)</li> <li>Added free function <code>sort_unstable</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/796">#796</a>)</li> <li>Added <code>GroupMap::fold_with</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/778">#778</a>, <a href="https://redirect.github.com/rust-itertools/itertools/issues/785">#785</a>)</li> <li>Added <code>PeekNth::{peek_mut, peek_nth_mut}</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/716">#716</a>)</li> <li>Added <code>PeekNth::{next_if, next_if_eq}</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/734">#734</a>)</li> <li>Added conversion into <code>(Option<A>,Option<B>)</code> to <code>EitherOrBoth</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/713">#713</a>)</li> <li>Added conversion from <code>Either<A, B></code> to <code>EitherOrBoth<A, B></code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/715">#715</a>)</li> <li>Implemented <code>ExactSizeIterator</code> for <code>Tuples</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/761">#761</a>)</li> <li>Implemented <code>ExactSizeIterator</code> for <code>(Circular)TupleWindows</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/752">#752</a>)</li> <li>Made <code>EitherOrBoth<T></code> a shorthand for <code>EitherOrBoth<T, T></code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/719">#719</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Added missing <code>#[must_use]</code> annotations on iterator adaptors (<a href="https://redirect.github.com/rust-itertools/itertools/issues/794">#794</a>)</li> <li>Made <code>Combinations</code> lazy (<a href="https://redirect.github.com/rust-itertools/itertools/issues/795">#795</a>)</li> <li>Made <code>Intersperse(With)</code> lazy (<a href="https://redirect.github.com/rust-itertools/itertools/issues/797">#797</a>)</li> <li>Made <code>Permutations</code> lazy (<a href="https://redirect.github.com/rust-itertools/itertools/issues/793">#793</a>)</li> <li>Made <code>Product</code> lazy (<a href="https://redirect.github.com/rust-itertools/itertools/issues/800">#800</a>)</li> <li>Made <code>TupleWindows</code> lazy (<a href="https://redirect.github.com/rust-itertools/itertools/issues/602">#602</a>)</li> <li>Specialized <code>Combinations::{count, size_hint}</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/729">#729</a>)</li> <li>Specialized <code>CombinationsWithReplacement::{count, size_hint}</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/737">#737</a>)</li> <li>Specialized <code>Powerset::fold</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/765">#765</a>)</li> <li>Specialized <code>Powerset::count</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/735">#735</a>)</li> <li>Specialized <code>TupleCombinations::{count, size_hint}</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/763">#763</a>)</li> <li>Specialized <code>TupleCombinations::fold</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/775">#775</a>)</li> <li>Specialized <code>WhileSome::fold</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/780">#780</a>)</li> <li>Specialized <code>WithPosition::fold</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/772">#772</a>)</li> <li>Specialized <code>ZipLongest::fold</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/774">#774</a>)</li> <li>Changed <code>{min, max}_set*</code> operations require <code>alloc</code> feature, instead of <code>std</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/760">#760</a>)</li> <li>Improved documentation of <code>tree_fold1</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/787">#787</a>)</li> <li>Improved documentation of <code>permutations</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/724">#724</a>)</li> <li>Fixed typo in documentation of <code>multiunzip</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/770">#770</a>)</li> </ul> <h3>Notable Internal Changes</h3> <ul> <li>Improved specialization tests (<a href="https://redirect.github.com/rust-itertools/itertools/issues/799">#799</a>, <a href="https://redirect.github.com/rust-itertools/itertools/issues/786">#786</a>, <a href="https://redirect.github.com/rust-itertools/itertools/issues/782">#782</a>)</li> <li>Simplified implementation of <code>Permutations</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/739">#739</a>, <a href="https://redirect.github.com/rust-itertools/itertools/issues/748">#748</a>, <a href="https://redirect.github.com/rust-itertools/itertools/issues/790">#790</a>)</li> <li>Combined <code>Merge</code>/<code>MergeBy</code>/<code>MergeJoinBy</code> implementations (<a href="https://redirect.github.com/rust-itertools/itertools/issues/736">#736</a>)</li> <li>Simplified <code>Permutations::size_hint</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/739">#739</a>)</li> <li>Fix wrapping arithmetic in benchmarks (<a href="https://redirect.github.com/rust-itertools/itertools/issues/770">#770</a>)</li> <li>Enforced <code>rustfmt</code> in CI (<a href="https://redirect.github.com/rust-itertools/itertools/issues/751">#751</a>)</li> <li>Disallowed compile warnings in CI (<a href="https://redirect.github.com/rust-itertools/itertools/issues/720">#720</a>)</li> <li>Used <code>cargo hack</code> to check MSRV (<a href="https://redirect.github.com/rust-itertools/itertools/issues/754">#754</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
d8264cf664 |
feat(windows): implement export logs as zip (#3009)
This will be useful if I'm doing production-like testing in the Windows Server VM. |
||
|
|
71410b0553 |
feat(connlib): wildcard matching dns (#3109)
Fixes #3040 |
||
|
|
3a4f2cf9c0 | fix(windows): set MTU on tunnel interface (#2990) | ||
|
|
ed3e76894a |
wip(windows): impl get_host_name (#3089)
Resolves #3082 I can remove the debug subcommand before merging. I just wanted to confirm it gets my laptop's hostname. connlib already has an indirect dependency on `hostname` via Hickory, so I just used that.  |
||
|
|
11ada00617 |
feat: introduce firezone-connection with basic test suite (#2965)
Initial version of the `firezone-connection` crate. To begin with, we only establish a connection in a LAN, i.e. no hole-punching, no STUN or TURN servers, just host candidates. As such, a lot of this PR is just scaffolding for setting up the test environment and the actual `ConnectionPool` implementation. For the curious, I've left some TODOs where I am going to attempt extending the implementation once we start dealing with STUN and TURN servers. I also extended CI to run these tests. |
||
|
|
a5330f4e77 |
fix(rust): Incorrect perms on rust/ files (#2991)
Somehow these got changed. |
||
|
|
09bfb72d3b |
refactor(windows): don't block connlib callbacks (#2960)
The code is not pretty but if I land this then I can make it pretty later. --------- Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com> Co-authored-by: Gabi <gabrielalejandro7@gmail.com> |
||
|
|
5edfe80eb0 |
connlib: tune disconnect parameters (#2977)
Should fix #2946 (still testing, trying to reproduce the error reported in the issue) |
||
|
|
6ebbe746e8 |
feat(windows): count log files (#2964)
There's a 200 ms delay between each file, for debugging. It's nice to demo how it thinks, but it needs to go behind a fault injection flag or be removed completely before merging.  |
||
|
|
7e6f2621b4 |
feat(windows): Handle routes and DNS (#2889)
Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com> Co-authored-by: Jamil <jamilbk@users.noreply.github.com> |
||
|
|
73823ecba0 |
Fix/firezone id handling (#2958)
fixes #2651 Wip because firezone portal doesn't handle names longer than 8 characters yet cc @AndrewDryga |
||
|
|
b28e99cdab |
chore(ci): Use 1.0.0 as version base (#2949)
Fixes #2948 So it seems that it's easiest just to use an old-fashioned semver string. This means we'll need to keep a version matrix in the docs of which components are supported and for how long, but it's better than having different version schemes for different Firezone components altogether. |
||
|
|
64f76f5edb |
feat(windows): Elevate with UAC automatically on startup (#2913)
Automatically write the wintun.dll file on startup and then detect whether we need to elevate to admin privileges. I check for privileges by making a test tunnel, so I did #2758 as part of this, which bundles the DLL inside the exe, and then the exe deploys it. --------- Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com> Co-authored-by: Jamil <jamilbk@users.noreply.github.com> |
||
|
|
a40d550bb0 |
refactor(windows): remove unused code, redundant platform checks (#2937)
Removes local_webserver module and many redundant stubs for Unix |
||
|
|
6b0149e58d |
ci(windows): remove hello-world and permissions-test projects (#2926)
Don't need them any more. `build-tauri` is about 5 minutes faster without the permissions test, since it had to be a separate project / workspace entirely and rebuilt a bunch of stuff. That's a reason I prefer subcommands. For some reason sccache didn't seem to do much for it. This is also a flaw in Tauri, I couldn't figure out any proper way to keep a Tauri project inside the examples dir of another Tauri project. With two non-Tauri apps it's easier and probably wouldn't add much build time. |
||
|
|
0013a18586 | Remove SMBios (#2921) | ||
|
|
8fcc99ae14 |
windows: fix deep links (#2903)
Stacked on PR #2888 This will fix #2878 by setting some Windows security permissions to let non-admin clients connect to a named pipe server owned by an admin process. It should also give us a path to fix 2808 (If I link it, Github assumes this PR closes that issue?), since it'll be our own code instead of tauri-plugin-deep-link, and we can just choose not to panic. I'm using Tokio's `named_pipe` module where that panic happens, and Tokio is good about just returning Results instead of panicking. --------- Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com> Co-authored-by: Jamil <jamilbk@users.noreply.github.com> |
||
|
|
aa46089dd1 |
windows: use settings log_filter instead of env var (#2888)
Stacked on PR #2883 There will be more changes after this PR, these features are still broken: - Can't change filter at runtime yet, you have to restart the client app - connlib and GUI are sending logs to the same connlib logs files, they should be separated --------- Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com> Co-authored-by: Jamil <jamilbk@users.noreply.github.com> |
||
|
|
d1a7211f64 |
windows: Integrate wintun, run the VPN (#2883)
With this one, ICMP and TCP work, but the client doesn't set up routes or handle DNS yet, so I've been using `netsh` to fake that. --------- Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com> Co-authored-by: Jamil <jamilbk@users.noreply.github.com> |
||
|
|
a339f5b437 |
feat(windows): generate device ID and persist it on disk (#2840)
Relating to #2697 and #2711 --------- Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com> |
||
|
|
8e34457340 |
Add support for DNS sudomains (#2735)
This PR changes the protocol and adds support for DNS subdomains, now when a DNS resource is added all its subdomains are automatically tunneled too. Later we will add support for `*.domain` or `?.domain` but currently there is an Apple split tunnel implementation limitation which is too labor-intensive to fix right away. Fixes #2661 Co-authored-by: Andrew Dryga <andrew@dryga.com> |
||
|
|
6d9360c150 |
windows: fix advanced settings loading, catch deep link error (#2811)
Based / Blocked on #2795 Fixes #2807 where I accidentally bail out of the controller task if the settings file is missing or isn't valid in any way. --------- Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com> Co-authored-by: Jamil <jamilbk@users.noreply.github.com> |
||
|
|
391ec1e50d |
Windows changes (#2795)
Many of these commits are in #2757 too. This has changes like: - Local webserver PoC - API token is received from `firezone://` app link, saved in Windows cred manager, and reloaded on future runs - connlib GUI integration PoC - Placeholder for Export Logs feature (just need to actually write the zip file, and enable/disable the GUI buttons correctly) --------- Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com> Co-authored-by: Jamil <jamilbk@users.noreply.github.com> |
||
|
|
189a35f692 |
feat(windows): Tauri boilerplate and CI changes (#2742)
Trying to get CI/CD to produce firezone-windows-client.exe. Can't remember if I need both a PR and a draft release or just the draft release for that. --------- Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com> Co-authored-by: Jamil <jamilbk@users.noreply.github.com> |
||
|
|
ce0e396c49 |
feat(windows): Windows boilerplate and CI (#2715) (#2730)
Testing if CI will build the Windows exe, or at least check the code. --------- Co-authored-by: Jamil Bou Kheir <jamilbk@users.noreply.github.com> |
||
|
|
a309f11011 |
Fix gateway cleanup (#2704)
Yesterday, during some portion of the day connections between clients and resources were impossible. While I couldn't pinpoint the exact cause I found some issues with cleanup. This PR fixes those. Furthermore, I increased the default log level for tunnels in the clients so that if this happens again we have better logs to triage. ~~Furthermore, I found out about #2705 so, I removed the limit of relays from connlib since the portal already limits it to 2 (4 if you count per-ip), that way we make sure that we always use both ipv4 and ipv6. The connection start up time seems to slow down due to this but I think this is better. We might want to go to only 2 urls again later on to speed this up, if the portal can ensure it's a working relay load-balanced relay there might not be a point in using more than a single server~~. cc @AndrewDryga Edit: we always get an ipv4 and ipv6 address for the same relay as the first two relays in the relay list, save the case where only one of the ip types is supported. We should be safe limiting it to 2. --------- Signed-off-by: Gabi <gabrielalejandro7@gmail.com> Co-authored-by: Jamil <jamilbk@users.noreply.github.com> |
||
|
|
bc8f438a56 |
feat(connlib): directly send wireguard traffic instead of tunneling it through WebRTC datachannels (#2643)
This PR started as part of a degradation in performance for the gateways. The way to test performance in a realistic enviroment is using a GCP vm as a client and an AWS vm as a gateway with a single iperf server behind the gateway. Then the `iperf` results with current main: ``` Connecting to host 172.31.92.238, port 5201 Reverse mode, remote host 172.31.92.238 is sending [ 5] local 100.83.194.77 port 58426 connected to 172.31.92.238 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 1.01 MBytes 8.50 Mbits/sec [ 5] 1.00-2.00 sec 1.14 MBytes 9.59 Mbits/sec [ 5] 2.00-3.00 sec 699 KBytes 5.73 Mbits/sec [ 5] 3.00-4.00 sec 1.11 MBytes 9.31 Mbits/sec [ 5] 4.00-5.00 sec 664 KBytes 5.44 Mbits/sec [ 5] 5.00-6.00 sec 591 KBytes 4.84 Mbits/sec [ 5] 6.00-7.00 sec 722 KBytes 5.91 Mbits/sec [ 5] 7.00-8.00 sec 833 KBytes 6.83 Mbits/sec [ 5] 8.00-9.00 sec 738 KBytes 6.04 Mbits/sec [ 5] 9.00-10.00 sec 836 KBytes 6.85 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.06 sec 8.78 MBytes 7.32 Mbits/sec 3 sender [ 5] 0.00-10.00 sec 8.23 MBytes 6.90 Mbits/sec receiver iperf Done. ``` Most of the performance problems were due to using SCTP and DTLS. So I created a [fork](https://github.com/firezone/webrtc/tree/expose-new-endpoint) of webrtc that let us circumvent those, since we don't need them because we are depending on wireguard for encryption. With those changes much better throughput is achieved: ``` gabriel@cloudshell:~ (firezone-personal-instances)$ iperf3 -R -c 172.31.92.238 Connecting to host 172.31.92.238, port 5201 Reverse mode, remote host 172.31.92.238 is sending [ 5] local 100.83.194.77 port 51206 connected to 172.31.92.238 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 5.60 MBytes 47.0 Mbits/sec [ 5] 1.00-2.00 sec 17.2 MBytes 144 Mbits/sec [ 5] 2.00-3.00 sec 15.8 MBytes 132 Mbits/sec [ 5] 3.00-4.00 sec 14.8 MBytes 125 Mbits/sec [ 5] 4.00-5.00 sec 15.9 MBytes 133 Mbits/sec [ 5] 5.00-6.00 sec 15.8 MBytes 133 Mbits/sec [ 5] 6.00-7.00 sec 15.3 MBytes 128 Mbits/sec [ 5] 7.00-8.00 sec 15.6 MBytes 131 Mbits/sec [ 5] 8.00-9.00 sec 15.6 MBytes 131 Mbits/sec [ 5] 9.00-10.00 sec 16.0 MBytes 134 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.05 sec 151 MBytes 126 Mbits/sec 74 sender [ 5] 0.00-10.00 sec 148 MBytes 124 Mbits/sec receiver iperf Done ``` However, this is still worse than it was achieved with a previous commit(`21afdf0a9a113c996d60a63b2e8c8f32d3aeb87`): ``` gabriel@cloudshell:~ (firezone-personal-instances)$ iperf3 -R -c 172.31.92.238 Connecting to host 172.31.92.238, port 5201 Reverse mode, remote host 172.31.92.238 is sending [ 5] local 100.100.68.41 port 49762 connected to 172.31.92.238 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 6.14 MBytes 51.5 Mbits/sec [ 5] 1.00-2.00 sec 17.1 MBytes 144 Mbits/sec [ 5] 2.00-3.00 sec 22.8 MBytes 191 Mbits/sec [ 5] 3.00-4.00 sec 23.5 MBytes 197 Mbits/sec [ 5] 4.00-5.00 sec 23.0 MBytes 193 Mbits/sec [ 5] 5.00-6.00 sec 22.1 MBytes 185 Mbits/sec [ 5] 6.00-7.00 sec 23.0 MBytes 193 Mbits/sec [ 5] 7.00-8.00 sec 22.7 MBytes 190 Mbits/sec [ 5] 8.00-9.00 sec 21.0 MBytes 176 Mbits/sec [ 5] 9.00-10.00 sec 19.9 MBytes 167 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.05 sec 204 MBytes 170 Mbits/sec 127 sender [ 5] 0.00-10.00 sec 201 MBytes 169 Mbits/sec receiver ``` My profiling suggested that this is due to reading/writing packets happening in its own dedicated tasks. So much so that maybe in the future we should even consider spawning their own dedicated runtime so that those loops have a dedicated OS thread. Also, probably using a multi-queue interface will give us huge gains if we have a dedicated task for each queue(currently the interface is started as a multi-queue but a single file descriptor is used) for handling multiple concurrent clients. However, the changes proposed in this PR are good enough for now as long as performance don't degrade. In that line I will create a CI that reports the throughput using the local `docker-compose.yml` file that we should always check before merging, that is not the be all end all of the performance story but for smaller PRs the correlation to real world throughput should be enough. For bigger PRs we should manually test before merging for now, until we have a way in CI to spin up some realistic tests(note that vms should be in separate cloud enviroments, the same-cloud links are so reliable that we miss actual performance degradation due to dropped packets). On this note I'll write a small manual on how to conduct those tests with full current results that we should use always before merging new PRs that affect the hot-path. cc @thomaseizinger Finally, when testing these changes I found some flakiness regarding the re-connection path. So I changed things so that we cleanup connections only using wireguard's error(connection expiration). This is quite slow for now (~120 seconds) but in the future we can issue an ice restart each time wireguard keepalive expires(rekey timeout) so that we can restart connection each ~30 seconds and we can reduce the keepalive time out from the portal to accelerate it even more. And in the future we can get smarter about it. --------- Co-authored-by: Thomas Eizinger <thomas@eizinger.io> |
||
|
|
95bfd5bb02 |
build(deps): Bump env_logger from 0.10.0 to 0.10.1 in /rust (#2637)
Bumps [env_logger](https://github.com/rust-cli/env_logger) from 0.10.0 to 0.10.1. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rust-cli/env_logger/blob/main/CHANGELOG.md">env_logger's changelog</a>.</em></p> <blockquote> <h2>[0.10.1] - 2023-11-10</h2> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
d666cb2b39 |
build(deps): Bump proptest from 1.3.1 to 1.4.0 in /rust (#2635)
Bumps [proptest](https://github.com/proptest-rs/proptest) from 1.3.1 to 1.4.0. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
16b41bf14c |
refactor(connlib): encapsulate Device (#2591)
We encapsulate the internals of `Device` by providing high-level functions on `Device` itself and make all the fields private. From the outside, each consumer this only has an `Arc<Device>` that they can interact with. To achieve this, we use the `arc-swap` crate to atomically swap out the reference to the `Arc<Device>` instead of relying on an `RwLock`. Note that the _reference_ to this `ArcSwapOption` is also wrapped in an `Arc` because we need to share this pointer across many `peer_handler`s. Once we get rid of `Arc<Tunnel>`, this will become a lot simpler. |
||
|
|
76fabd019c |
build(deps): Bump domain from 0.9.0 to 0.9.1 in /rust (#2596)
Bumps [domain](https://github.com/nlnetlabs/domain) from 0.9.0 to 0.9.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/nlnetlabs/domain/releases">domain's releases</a>.</em></p> <blockquote> <h2>0.9.1</h2> <p>Bug fixes</p> <ul> <li>Added missing <code>?Sized</code> bounds to the octets type for parsing <code>ZoneRecordData</code> and <code>UnknownRecordData</code>. (<a href="https://redirect.github.com/nlnetlabs/domain/issues/237">#237</a> by [<a href="https://github.com/hunts"><code>@hunts</code></a>])</li> </ul> <p><a href="https://redirect.github.com/nlnetlabs/domain/issues/237">#237</a>: <a href="https://redirect.github.com/NLnetLabs/domain/pull/237">NLnetLabs/domain#237</a> [<a href="https://github.com/hunts"><code>@hunts</code></a>]: <a href="https://github.com/hunts">https://github.com/hunts</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/NLnetLabs/domain/blob/main/Changelog.md">domain's changelog</a>.</em></p> <blockquote> <h2>0.9.1</h2> <p>Released 2023-10-27.</p> <p>Bug fixes</p> <ul> <li>Added missing <code>?Sized</code> bounds to the octets type for parsing <code>ZoneRecordData</code> and <code>UnknownRecordData</code>. (<a href="https://redirect.github.com/nlnetlabs/domain/issues/237">#237</a> by [<a href="https://github.com/hunts"><code>@hunts</code></a>])</li> </ul> <p><a href="https://redirect.github.com/nlnetlabs/domain/issues/237">#237</a>: <a href="https://redirect.github.com/NLnetLabs/domain/pull/237">NLnetLabs/domain#237</a> [<a href="https://github.com/hunts"><code>@hunts</code></a>]: <a href="https://github.com/hunts">https://github.com/hunts</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
6899b70da2 |
build(deps): Bump tokio-util from 0.7.9 to 0.7.10 in /rust (#2595)
Bumps [tokio-util](https://github.com/tokio-rs/tokio) from 0.7.9 to 0.7.10. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/tokio-rs/tokio/commits">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
c51b03315e |
build(deps): Bump libc from 0.2.149 to 0.2.150 in /rust (#2594)
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.149 to 0.2.150. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/rust-lang/libc/releases">libc's releases</a>.</em></p> <blockquote> <h2>0.2.150</h2> <h2>What's Changed</h2> <ul> <li>feat: closefrom() and close_range() for FreeBSD by <a href="https://github.com/SteveLauC"><code>@SteveLauC</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3374">rust-lang/libc#3374</a></li> <li>adding apple ifreq by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3375">rust-lang/libc#3375</a></li> <li>Add pthread_once by <a href="https://github.com/0xcaff"><code>@0xcaff</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3376">rust-lang/libc#3376</a></li> <li>netbsd: Add SO_NOSIGPIPE by <a href="https://github.com/taiki-e"><code>@taiki-e</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3377">rust-lang/libc#3377</a></li> <li>Say goodbye to GH Pages in favor of docs.rs by <a href="https://github.com/JohnTitor"><code>@JohnTitor</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3378">rust-lang/libc#3378</a></li> <li>bugfix for teeos use Option by <a href="https://github.com/Sword-Destiny"><code>@Sword-Destiny</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3379">rust-lang/libc#3379</a></li> <li>openbsd/netbsd sharing execvpe definition by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3382">rust-lang/libc#3382</a></li> <li>ifreq for apple follow-up fix case when in non libc_union case by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3385">rust-lang/libc#3385</a></li> <li>NetBSD's mod.rs: fix cpuid_t definition. by <a href="https://github.com/he32"><code>@he32</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3386">rust-lang/libc#3386</a></li> <li>ifconf addition to apple. fixing freebsd's implementation while at it. by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3388">rust-lang/libc#3388</a></li> <li>adding exect/execvP for FreeBSD/DragonflyBSD by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3381">rust-lang/libc#3381</a></li> <li>adding execvP for apple by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3383">rust-lang/libc#3383</a></li> <li>adding ifreq struct for openbsd by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3384">rust-lang/libc#3384</a></li> <li>Add <code>MCL_ONFAULT</code> constants by <a href="https://github.com/newpavlov"><code>@newpavlov</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3380">rust-lang/libc#3380</a></li> <li>Add time namespace constant by <a href="https://github.com/cd-work"><code>@cd-work</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3352">rust-lang/libc#3352</a></li> <li>adding few more CLONE_* constant for Linux/Android. by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3034">rust-lang/libc#3034</a></li> <li>android add handful lock free stdio calls by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3290">rust-lang/libc#3290</a></li> <li>hurd: Fix msghdr's msg_iov field type by <a href="https://github.com/sthibaul"><code>@sthibaul</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3389">rust-lang/libc#3389</a></li> <li>Adding missing macros from linux/if_tun.h by <a href="https://github.com/BrandonMFong"><code>@BrandonMFong</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3320">rust-lang/libc#3320</a></li> <li>vxworks: Add mman.h consts and shm functions by <a href="https://github.com/jdygert-spok"><code>@jdygert-spok</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3406">rust-lang/libc#3406</a></li> <li>Reenable FreeBSD 14 CI, and update definitions to match 14.0-RC1. by <a href="https://github.com/asomers"><code>@asomers</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3355">rust-lang/libc#3355</a></li> <li>Use new check-cfg syntax in newer nightly by <a href="https://github.com/Urgau"><code>@Urgau</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3410">rust-lang/libc#3410</a></li> <li>musl fixes and musl+riscv32 fixes by <a href="https://github.com/akiernan"><code>@akiernan</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3302">rust-lang/libc#3302</a></li> <li>Add various constants from OpenBSD's sys/exec_elf.h. by <a href="https://github.com/ltratt"><code>@ltratt</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3409">rust-lang/libc#3409</a></li> <li>riscv64/musl: Add landlock syscalls by <a href="https://github.com/marv"><code>@marv</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3398">rust-lang/libc#3398</a></li> <li>Add stat64at function declaration to AIX by <a href="https://github.com/ecnelises"><code>@ecnelises</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3324">rust-lang/libc#3324</a></li> <li>adding getmntinfo/getmntvinfo for DragonFlyBSD. by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3394">rust-lang/libc#3394</a></li> <li>adding MOVE_MOUNT* constants for linux to use with SYS_move_mount by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3391">rust-lang/libc#3391</a></li> <li>freebsd adding PROT_MAX|PROT_MAX_EXTRACT mmap flags by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3399">rust-lang/libc#3399</a></li> <li>linux/android adding few if_alg.h constants. by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3404">rust-lang/libc#3404</a></li> <li>Setup Dependabot for GitHub Actions by <a href="https://github.com/JohnTitor"><code>@JohnTitor</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3411">rust-lang/libc#3411</a></li> <li>For NetBSD: add entry for NetBSD/riscv64. by <a href="https://github.com/he32"><code>@he32</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3291">rust-lang/libc#3291</a></li> <li>adding more recent pthread_get/setname_np calls to freebsd/dragonflybsd by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3412">rust-lang/libc#3412</a></li> <li>NetBSD/mipsel: add support. by <a href="https://github.com/he32"><code>@he32</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3416">rust-lang/libc#3416</a></li> <li>feat: add new constants from fanotify linux api by <a href="https://github.com/ad0"><code>@ad0</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3408">rust-lang/libc#3408</a></li> <li>linux: add PTRACE_GETSIGMASK and PTRACE_SETSIGMASK by <a href="https://github.com/mbyzhang"><code>@mbyzhang</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3163">rust-lang/libc#3163</a></li> <li>Add a few declarations for Apple systems by <a href="https://github.com/vincentisambart"><code>@vincentisambart</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3328">rust-lang/libc#3328</a></li> <li>feat: Added ifconf struct by <a href="https://github.com/Brijeshkrishna"><code>@Brijeshkrishna</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3393">rust-lang/libc#3393</a></li> <li>Upgrade Docker images to Ubuntu 23.10 by <a href="https://github.com/JohnTitor"><code>@JohnTitor</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3418">rust-lang/libc#3418</a></li> <li>redox: Add remaining <code>grp.h</code> functions by <a href="https://github.com/ids1024"><code>@ids1024</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3421">rust-lang/libc#3421</a></li> <li>netbsd/openbsd adding more accessors to siginfo_t. by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3400">rust-lang/libc#3400</a></li> <li>Prepare release for v0.2.150 by <a href="https://github.com/JohnTitor"><code>@JohnTitor</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3424">rust-lang/libc#3424</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/0xcaff"><code>@0xcaff</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/libc/pull/3376">rust-lang/libc#3376</a></li> <li><a href="https://github.com/he32"><code>@he32</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/libc/pull/3386">rust-lang/libc#3386</a></li> <li><a href="https://github.com/sthibaul"><code>@sthibaul</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/libc/pull/3389">rust-lang/libc#3389</a></li> <li><a href="https://github.com/BrandonMFong"><code>@BrandonMFong</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/libc/pull/3320">rust-lang/libc#3320</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
0c6b2c079b |
build(deps): Bump serde_json from 1.0.107 to 1.0.108 in /rust (#2593)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.107 to 1.0.108. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/serde-rs/json/releases">serde_json's releases</a>.</em></p> <blockquote> <h2>v1.0.108</h2> <ul> <li>Documentation improvements (<a href="https://redirect.github.com/serde-rs/json/issues/1075">#1075</a>, <a href="https://redirect.github.com/serde-rs/json/issues/1081">#1081</a>, <a href="https://redirect.github.com/serde-rs/json/issues/1082">#1082</a>, thanks <a href="https://github.com/dimo414"><code>@dimo414</code></a> and <a href="https://github.com/fritzrehde"><code>@fritzrehde</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
b33e8fd04e |
build(deps): Bump futures-bounded from 0.2.0 to 0.2.1 in /rust (#2592)
Bumps [futures-bounded](https://github.com/libp2p/rust-libp2p) from 0.2.0 to 0.2.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/libp2p/rust-libp2p/releases">futures-bounded's releases</a>.</em></p> <blockquote> <h2>libp2p-v0.53.0</h2> <p>The most ergonomic version of rust-libp2p yet!</p> <p>We've been busy again, with over <a href="https://github.com/libp2p/rust-libp2p/compare/libp2p-v0.52.0...master">250</a> PRs being merged into <code>master</code> since <code>v0.52.0</code> (excluding dependency updates).</p> <h2>Backwards-compatible features</h2> <p>Numerous improvements landed as patch releases since the <code>v0.52.0</code> release, for example a new, type-safe <a href="https://redirect.github.com/libp2p/rust-libp2p/pull/4120"><code>SwarmBuilder</code></a> that also encompasses the most common transport protocols:</p> <pre lang="rust"><code>let mut swarm = libp2p::SwarmBuilder::with_new_identity() .with_tokio() .with_tcp( tcp::Config::default().port_reuse(true).nodelay(true), noise::Config::new, yamux::Config::default, )? .with_quic() .with_dns()? .with_relay_client(noise::Config::new, yamux::Config::default)? .with_behaviour(|keypair, relay_client| Behaviour { relay_client, ping: ping::Behaviour::default(), dcutr: dcutr::Behaviour::new(keypair.public().to_peer_id()), })? .build(); </code></pre> <p>The new builder makes heavy use of the type-system to guide you towards a correct composition of all transports. For example, it is important to compose the DNS transport as a wrapper around all other transports but before the relay transport. Luckily, you no longer need to worry about these details as the builder takes care of that for you! Have a look yourself if you dare <a href="https://github.com/libp2p/rust-libp2p/tree/master/libp2p/src/builder">here</a> but be warned, the internals are a bit wild :)</p> <p>Some more features that we were able to ship in <code>v0.52.X</code> patch-releases include:</p> <ul> <li><a href="https://redirect.github.com/libp2p/rust-libp2p/pull/4325">stable QUIC implementation</a></li> <li>for rust-libp2p compiled to WASM running in the browser <ul> <li><a href="https://redirect.github.com/libp2p/rust-libp2p/pull/4015">WebTransport support</a></li> <li><a href="https://redirect.github.com/libp2p/rust-libp2p/pull/4248">WebRTC support</a></li> </ul> </li> <li><a href="https://redirect.github.com/libp2p/rust-libp2p/pull/4156">UPnP implementation to automatically configure port-forwarding with ones gateway</a></li> <li><a href="https://redirect.github.com/libp2p/rust-libp2p/pull/4281">option to limit connections based on available memory</a></li> </ul> <p>We always try to ship as many features as possible in a backwards-compatible way to get them to you faster. Often times, these come with deprecations to give you a heads-up about what will change in a future version. We advise updating to each intermediate version rather than skipping directly to the most recent one, to avoid missing any crucial deprecation warnings. We highly recommend you stay up-to-date with the latest version to make upgrades as smooth as possible.</p> <p>Some improvments we unfortunately cannot ship in a way that Rust considers a non-breaking change but with every release, we attempt to smoothen the way for future upgrades.</p> <h2><code>#[non_exhaustive]</code> on key enums</h2> <p>We've identified that adding a new "message" to the <code>ToSwarm</code> enum is a common cause for breaking changes. This enum is used by plugins (i.e. <code>NetworkBehaviour</code>s) to communicate with the <code>Swarm</code>. Similarly, the <code>FromSwarm</code> enum is used to inform plugins about state changes. By adding <code>#[non_exhaustive]</code> to these and other enums we enable future additions to be non-breaking changes.</p> <p>For example, <a href="https://redirect.github.com/libp2p/rust-libp2p/issues/4302">we plan</a> to allow <code>NetworkBehaviour</code>s to share addresses of peers they've discovered with each other. Previously, we had to queue this feature until the next breaking change whereas now, we can simply ship it as soon as it is ready!</p> <p>Thanks to <a href="https://github.com/dhuseby"><code>@dhuseby</code></a> for getting the ball rolling on this one. See <a href="https://redirect.github.com/libp2p/rust-libp2p/pull/4581">PR 4581</a> for details.</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
0d1df924dc |
build(deps): Bump clap from 4.4.6 to 4.4.7 in /rust (#2525)
Bumps [clap](https://github.com/clap-rs/clap) from 4.4.6 to 4.4.7. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p> <blockquote> <h2>[4.4.7] - 2023-10-24</h2> <h3>Performance</h3> <ul> <li>Reduced code size</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
b417e71c1d |
build(deps): Bump base64 from 0.21.4 to 0.21.5 in /rust (#2524)
Bumps [base64](https://github.com/marshallpierce/rust-base64) from 0.21.4 to 0.21.5. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/marshallpierce/rust-base64/blob/master/RELEASE-NOTES.md">base64's changelog</a>.</em></p> <blockquote> <h1>0.21.5</h1> <ul> <li>Add <code>Debug</code> and <code>Clone</code> impls for the general purpose Engine</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
bf39f65bb0 |
build(deps): Bump futures from 0.3.28 to 0.3.29 in /rust (#2523)
[//]: # (dependabot-start) ⚠️ **Dependabot is rebasing this PR** ⚠️ Rebasing might not happen immediately, so don't worry if this takes some time. Note: if you make any changes to this PR yourself, they will take precedence over the rebase. --- [//]: # (dependabot-end) Bumps [futures](https://github.com/rust-lang/futures-rs) from 0.3.28 to 0.3.29. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/rust-lang/futures-rs/releases">futures's releases</a>.</em></p> <blockquote> <h2>0.3.29</h2> <ul> <li>Add <code>TryStreamExt::try_ready_chunks</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2757">#2757</a>)</li> <li>Add <code>TryStreamExt::{try_all,try_any}</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2783">#2783</a>)</li> <li>Add <code>UnboundedSender::{len,is_empty}</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2750">#2750</a>)</li> <li>Fix <code>Sync</code> impl of <code>FuturesUnordered</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2788">#2788</a>)</li> <li>Fix infinite loop caused by invalid UTF-8 bytes (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2785">#2785</a>)</li> <li>Fix build error with -Z minimal-versions (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2761">#2761</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md">futures's changelog</a>.</em></p> <blockquote> <h1>0.3.29 - 2023-10-26</h1> <ul> <li>Add <code>TryStreamExt::try_ready_chunks</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2757">#2757</a>)</li> <li>Add <code>TryStreamExt::{try_all,try_any}</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2783">#2783</a>)</li> <li>Add <code>UnboundedSender::{len,is_empty}</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2750">#2750</a>)</li> <li>Fix <code>Sync</code> impl of <code>FuturesUnordered</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2788">#2788</a>)</li> <li>Fix infinite loop caused by invalid UTF-8 bytes (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2785">#2785</a>)</li> <li>Fix build error with -Z minimal-versions (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2761">#2761</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
50f3809ffa |
build(deps): Bump serde from 1.0.189 to 1.0.190 in /rust (#2522)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.189 to 1.0.190. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p> <blockquote> <h2>v1.0.190</h2> <ul> <li>Preserve NaN sign when deserializing f32 from f64 or vice versa (<a href="https://redirect.github.com/serde-rs/serde/issues/2637">#2637</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
fcb0879a05 |
build(deps): Bump futures-util from 0.3.28 to 0.3.29 in /rust (#2521)
Bumps [futures-util](https://github.com/rust-lang/futures-rs) from 0.3.28 to 0.3.29. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/rust-lang/futures-rs/releases">futures-util's releases</a>.</em></p> <blockquote> <h2>0.3.29</h2> <ul> <li>Add <code>TryStreamExt::try_ready_chunks</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2757">#2757</a>)</li> <li>Add <code>TryStreamExt::{try_all,try_any}</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2783">#2783</a>)</li> <li>Add <code>UnboundedSender::{len,is_empty}</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2750">#2750</a>)</li> <li>Fix <code>Sync</code> impl of <code>FuturesUnordered</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2788">#2788</a>)</li> <li>Fix infinite loop caused by invalid UTF-8 bytes (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2785">#2785</a>)</li> <li>Fix build error with -Z minimal-versions (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2761">#2761</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md">futures-util's changelog</a>.</em></p> <blockquote> <h1>0.3.29 - 2023-10-26</h1> <ul> <li>Add <code>TryStreamExt::try_ready_chunks</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2757">#2757</a>)</li> <li>Add <code>TryStreamExt::{try_all,try_any}</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2783">#2783</a>)</li> <li>Add <code>UnboundedSender::{len,is_empty}</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2750">#2750</a>)</li> <li>Fix <code>Sync</code> impl of <code>FuturesUnordered</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2788">#2788</a>)</li> <li>Fix infinite loop caused by invalid UTF-8 bytes (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2785">#2785</a>)</li> <li>Fix build error with -Z minimal-versions (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2761">#2761</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
d5e182cf0a |
deps: use released version of futures-bounded (#2500)
|
||
|
|
f0e545a8fd |
build(deps): Bump stun_codec from 0.3.3 to 0.3.4 in /rust (#2487)
Bumps [stun_codec](https://github.com/sile/stun_codec) from 0.3.3 to 0.3.4. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/sile/stun_codec/releases">stun_codec's releases</a>.</em></p> <blockquote> <h2>v0.3.4</h2> <h2>What's Changed</h2> <ul> <li>Remove the hmac_sha1 dependency by <a href="https://github.com/pantsman0"><code>@pantsman0</code></a> in <a href="https://redirect.github.com/sile/stun_codec/pull/20">sile/stun_codec#20</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pantsman0"><code>@pantsman0</code></a> made their first contribution in <a href="https://redirect.github.com/sile/stun_codec/pull/20">sile/stun_codec#20</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/sile/stun_codec/compare/0.3.3...0.3.4">https://github.com/sile/stun_codec/compare/0.3.3...0.3.4</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |