mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 10:18:54 +00:00
fdb33674cdcd2cae64c73f24168c842d09597db0
683 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
fdb33674cd |
refactor(connlib): introduce LoginUrl component (#4048)
Currently, we are passing a lot of data into `Session::connect`. Half of this data is only needed to construct the URL we will use to connect to the portal. We can simplify this by extracting a dedicated `LoginUrl` component that captures and validates this data early. Not only does this reduce the number of parameters we pass to `Session::connect`, it also reduces the number of failure cases we have to deal with in `Session::connect`. Any time the session fails, we have to call `onDisconnected` to inform the client. Thus, we should perform as much validation as we can early on. In other words, once `Session::connect` returns, the client should be able to expect that the tunnel is starting. |
||
|
|
a2f289f0b1 |
feat(connlib): decrease connection setup latency (#4022)
`snownet` is built in a SANS-IO way, which means it doesn't have internal timers or IO. It is up to the upper layer to correctly check `poll_timeout` and call `handle_timeout` as soon as that expires. _When_ we want to be called again (i.e. the result of `poll_timeout`) may change every time `snownet`s internal state changes. This is especially critical during the initial setup of a connection. As we learn about our own candidates and candidates from the other party, we form new pairs. To actually detect whether the pair is a viable network path, we need to send a STUN request. When to send STUN requests is controlled by time. A newly formed pair should send a STUN request as soon as possible to minimize latency. Previously, we did not update the timer upon which we "wake" `snownet` using `handle_timeout`. As such, we waited unnecessarily long before sending STUN requests to newly formed pairs. With this patch, we check `poll_timeout` at end of the `Tunnel`'s `poll` function and immediately call `handle_timeout` in case we need to. Currently, `str0m` throttles updates to `handle_timeout` in 50ms blocks which still creates some delay. With that commented out, I observed improvements of ~0.7s for establishing new connections. Most of the time, the 2nd ping already goes through! |
||
|
|
ea53ae7a55 |
feat(snownet): timeout connections if we don't receive a candidate within 10s (#3790)
Previously, we had a dedicated timer for this within the tunnel implementation. Now that we have control over the internals of our connection via `snownet`, we can timeout the connection if we don't receive a candidate from the remote within 10s. |
||
|
|
4339030d03 |
refactor(phoenix-channel): reduce Error to fatal errors (#4015)
As part of doing https://github.com/firezone/firezone/pull/3682, we noticed that the handling of errors up to the clients needs to differentiate between fatal errors that require clearing the token vs not. Upon closer inspection of `phoenix_channel::Error`, it becomes obvious that the current design is not good here. In particular, we handle certain errors with retries internally but still expose those same errors. To make this more obvious, we reduce the public `Error` to the variants that are actually fatal. Those can really only be three: - HTTP client errors (those are by definition non-retryable) - Token expired - We have reached our max number of retries |
||
|
|
21fe85048c |
refactor(connlib): No longer replacing Device in the Tunnel and android fixes to Tun struct (#4012)
This PR does the following: * Remove `Closeable` struct for andorid's tun file descriptor * Make `add_route` and `remove_route` mutate tun device so android can mutate file descriptor and no longer have upper layers replacing `Device` * Fix a bug where android closed still used file descriptor if `add_route` and `remove_route` returned the same |
||
|
|
7211e88338 |
feat(linux-client): generate firezone-id (device ID) automatically if it's not provided at launch (#3920)
Closes #3815 Changes that are breaking (but these aren't in production so it should be okay) - Windows, renaming `device_id.json` to `firezone-id.json` to match the rest of the code - Linux GUI, storing the firezone-id under `/var/lib` instead of under `$HOME` - Linux GUI, bails out if not run with `sudo --preserve-env` by detecting `$HOME == root` or `$USER != root` --------- Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com> |
||
|
|
998bf17891 |
refactor(connlib): only call onDisconnect for unrecoverable errors (#4014)
Previously, we called `onDisconnect` in two kinds of situations: - With an error when we wanted the clients to clear the token - Without an error when the token was still valid (i.e. after a call to `disconnect` from the clients) This is unnecessarily redundant. Firezone is designed to **not** have a state of "signed in but disconnected". Thus, every time connlib calls `disconnect`, we should clear the token and sign the user out. At present, we only do this for errors with the control plane. Errors in the actual tunnel are only logged and we continue trying to use the tunnel. There are errors in the tunnel where we should also give up (i.e. TUN device gone, fatal IO error, etc). At present, those are not yet bubbled up but we will at some point. Once we have https://github.com/firezone/firezone/pull/3682, it will be much easier to create a type-safe contract that ensures we only disconnect on fatal errors. --------- Co-authored-by: Jamil Bou Kheir <jamilbk@users.noreply.github.com> Co-authored-by: ReactorScram <ReactorScram@users.noreply.github.com> |
||
|
|
21d6e4f7d6 |
fix: let Tauri know about hiDPI icons (#4039)
Untested guess, refs #3999 Looks like we generated a 2x PNG but didn't tell Tauri about it, maybe it'll know what to do if it's added to tauri.conf.json. |
||
|
|
2e2fa100e8 |
build(deps): Bump chrono from 0.4.34 to 0.4.35 in /rust (#4008)
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.34 to 0.4.35. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/chronotope/chrono/releases">chrono's releases</a>.</em></p> <blockquote> <h2>v0.4.35</h2> <p>Most of our efforts have shifted to improving the API for a 0.5 release, for which cleanups and refactorings are landing on the 0.4.x branch.</p> <p>The most significant changes in this release are two sets of deprecations.</p> <ul> <li> <p>We deprecated all timestamp-related methods on <code>NaiveDateTime</code>. The reason is that a timestamp is defined to be in UTC. The <code>NaiveDateTime</code> type doesn't know the offset from UTC, so it was technically wrong to have these methods. The alternative is to use the similar methods on the <code>DateTime<Utc></code> type, or from the <code>TimeZone</code> trait.</p> <p>Converting from <code>NaiveDateTime</code> to <code>DateTime<Utc></code> is simple with <code>.and_utc()</code>, and in the other direction with <code>.naive_utc()</code>.</p> </li> <li> <p>The panicking constructors of <code>TimeDelta</code> (the new name of the <code>Duration</code> type) are deprecated. This was the last part of chrono that defaulted to panicking on error, dating from before rust 1.0.</p> </li> <li> <p>A nice change is that <code>NaiveDate</code> now includes a niche. So now <code>Option<NaiveDate></code>, <code>Option<NaiveDateTime></code> and <code>Option<DateTime<Tz>></code> are the same size as their base types.</p> </li> <li> <p><code>format::Numeric</code> and <code>format::Fixed</code> are marked as <code>non_exhaustive</code>. This will allow us to improve our formatting and parsing support, and we have reason to believe this breaking change will have little to no impact on users.</p> </li> </ul> <h1>Additions</h1> <ul> <li>Add <code>DateTime::{from_timestamp_micros, from_timestamp_nanos}</code> (<a href="https://redirect.github.com/chronotope/chrono/issues/1234">#1234</a>)</li> <li>Add getters to <code>Parsed</code> (<a href="https://redirect.github.com/chronotope/chrono/issues/1465">#1465</a>)</li> </ul> <h1>Deprecations</h1> <ul> <li>Deprecate timestamp methods on <code>NaiveDateTime</code> (<a href="https://redirect.github.com/chronotope/chrono/issues/1473">#1473</a>)</li> <li>Deprecate panicking constructors of <code>TimeDelta</code> (<a href="https://redirect.github.com/chronotope/chrono/issues/1450">#1450</a>)</li> </ul> <h1>Changes/fixes</h1> <ul> <li>Use <code>NonZeroI32</code> inside <code>NaiveDate</code> (<a href="https://redirect.github.com/chronotope/chrono/issues/1207">#1207</a>)</li> <li>Mark <code>format::Numeric</code> and <code>format::Fixed</code> as <code>non_exhaustive</code> (<a href="https://redirect.github.com/chronotope/chrono/issues/1430">#1430</a>)</li> <li><code>Parsed</code> fixes to error values (<a href="https://redirect.github.com/chronotope/chrono/issues/1439">#1439</a>)</li> <li>Use <code>overflowing_naive_local</code> in <code>DateTime::checked_add*</code> (<a href="https://redirect.github.com/chronotope/chrono/issues/1333">#1333</a>)</li> <li>Do complete range checks in <code>Parsed::set_*</code> (<a href="https://redirect.github.com/chronotope/chrono/issues/1465">#1465</a>)</li> </ul> <h1>Documentation</h1> <ul> <li>Rustfmt doctests (<a href="https://redirect.github.com/chronotope/chrono/issues/1452">#1452</a>)</li> <li>Improve docs for crate features (<a href="https://redirect.github.com/chronotope/chrono/issues/1455">#1455</a>, thanks <a href="https://github.com/edmorley"><code>@edmorley</code></a>)</li> <li>Add more documentation and examples to <code>Parsed</code> (<a href="https://redirect.github.com/chronotope/chrono/issues/1439">#1439</a>)</li> </ul> <h1>Internal</h1> <ul> <li>Refactor <code>internals</code> module (<a href="https://redirect.github.com/chronotope/chrono/issues/1428">#1428</a>, <a href="https://redirect.github.com/chronotope/chrono/issues/1429">#1429</a>, <a href="https://redirect.github.com/chronotope/chrono/issues/1431">#1431</a>, <a href="https://redirect.github.com/chronotope/chrono/issues/1432">#1432</a>, <a href="https://redirect.github.com/chronotope/chrono/issues/1433">#1433</a>, <a href="https://redirect.github.com/chronotope/chrono/issues/1438">#1438</a>)</li> <li>CI: test cross-compiling to <code>x86_64-unknown-illumos</code> instead of Solaris (<a href="https://redirect.github.com/chronotope/chrono/issues/1437">#1437</a>)</li> <li>CI: lint Windows target, fix clippy warning (<a href="https://redirect.github.com/chronotope/chrono/issues/1441">#1441</a>)</li> <li>CI: only run <code>cargo hack check</code> on Linux (<a href="https://redirect.github.com/chronotope/chrono/issues/1442">#1442</a>)</li> <li>Update windows-bindgen to 0.54 (<a href="https://redirect.github.com/chronotope/chrono/issues/1462">#1462</a>, <a href="https://redirect.github.com/chronotope/chrono/issues/1483">#1483</a>)</li> <li>Simplify error value of <code>parse_internal</code> (<a href="https://redirect.github.com/chronotope/chrono/issues/1459">#1459</a>)</li> <li>Simplify <code>SerdeError</code> (<a href="https://redirect.github.com/chronotope/chrono/issues/1458">#1458</a>)</li> <li>Simplify <code>NaiveDate::from_isoywd</code> a bit (<a href="https://redirect.github.com/chronotope/chrono/issues/1464">#1464</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
3ee1d101ff |
docs(windows): notifications don't work on Windows-on-Arm (aarch64) yet (#4037)
Ref #4035 |
||
|
|
e4d828b9b1 |
ci(docker): bump Rust from 1.74 to 1.76 (#4033)
This was accidentally missed in #3632. Jamil said it may fix `cargo-chef`'s caching once merged. Part of #3995 |
||
|
|
2ee801ad9d |
build(deps-dev): Bump @types/node from 20.11.15 to 20.11.25 in /rust/gui-client (#4000)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.11.15 to 20.11.25. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">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 this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
c948693655 |
chore(deps): Fix deprecation error with chrono (#4032)
Fixes the issue in #4008 |
||
|
|
869bf2407b |
build(deps): Bump @tauri-apps/cli from 1.5.9 to 1.5.10 in /rust/gui-client (#4004)
Bumps [@tauri-apps/cli](https://github.com/tauri-apps/tauri) from 1.5.9 to 1.5.10. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tauri-apps/tauri/releases"><code>@tauri-apps/cli</code>'s releases</a>.</em></p> <blockquote> <h2><code>@tauri-apps/cli</code> v1.5.10</h2> <h2>[1.5.10]</h2> <h3>Bug Fixes</h3> <ul> <li><a href=" |
||
|
|
510714ddcd |
build(deps): Bump clap from 4.5.1 to 4.5.2 in /rust (#4009)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.1 to 4.5.2. <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.5.2</h2> <h2>[4.5.2] - 2024-03-06</h2> <h3>Fixes</h3> <ul> <li><em>(macros)</em> Silence a warning</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.5.2] - 2024-03-06</h2> <h3>Fixes</h3> <ul> <li><em>(macros)</em> Silence a warning</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
98779bb84b |
build(deps-dev): Bump typescript from 5.3.3 to 5.4.2 in /rust/gui-client (#4001)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.3.3 to 5.4.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/Microsoft/TypeScript/releases">typescript's releases</a>.</em></p> <blockquote> <h2>TypeScript 5.4</h2> <p>For release notes, check out the <a href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-4/">release announcement</a>.</p> <p>For the complete list of fixed issues, check out the</p> <ul> <li><a href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&q=milestone%3A%22TypeScript+5.4.0%22+is%3Aclosed+">fixed issues query for Typescript 5.4.0 (Beta)</a>.</li> <li><a href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&q=milestone%3A%22TypeScript+5.4.1%22+is%3Aclosed+">fixed issues query for Typescript 5.4.1 (RC)</a>.</li> <li><a href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&q=milestone%3A%22TypeScript+5.4.2%22+is%3Aclosed+">fixed issues query for Typescript 5.4.2 (Stable)</a>.</li> </ul> <p>Downloads are available on:</p> <ul> <li><a href="https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild">NuGet package</a></li> </ul> <h2>TypeScript 5.4 RC</h2> <p>For release notes, check out the <a href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-4-rc/">release announcement</a>.</p> <p>For the complete list of fixed issues, check out the</p> <ul> <li><a href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&q=milestone%3A%22TypeScript+5.4.0%22+is%3Aclosed+">fixed issues query for Typescript 5.4.0 (Beta)</a>.</li> <li><a href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&q=milestone%3A%22TypeScript+5.4.1%22+is%3Aclosed+">fixed issues query for Typescript 5.4.1 (RC)</a>.</li> </ul> <p>Downloads are available on:</p> <ul> <li><a href="https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild">NuGet package</a></li> </ul> <h2>TypeScript 5.4 Beta</h2> <p>For release notes, check out the <a href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-4-beta/">release announcement</a>.</p> <p>For the complete list of fixed issues, check out the</p> <ul> <li><a href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&q=milestone%3A%22TypeScript+5.4.0%22+is%3Aclosed+">fixed issues query for Typescript 5.4.0 (Beta)</a>.</li> </ul> <p>Downloads are available on:</p> <ul> <li><a href="https://www.npmjs.com/package/typescript">npm</a></li> <li><a href="https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild">NuGet package</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
93c54c8445 |
build(deps): Bump flowbite from 2.2.1 to 2.3.0 in /rust/gui-client (#4003)
Bumps [flowbite](https://github.com/themesberg/flowbite) from 2.2.1 to 2.3.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/themesberg/flowbite/releases">flowbite's releases</a>.</em></p> <blockquote> <h2>v2.3.0</h2> <ul> <li>added new <a href="https://flowbite.com/docs/components/clipboard/">copy to clipboard</a> component and examples</li> <li>added new JavaScript tab to the documentation examples</li> <li>update dependency to Tailwind CSS v3.4.1</li> <li>fixed carousel component behavior when there’s only one image</li> <li>added new data attribute to set active and inactive classes for tabs</li> <li>Ruby on Rails integration fix for turbo load</li> <li>minor bug fixes and improvements</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
46d60da136 |
chore(snownet): improve logs in Allocation (#3986)
This adds a few logs that I noticed could be helpful after looking at some logs shared by a customer. Most importantly, we now log everything in `handle_timeout` in the scope of the relay's IP, meaning we can differentiate them from each other. |
||
|
|
0ed2480ac0 |
refactor(connlib): merge control_protocol::gateway into gateway module (#3984)
This separation doesn't really hold anymore as we already have an `impl Tunnel` and `impl GatewayState` within `gateway.rs`. It is easier to maintain if more gateway-specific things are in `gateway.rs`. Plus, once we integrate the portal connection into the tunnel, we can collapse a lot of these APIs. |
||
|
|
2f74edd581 |
feat(snownet): always force a handshake when we change the socket (#3985)
Some local testing identified that we might lose the first packet if we switch the sockets too quickly, i.e. upgrade from a relayed one to a direct one initially. To mitigate having to wait for the wireguard timeout here, let's force a handshake every time we switch to a new socket. |
||
|
|
ae6c32643f |
refactor(connlib): fail tunnel in case the device gets closed (#3981)
Currently, we have some duplication between client and gateway in how we handle a closed TUN device (i.e. reading a 0-length packet). Previously, we would just deactivate the tunnel as we can't do anything when the device is gone. I don't think that is actually helpful. Instead, we should fail the tunnel if the device gets closed, similar to any other IO error on the device.\ This reduces duplication between the two eventloops. |
||
|
|
784a34faa1 |
chore(connlib): move wire trace logs to Socket (#3983)
This further improves consistency in when we emit these logs. Previously, the `wire` trace would also log packets that we failed to send (so never actually hit the wire) and would omit packets that we handled internally within `snownet`. To implement this consistently, I ended up merging the two iterators for IPv4 and IPv6 packets which is a nice addition because it means we always empty both sockets and don't prioritize IPv4 over IPv6. |
||
|
|
9cab250696 |
chore(windows): Sign internal exe using beforeBundleCommand (#3994)
Refs #3230 It looks like we need to sign the internal exe before it gets bundled too. We can use `beforeBundleCommand` to do so. Soon, Tauri should have native support for this exact scenario: https://github.com/tauri-apps/tauri/pull/8718 |
||
|
|
8360e3734b |
chore(phoenix-channel): reduce noise in logs (#3939)
The span around the `init` function doesn't actually add anything
useful. We always use the `PhoenixChannel` only in a particular
component, e.g. the relay will always log in using the `relay` topic
etc. Thus, when looking at the relay's logs, this `login_topic` will
simply say "relay" which is something we know by looking at the source
code.
Additionally, the "Connected to portal, waiting for `init` message" line
is no longer true. Connecting to the portal has been moved into the
internal state machine, which now causes two similar logs to be printed:
```
gateway-1 | 2024-03-05T04:45:29.671736Z INFO init{user_agent="Alpine Linux/3.19.1 (x86_64;6.6.16;) connlib/1.0.0" login_topic="gateway"}: phoenix_channel: Connected to portal, waiting for `init` message
gateway-1 | 2024-03-05T04:45:29.685338Z INFO init{user_agent="Alpine Linux/3.19.1 (x86_64;6.6.16;) connlib/1.0.0" login_topic="gateway"}: phoenix_channel: Connected to portal host=api
```
Note that the first one is lying because we simply constructed the state
machine but haven't connected to anything yet.
|
||
|
|
26c10fb361 |
build(deps): Bump base64 from 0.21.7 to 0.22.0 in /rust (#3935)
Bumps [base64](https://github.com/marshallpierce/rust-base64) from 0.21.7 to 0.22.0. <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.22.0</h1> <ul> <li><code>DecodeSliceError::OutputSliceTooSmall</code> is now conservative rather than precise. That is, the error will only occur if the decoded output <em>cannot</em> fit, meaning that <code>Engine::decode_slice</code> can now be used with exactly-sized output slices. As part of this, <code>Engine::internal_decode</code> now returns <code>DecodeSliceError</code> instead of <code>DecodeError</code>, but that is not expected to affect any external callers.</li> <li><code>DecodeError::InvalidLength</code> now refers specifically to the <em>number of valid symbols</em> being invalid (i.e. <code>len % 4 == 1</code>), rather than just the number of input bytes. This avoids confusing scenarios when based on interpretation you could make a case for either <code>InvalidLength</code> or <code>InvalidByte</code> being appropriate.</li> <li>Decoding is somewhat faster (5-10%)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
2c2bbe19ff |
chore(relay): add FIREZONE_NAME env variable (#3932)
Follow-up from #2544. --------- Signed-off-by: Thomas Eizinger <thomas@eizinger.io> Co-authored-by: Jamil <jamilbk@users.noreply.github.com> |
||
|
|
b94eb4d4c7 |
chore: make stub of the Tauri client for macOS (#3977)
This would allow me to fix compile / check / fmt errors from macOS CI runners locally, e.g. https://github.com/firezone/firezone/pull/3920#discussion_r1513357337 It can't sign in or start connlib, but it shows the GUI  --------- Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com> Co-authored-by: User <user@Users-MacBook-Pro.local> Co-authored-by: Jamil <jamilbk@users.noreply.github.com> |
||
|
|
379f577291 |
chore(windows client): update windows and windows-implement deps (#3919)
Closes #3879 and #3902 I re-created Cargo.lock, so it incidentally updated a bunch of other stuff. I can revert that file if it's a problem. Had to search a bit for the breaking changes. Found here that they renamed `ComInterface`: https://github.com/microsoft/windows-rs/issues/2875#issuecomment-1962332067 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
d5922eade0 |
build(deps): Bump env_logger from 0.11.2 to 0.11.3 in /rust (#3968)
Bumps [env_logger](https://github.com/rust-cli/env_logger) from 0.11.2 to 0.11.3. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/rust-cli/env_logger/releases">env_logger's releases</a>.</em></p> <blockquote> <h2>v0.11.3</h2> <h2>[0.11.3] - 2024-03-05</h2> <h3>Features</h3> <ul> <li>Experimental support for key-value logging behind <code>unstable-kv</code></li> </ul> </blockquote> </details> <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.11.3] - 2024-03-05</h2> <h3>Features</h3> <ul> <li>Experimental support for key-value logging behind <code>unstable-kv</code></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
25439d0b68 |
build(deps): Bump log from 0.4.20 to 0.4.21 in /rust (#3956)
Bumps [log](https://github.com/rust-lang/log) from 0.4.20 to 0.4.21. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rust-lang/log/blob/master/CHANGELOG.md">log's changelog</a>.</em></p> <blockquote> <h2>[0.4.21] - 2024-02-27</h2> <h2>What's Changed</h2> <ul> <li>Minor clippy nits by <a href="https://github.com/nyurik"><code>@nyurik</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/578">rust-lang/log#578</a></li> <li>Simplify Display impl by <a href="https://github.com/nyurik"><code>@nyurik</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/579">rust-lang/log#579</a></li> <li>Set all crates to 2021 edition by <a href="https://github.com/nyurik"><code>@nyurik</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/580">rust-lang/log#580</a></li> <li>Various changes based on review by <a href="https://github.com/Thomasdezeeuw"><code>@Thomasdezeeuw</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/583">rust-lang/log#583</a></li> <li>Fix typo in file_static() method doc by <a href="https://github.com/dimo414"><code>@dimo414</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/590">rust-lang/log#590</a></li> <li>Specialize empty key value pairs by <a href="https://github.com/EFanZh"><code>@EFanZh</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/576">rust-lang/log#576</a></li> <li>Fix incorrect lifetime in Value::to_str() by <a href="https://github.com/peterjoel"><code>@peterjoel</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/587">rust-lang/log#587</a></li> <li>Remove some API of the key-value feature by <a href="https://github.com/Thomasdezeeuw"><code>@Thomasdezeeuw</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/585">rust-lang/log#585</a></li> <li>Add logcontrol-log and log-reload by <a href="https://github.com/swsnr"><code>@swsnr</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/595">rust-lang/log#595</a></li> <li>Add Serialization section to kv::Value docs by <a href="https://github.com/Thomasdezeeuw"><code>@Thomasdezeeuw</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/593">rust-lang/log#593</a></li> <li>Rename Value::to_str to to_cow_str by <a href="https://github.com/Thomasdezeeuw"><code>@Thomasdezeeuw</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/592">rust-lang/log#592</a></li> <li>Clarify documentation and simplify initialization of <code>STATIC_MAX_LEVEL</code> by <a href="https://github.com/ptosi"><code>@ptosi</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/594">rust-lang/log#594</a></li> <li>Update docs to 2021 edition, test by <a href="https://github.com/nyurik"><code>@nyurik</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/577">rust-lang/log#577</a></li> <li>Add "alterable_logger" link to README.md by <a href="https://github.com/brummer-simon"><code>@brummer-simon</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/589">rust-lang/log#589</a></li> <li>Normalize line ending by <a href="https://github.com/EFanZh"><code>@EFanZh</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/602">rust-lang/log#602</a></li> <li>Remove <code>ok_or</code> in favor of <code>Option::ok_or</code> by <a href="https://github.com/AngelicosPhosphoros"><code>@AngelicosPhosphoros</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/607">rust-lang/log#607</a></li> <li>Use <code>Acquire</code> ordering for initialization check by <a href="https://github.com/AngelicosPhosphoros"><code>@AngelicosPhosphoros</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/610">rust-lang/log#610</a></li> <li>Get structured logging API ready for stabilization by <a href="https://github.com/KodrAus"><code>@KodrAus</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/613">rust-lang/log#613</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/nyurik"><code>@nyurik</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/log/pull/578">rust-lang/log#578</a></li> <li><a href="https://github.com/dimo414"><code>@dimo414</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/log/pull/590">rust-lang/log#590</a></li> <li><a href="https://github.com/peterjoel"><code>@peterjoel</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/log/pull/587">rust-lang/log#587</a></li> <li><a href="https://github.com/ptosi"><code>@ptosi</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/log/pull/594">rust-lang/log#594</a></li> <li><a href="https://github.com/brummer-simon"><code>@brummer-simon</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/log/pull/589">rust-lang/log#589</a></li> <li><a href="https://github.com/AngelicosPhosphoros"><code>@AngelicosPhosphoros</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/log/pull/607">rust-lang/log#607</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
9e7389b1ac |
build(deps): Bump arboard from 3.3.1 to 3.3.2 in /rust (#3934)
Bumps [arboard](https://github.com/1Password/arboard) from 3.3.1 to 3.3.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/1Password/arboard/releases">arboard's releases</a>.</em></p> <blockquote> <h2>v3.3.2</h2> <h3>Fixed</h3> <ul> <li>Fixed compilation on Windows when using the <code>image-data</code> feature combined with older Rust compilers.</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/1Password/arboard/blob/master/CHANGELOG.md">arboard's changelog</a>.</em></p> <blockquote> <h2>3.3.2 on 2024-12-02</h2> <h3>Fixed</h3> <ul> <li>Fixed compilation on Windows when using the <code>image-data</code> feature combined with older Rust compilers.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
774e3bab64 |
build(deps): Bump mio from 0.8.10 to 0.8.11 in /rust (#3921)
Bumps [mio](https://github.com/tokio-rs/mio) from 0.8.10 to 0.8.11. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tokio-rs/mio/blob/master/CHANGELOG.md">mio's changelog</a>.</em></p> <blockquote> <h1>0.8.11</h1> <ul> <li>Fix receiving IOCP events after deregistering a Windows named pipe (<a href="https://redirect.github.com/tokio-rs/mio/pull/1760">tokio-rs/mio#1760</a>, backport pr: <a href="https://redirect.github.com/tokio-rs/mio/pull/1761">tokio-rs/mio#1761</a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
42042bb842 |
build(deps): Bump env_logger from 0.10.2 to 0.11.2 in /rust (#3904)
Bumps [env_logger](https://github.com/rust-cli/env_logger) from 0.10.2 to 0.11.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/rust-cli/env_logger/releases">env_logger's releases</a>.</em></p> <blockquote> <h2>v0.11.2</h2> <h2>[0.11.2] - 2024-02-13</h2> <h2>v0.11.1</h2> <h2>What's Changed</h2> <ul> <li>fix(fmt): Fix passing of WriteStyle when using Target::Pipe by <a href="https://github.com/Bobo1239"><code>@Bobo1239</code></a> in <a href="https://redirect.github.com/rust-cli/env_logger/pull/302">rust-cli/env_logger#302</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Bobo1239"><code>@Bobo1239</code></a> made their first contribution in <a href="https://redirect.github.com/rust-cli/env_logger/pull/302">rust-cli/env_logger#302</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/rust-cli/env_logger/compare/v0.11.0...v0.11.1">https://github.com/rust-cli/env_logger/compare/v0.11.0...v0.11.1</a></p> <h2>v0.11.0</h2> <h2>What's Changed</h2> <ul> <li>refactor(fmt): More anstream prep by <a href="https://github.com/epage"><code>@epage</code></a> in <a href="https://redirect.github.com/rust-cli/env_logger/pull/297">rust-cli/env_logger#297</a></li> <li>fix(fmt): Improve terminal styling support by <a href="https://github.com/epage"><code>@epage</code></a> in <a href="https://redirect.github.com/rust-cli/env_logger/pull/298">rust-cli/env_logger#298</a></li> <li>refactor: Split out env_filter package by <a href="https://github.com/epage"><code>@epage</code></a> in <a href="https://redirect.github.com/rust-cli/env_logger/pull/299">rust-cli/env_logger#299</a></li> <li>feat(filter): Add a Logger decorator by <a href="https://github.com/epage"><code>@epage</code></a> in <a href="https://redirect.github.com/rust-cli/env_logger/pull/300">rust-cli/env_logger#300</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/rust-cli/env_logger/compare/v0.10.2...v0.11.0">https://github.com/rust-cli/env_logger/compare/v0.10.2...v0.11.0</a></p> </blockquote> </details> <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.11.2] - 2024-02-13</h2> <h2>[0.11.1] - 2024-01-27</h2> <h3>Fixes</h3> <ul> <li>Allow styling with <code>Target::Pipe</code></li> </ul> <h2>[0.11.0] - 2024-01-19</h2> <h3>Migration Guide</h3> <p><strong>env_logger::fmt::Style:</strong> The bespoke styling API, behind <code>color</code>, was removed, in favor of accepting any ANSI styled string and adapting it to the target stream's capabilities.</p> <p>Possible styling libraries include:</p> <ul> <li><a href="https://docs.rs/anstyle">anstyle</a> is a minimal, runtime string styling API and is re-exported as <code>env_logger::fmt::style</code></li> <li><a href="https://docs.rs/owo-colors">owo-colors</a> is a feature rich runtime string styling API</li> <li><a href="https://docs.rs/color-print">color-print</a> for feature-rich compile-time styling API</li> </ul> <p><a href="https://docs.rs/env_logger/latest/src/custom_format/custom_format.rs.html">custom_format.rs</a> uses <code>anstyle</code> via <a href="https://docs.rs/env_logger/latest/env_logger/fmt/struct.Formatter.html#method.default_level_style"><code>Formatter::default_level_style</code></a></p> <h3>Breaking Change</h3> <ul> <li>Removed bespoke styling API <ul> <li><code>env_logger::fmt::Formatter::style</code></li> <li><code>env_logger::fmt::Formatter::default_styled_level</code></li> <li><code>env_logger::fmt::Style</code></li> <li><code>env_logger::fmt::Color</code></li> <li><code>env_logger::fmt::StyledValue</code></li> </ul> </li> <li>Removed <code>env_logger::filter</code> in favor of <code>env_filter</code></li> </ul> <h3>Compatibility</h3> <p>MSRV changed to 1.71</p> <h3>Features</h3> <ul> <li>Automatically adapt ANSI escape codes in logged messages to the current terminal's capabilities</li> <li>Add support for <code>NO_COLOR</code> and <code>CLICOLOR_FORCE</code>, see <a href="https://bixense.com/clicolors/">https://bixense.com/clicolors/</a></li> </ul> <h3>Fixes</h3> <ul> <li>Print colors when <code>is_test(true)</code></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
fd78e711f0 |
chore(connlib): make some logs more meaningful (#3835)
Extracted out of: #3682. |
||
|
|
268e792f48 |
chore(ci): Use GH actions cache for Tauri builds (#3906)
Builds off #3905 and uses the GH actions cache for tauri builds in order to get around the `crate-type` problem sccache has with Tauri apps. Fixes #3456 |
||
|
|
f9e5f34eb8 |
build(deps): Bump arc-swap from 1.6.0 to 1.7.0 in /rust (#3903)
Bumps [arc-swap](https://github.com/vorner/arc-swap) from 1.6.0 to 1.7.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/vorner/arc-swap/blob/master/CHANGELOG.md">arc-swap's changelog</a>.</em></p> <blockquote> <h1>1.7.1</h1> <ul> <li>Support for no-std builds with the <code>experimental-thread-local</code>. Needs nightly compiler. No stability guarantees with this feature (<a href="https://redirect.github.com/vorner/arc-swap/issues/93">#93</a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/vorner/arc-swap/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 this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Reactor Scram <ReactorScram@users.noreply.github.com> |
||
|
|
9c93345885 |
chore(gui-client): log uptime and run ID when a window is shown (#3913)
I want to make sure there aren't bugs that prevent the GUI clients from reaching high uptime, so this makes it easy to check the uptime with e.g. `tail -f`. The run IDs would let us re-construct when the app restarts. "chore" doesn't seem right but it's not a user-facing feature, test, doc, fix, or refactor, either. Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com> |
||
|
|
74c74b5d3c |
refactor: correct event name, should be ShowWindow not ToggleWindow after… (#3912)
… PR 3769 Accidentally had the branch name as `docs` but it's more of a `refactor`. |
||
|
|
fc01a3c2d0 |
test(gui-client): fix missed mutations (#3753)
I added unit tests for these pure or mostly-pure functions that `cargo-mutants` said were not covered. It also picked up a lot of I/O-performing functions that I ignored for now. (They're hard to test) |
||
|
|
c6c4624b66 |
fix: use atomicwrites to back up /etc/resolv.conf more robustly (#3828)
Part of a small yak shave for #3817 The `atomicwrites` lib uses the atomic rename trick and does correct fsyncs for us, so if we lose power while rewriting or reverting `/etc/resolv.conf`, it should always be in a recoverable state. (Unless the hard drive lies about fsync, but then it's beyond our control.) --------- Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com> |
||
|
|
8c59ff7aa1 |
refactor: Reduce log levels for production releases to avoid filling customer's… (#3899)
Tuning the logging down a bit on our production releases. Prevents gathering data we don't need to be gathering and prevents filling up drive space with debug logs. refs #3618 |
||
|
|
5665253ee3 |
build(deps): Bump tempfile from 3.10.0 to 3.10.1 in /rust (#3878)
Bumps [tempfile](https://github.com/Stebalien/tempfile) from 3.10.0 to 3.10.1. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md">tempfile's changelog</a>.</em></p> <blockquote> <h2>3.10.1</h2> <ul> <li>Handle potential integer overflows in 32-bit systems when seeking/truncating "spooled" temporary files past 4GiB (2³²).</li> <li>Handle a theoretical 32-bit overflow when generating a temporary file name larger than 4GiB. Now it'll panic (on allocation failure) rather than silently succeeding due to wraparound.</li> </ul> <p>Thanks to <a href="https://github.com/stoeckmann"><code>@stoeckmann</code></a> for finding and fixing both of these issues.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
ecefd173bb |
build(deps): Bump tauri from 1.6.0 to 1.6.1 in /rust (#3881)
Bumps [tauri](https://github.com/tauri-apps/tauri) from 1.6.0 to 1.6.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tauri-apps/tauri/releases">tauri's releases</a>.</em></p> <blockquote> <h2>tauri v1.6.1</h2> <p>Updating crates.io index</p> <!-- raw HTML omitted --> <pre><code>Fetching advisory database from `https://github.com/RustSec/advisory-db.git` Loaded 605 security advisories (from /home/runner/.cargo/advisory-db) Updating crates.io index Scanning Cargo.lock for vulnerabilities (583 crate dependencies) Crate: safemem Version: 0.3.3 Warning: unmaintained Title: safemem is unmaintained Date: 2023-02-14 ID: RUSTSEC-2023-0081 URL: https://rustsec.org/advisories/RUSTSEC-2023-0081 Dependency tree: safemem 0.3.3 └── line-wrap 0.1.1 └── plist 1.6.0 └── tauri-codegen 1.4.2 ├── tauri-macros 1.4.3 │ └── tauri 1.6.1 │ ├── tauri 1.6.1 │ ├── restart 0.1.0 │ └── app-updater 0.1.0 └── tauri-build 1.5.1 └── app-updater 0.1.0 <p>Crate: atty Version: 0.2.14 Warning: unsound Title: Potential unaligned read Date: 2021-07-04 ID: RUSTSEC-2021-0145 URL: <a href="https://rustsec.org/advisories/RUSTSEC-2021-0145">https://rustsec.org/advisories/RUSTSEC-2021-0145</a> Dependency tree: atty 0.2.14 └── clap 3.2.25 └── tauri 1.6.1 ├── tauri 1.6.1 ├── restart 0.1.0 └── app-updater 0.1.0</p> <p>warning: 2 allowed warnings found </code></pre></p> <!-- raw HTML omitted --> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
74ca194b10 |
build(deps): Bump walkdir from 2.4.0 to 2.5.0 in /rust (#3882)
Bumps [walkdir](https://github.com/BurntSushi/walkdir) from 2.4.0 to 2.5.0. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
18144ba9c4 |
fix(phoenix-channel): retain order of messages to be sent to the portal (#3834)
Extracted out of: #3682. Signed-off-by: Thomas Eizinger <thomas@eizinger.io> |
||
|
|
e9ef15dc43 |
feat(snownet): set wireguard keep-alive (#3829)
In my local testing, I noticed that not using the tunnel for a bit ends up expiring the WG session which causes a new handshake if you then run a ping or something else. Having the keep-alive should help with not paying that extra RT that is required for a new session, |
||
|
|
96ad6115f9 |
fix(tauri clients): apply auth base URL and API URL settings without app restart (#3868)
Closes #3862 I refactored the settings code, removing `_settings_` from some function names where it was redundant. The log level is more difficult to change live, so I added a `tracing::info!` noting that it will apply on next app start. ```[tasklist] ### Before merging - [x] Document whether pressing Enter on a field to apply settings is intended behavior - [x] Document that log levels don't apply until next app start - [x] Document that auth and API URL apply on next sign-in ``` |
||
|
|
789d2160de |
refactor(linux): make a place for reverting /etc/resolv.conf (#3822)
Makes progress towards #3817 --------- Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com> |
||
|
|
2df2ef13ba |
build(connlib): suppress clippy::unnecessary_cast lint on aarch64 Linux (#3824)
This took me 5 entire minutes at least to figure out: `c_char` is... - i8 on aarch64 Darwin: https://docs.rs/libc/latest/aarch64-apple-darwin/libc/type.c_char.html - i8 on aarch64 Windows: https://docs.rs/libc/latest/aarch64-pc-windows-msvc/libc/type.c_char.html - i8 on x86_64 Linux: https://docs.rs/libc/latest/libc/type.c_char.html - i8 on x86_64 Windows: https://docs.rs/libc/latest/x86_64-pc-windows-msvc/libc/type.c_char.html - **u8** on aarch64 Linux. Both GNU and musl: https://docs.rs/libc/latest/aarch64-unknown-linux-gnu/libc/type.c_char.html It is also u8 on Android aarch64, but we don't run CI on that so I guess Clippy never hit it there. |
||
|
|
9d8233a406 |
feat(phoenix-channel): remove concept of "inbound requests" (#3831)
We don't have a concept of "inbound requests", at least not natively in the phoenix channel JSON format. Thus, we don't need to match on `ref` for incoming messages. Extracted out of: #3682. |