Commit Graph

982 Commits

Author SHA1 Message Date
Reactor Scram
84cd1574ff chore(gui-client): remove incorrect DNS deactivation (#5067)
This call always results in an error because the GUI runs unprivileged
on both Linux and Windows now, so it can't control DNS or deactivate DNS
control. The IPC service has taken over all that, so the GUI not only
shouldn't do it, it can't do it.

<img width="568" alt="image"
src="https://github.com/firezone/firezone/assets/13400041/ad1b861f-4f3e-453a-94b5-d6f21c9eb198">
2024-05-21 19:16:37 +00:00
Reactor Scram
04fd2f9581 chore(gui-client): disable the Welcome screen only after the first sign-in (#5066)
Closes #5015.

This way if the user opens and closes the GUI without doing anything,
the Welcome screen still appears until they successfully sign in.
Previously the `ran_before` flag was set after the first GUI startup.

Tested on Windows once.
2024-05-21 18:20:40 +00:00
Reactor Scram
b510041494 chore(connlib): fix copy-paste typo in comment about DNS (#5053)
Closes #5051
2024-05-21 18:15:20 +00:00
Gabi
0288b1e9af chore(connlib): make encapsulate pure (#5055) 2024-05-21 18:11:21 +00:00
dependabot[bot]
bcd8d2e050 build(deps): Bump arboard from 3.3.2 to 3.4.0 in /rust (#5038)
Bumps [arboard](https://github.com/1Password/arboard) from 3.3.2 to
3.4.0.
<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.4.0</h2>
<h3>Added</h3>
<ul>
<li>Added a <code>wait_until</code> method for Linux, as a superset of
the existing <code>wait</code> functionality.
This is a helper for letting an application wait without manual timeout
handling.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Transparency in copied images now behaves better in certain Windows
apps.</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Updated <code>image</code> to <code>0.25</code>.</li>
<li>Removed direct <code>thiserror</code> dependency.</li>
<li>Fixed Linux documentation links</li>
<li>Raised MSRV to 1.67.1</li>
<li>Reverted timeout behavior of <code>Clipboard::new()</code> on
platforms using X11. Applications are
encouraged to wrap constructor calls in their own thread/channel timeout
mechanisms instead
to make sure the behavior matches each usecase.</li>
<li>Migrated away from <code>objc</code> to the <code>objc2</code>
ecosystem for the Apple clipboard implementation.</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/1Password/arboard/compare/v3.3.2...v3.4.0">https://github.com/1Password/arboard/compare/v3.3.2...v3.4.0</a></p>
</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.4.0 on 2024-29-04</h2>
<h3>Added</h3>
<ul>
<li>Added a <code>wait_until</code> method for Linux, as a superset of
the existing <code>wait</code> functionality.
This is a helper for letting an application wait without manual timeout
handling.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Transparency in copied images now behaves better in certain Windows
apps.</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Updated <code>image</code> to <code>0.25</code>.</li>
<li>Removed direct <code>thiserror</code> dependency.</li>
<li>Fixed Linux documentation links</li>
<li>Raised MSRV to 1.67.1</li>
<li>Reverted timeout behavior of <code>Clipboard::new()</code> on
platforms using X11. Applications are
encouraged to wrap constructor calls in their own thread/channel timeout
mechanisms instead
to make sure the behavior matches each usecase.</li>
<li>Migrated away from <code>objc</code> to the <code>objc2</code>
ecosystem for the Apple clipboard implementation.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="151e679ee5"><code>151e679</code></a>
Release 3.4.0</li>
<li><a
href="610e29ba81"><code>610e29b</code></a>
Remove direct thiserror dependency</li>
<li><a
href="83740b7ab0"><code>83740b7</code></a>
Copy image as PNG file on Windows (<a
href="https://redirect.github.com/1Password/arboard/issues/141">#141</a>)</li>
<li><a
href="0bff1e07ea"><code>0bff1e0</code></a>
Use objc2 and its framework crates</li>
<li><a
href="1cca83d7e5"><code>1cca83d</code></a>
Revert &quot;add timeout to RustConnection::connect to X11
server&quot;</li>
<li><a
href="b4646f6c5f"><code>b4646f6</code></a>
Increase version of clipboard-win used by default</li>
<li><a
href="e2846f9288"><code>e2846f9</code></a>
Fix clippy errors</li>
<li><a
href="2f4b502508"><code>2f4b502</code></a>
Move <code>WaitConfig</code> to src/platform/linux/mod.rs, use
<code>WaitConfig</code> inside `stru...</li>
<li><a
href="6cf324cc44"><code>6cf324c</code></a>
Added <code>WaitConfig</code>, fix <code>wait_until</code> note in
docs</li>
<li><a
href="eabb191df0"><code>eabb191</code></a>
add notice for X11 in <code>SetExtLinux#wait_until</code> docs</li>
<li>Additional commits viewable in <a
href="https://github.com/1Password/arboard/compare/v3.3.2...v3.4.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=arboard&package-manager=cargo&previous-version=3.3.2&new-version=3.4.0)](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>
2024-05-21 18:00:17 +00:00
dependabot[bot]
4e6bcef6e5 build(deps): Bump libc from 0.2.154 to 0.2.155 in /rust (#5039)
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.154 to 0.2.155.
<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.155</h2>
<h2>What's Changed</h2>
<ul>
<li>Add <code>SYS_lseek</code> and <code>SYS_mmap</code> for aarch64
Android by <a
href="https://github.com/lberrymage"><code>@​lberrymage</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3632">rust-lang/libc#3632</a></li>
<li>Correct the value of FAN_MARK_IGNORE by <a
href="https://github.com/severen"><code>@​severen</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3622">rust-lang/libc#3622</a></li>
<li>Update FreeBSD 13 CI image by <a
href="https://github.com/JohnTitor"><code>@​JohnTitor</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3671">rust-lang/libc#3671</a></li>
<li>android: add FUTEX_LOCK_PI2 by <a
href="https://github.com/rtzoeller"><code>@​rtzoeller</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3635">rust-lang/libc#3635</a></li>
<li>Fix out-of-bounds pointer arithmetic in CMSG_NXTHDR by <a
href="https://github.com/purplesyringa"><code>@​purplesyringa</code></a>
in <a
href="https://redirect.github.com/rust-lang/libc/pull/3676">rust-lang/libc#3676</a></li>
<li>Revert &quot;Support posix_spawn on Android&quot; by <a
href="https://github.com/JohnTitor"><code>@​JohnTitor</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3678">rust-lang/libc#3678</a></li>
<li>Unlock ci: fix wrong cfg emscripten by <a
href="https://github.com/tesuji"><code>@​tesuji</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3684">rust-lang/libc#3684</a></li>
<li>redox: correct EPOLL constants by <a
href="https://github.com/jackpot51"><code>@​jackpot51</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3686">rust-lang/libc#3686</a></li>
<li>[0.2] Revert &quot;Upgrade Docker images to Ubuntu 23.10&quot; on
sparc64 by <a
href="https://github.com/cuviper"><code>@​cuviper</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3708">rust-lang/libc#3708</a></li>
<li>Re-add <code>posix_spawn{_file_actions_t,attr_t}</code> on Android
by <a href="https://github.com/tesuji"><code>@​tesuji</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3690">rust-lang/libc#3690</a></li>
<li>Update version to <code>0.2.155</code> by <a
href="https://github.com/madsmtm"><code>@​madsmtm</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3682">rust-lang/libc#3682</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/lberrymage"><code>@​lberrymage</code></a> made
their first contribution in <a
href="https://redirect.github.com/rust-lang/libc/pull/3632">rust-lang/libc#3632</a></li>
<li><a
href="https://github.com/purplesyringa"><code>@​purplesyringa</code></a>
made their first contribution in <a
href="https://redirect.github.com/rust-lang/libc/pull/3676">rust-lang/libc#3676</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/rust-lang/libc/compare/0.2.154...0.2.155">https://github.com/rust-lang/libc/compare/0.2.154...0.2.155</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7df63bd7f6"><code>7df63bd</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/libc/issues/3682">#3682</a>
from madsmtm/new-version</li>
<li><a
href="0bbb5cda65"><code>0bbb5cd</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/libc/issues/3690">#3690</a>
from tesuji/android-posix-spawn</li>
<li><a
href="15c74a4fab"><code>15c74a4</code></a>
Update version to 0.2.155</li>
<li><a
href="664947bdb0"><code>664947b</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/libc/issues/3708">#3708</a>
from cuviper/ci-sparc64-0.2</li>
<li><a
href="61331df06f"><code>61331df</code></a>
Also skip <code>MFD_EXEC</code> and <code>MFD_NOEXEC_SEAL</code> on
sparc64</li>
<li><a
href="73d2004d3e"><code>73d2004</code></a>
Skip <code>SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV</code> on sparc64</li>
<li><a
href="80535f34aa"><code>80535f3</code></a>
Revert &quot;Upgrade Docker images to Ubuntu 23.10&quot; on sparc64</li>
<li><a
href="b2b2fd71f4"><code>b2b2fd7</code></a>
Readd posix_spawn{_file_actions_t,attr_t} on Android</li>
<li><a
href="76462771b6"><code>7646277</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/libc/issues/3686">#3686</a>
from redox-os/redox-epoll-0.2</li>
<li><a
href="5eff703b92"><code>5eff703</code></a>
redox: correct EPOLL constants</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-lang/libc/compare/0.2.154...0.2.155">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=libc&package-manager=cargo&previous-version=0.2.154&new-version=0.2.155)](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>
2024-05-21 02:01:50 +00:00
Reactor Scram
1ef775dee1 feat(windows-client): run the GUI and tunnel in separate processes (#4978)
Ready for review.

Closes #3712.
Supersedes #4940.
Refs #4963.

I haven't figured out if it needs any new automated tests (unit,
integration, etc.) but the code itself is ready for review. There is
more refactoring that could be done, or could be left for later.

```[tasklist]
- [x] Move wintun setup from GUI to IPC service / headless client
- [x] Make sure the device ID is in a sensible place
- [x] Export IPC service logs in the zips
- [x] Test GUI + SC IPC service on Windows (f4db808919a passed)
- [x] Make sure IPC service does not busy-loop
- [x] Test un-install checklist for Windows
- [x] Test upgrade checklist for Windows
- [x] Test GUI + systemd IPC service on Linux (c4ab7e7 passed)
- [x] Test upgrade checklist for Linux
- [x] Test un-install checklist for Linux
- [x] Make sure the IPC service logs out and deactivates DNS control if the GUI crashes
- [x] Test network changing
- [x] (it's intended behavior) ~~Look into spurious `on_update_resources` (fad86babd7)~~
- [x] ~~Test max partition time on offline laptop~~ (I ended up just setting a 30-day default in the code)
- [x] Make sure headless Client does not busy-loop
- [x] Test standalone headless on Linux
- [ ] Add unit / integration tests
- [ ] Think about security a bit #3971
```

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-05-20 21:37:29 +00:00
Thomas Eizinger
3fba5745ee refactor(connlib): use events for pushing updated resource list (#5035)
The API of connlib is designed around a uni-directional dataflow where
commands flow one way and events flow the other way. By design, this
creates a system of eventual consistency: We don't exactly know when
connlib will emit an event. This is important because it gives us
flexibility in what the internals of connlib look like. It also forces
the downstream apps to be able to handle any event at any point which
avoids bugs where clients rely on a certain order that may just be an
implementation detail.

To achieve all of this, it is important that we don't introduce APIs
with return values. As soon as a function returns a value, it commits to
being able to compute this return value _synchronously_. Any refactoring
that may make the computation of the return value asynchronous is then a
breaking change.

Consequently, APIs like `handle_timeout` should never return a value.
Instead, they should queue an event that the layer above reacts to
accordingly.
2024-05-20 21:20:45 +00:00
Gabi
361aafb746 chore(connlib): upgrade domain version from 0.9 to 0.10 (#5028) 2024-05-20 20:54:22 +00:00
Reactor Scram
1bf42a0a8d chore(gui-client): log connlib on_disconnect errors in the IPC service (#5045)
Refs #5027, this will get a little more information about that issue
2024-05-20 20:11:55 +00:00
Reactor Scram
89a3b526c6 fix(gui-client): log and continue if getting or deleting the token fails (#5021)
Closes #5016
2024-05-17 18:33:58 +00:00
Reactor Scram
b1dde546ab chore(rust): update to Rust 1.78 (#5006)
```[tasklist]
### Before merging
- [x] Apple smoke test
- [x] Android smoke test
```
2024-05-17 14:08:35 +00:00
Gabi
e3ead8c1ec chore(connlib): ensure there are client_resources before trying to sample them in proptest (#5017)
This came up while working on #4994 while writing the proptests I
noticed that the precondition could panic since we don't have this check
there and would cause shrinking to fail.
2024-05-17 02:37:08 +00:00
Gabi
941b18b2a8 chore(connlib): set_payload is called for udp packets for tests (#5018)
came up while working on #4994
2024-05-16 23:55:12 +00:00
Reactor Scram
d59c3fef0a build(gui-client): add post-install and pre-remove scripts to the deb package (#5011)
Closes #4987

```[tasklist]
### Before merging
- [x] Get an x64 test VM on the Windows laptop and test a CI-built deb
```
2024-05-16 23:03:21 +00:00
Gabi
a6e0cd4fbb chore(connlib): limit resource_update to resource changes (#5005) 2024-05-15 23:42:24 +00:00
Reactor Scram
770bb3432e chore(client): update internal docs for Windows and Linux GUI Clients (#5003)
Copied out of #4978
2024-05-15 22:19:04 +00:00
Gabi
a7d35cd5f1 feat(connlib): report resource status to client (#4931)
This PR introduces site's `Status`. That's used to report to the client
the status, either, unknown, online or offline, mostly as a hint to
users as what's wrong with a connection.

This are the criteria for an online or offline resource

* If all sites related to a resource are offline the resource is
considered offline, since there's no gateway that can respond to that
resource's connection
* If any site is online the resource is online, since that same peer can
be used to reach that resource
* Any other case is unknown

Right now resources are single site so it doesn't matter too much but
tracking online/offline per-site instead of per-gateway or resource
seems like the better long-term solution.

The way to "find out" the site's status is:

* If a response to a connection details is offline, all sites related to
that resource must be offline otherwise there would've been a gateway in
the response
* At the point we connect to a gateway, the site that corresponds to
that gateway must be online
* When a connection to a peer stops it's considered unknown again

Fixes #4738
2024-05-15 15:33:04 +00:00
Reactor Scram
43223f2ec5 chore(windows): style the MSI installer (#4990)
Closes #4919 

![image](https://github.com/firezone/firezone/assets/13400041/455bd444-3b75-4bfb-8cc0-afdcd29c55de)

![image](https://github.com/firezone/firezone/assets/13400041/b166fb9a-d7bc-4ac8-8ade-99cebfc7b7a5)

![image](https://github.com/firezone/firezone/assets/13400041/27eff651-08a4-4185-93cc-e1e544595ad8)
2024-05-14 23:25:40 +00:00
Jamil
e50b3bd865 chore: bump versions for 1.0.4 release (#4985)
Update download links etc for the 1.0.4 release
2024-05-14 16:11:12 +00:00
dependabot[bot]
6dd7b4cfec build(deps): Bump base64 from 0.22.0 to 0.22.1 in /rust (#4969)
Bumps [base64](https://github.com/marshallpierce/rust-base64) from
0.22.0 to 0.22.1.
<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.1</h1>
<ul>
<li>Correct the symbols used for the predefined
<code>alphabet::BIN_HEX</code>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e144006974"><code>e144006</code></a>
v0.22.1</li>
<li><a
href="64cca59ddb"><code>64cca59</code></a>
Merge pull request <a
href="https://redirect.github.com/marshallpierce/rust-base64/issues/271">#271</a>
from JobanSD/patch-1</li>
<li><a
href="838355e0ac"><code>838355e</code></a>
Correct BinHex 4.0 alphabet according to specifications</li>
<li><a
href="bf15ccf30a"><code>bf15ccf</code></a>
Merge pull request <a
href="https://redirect.github.com/marshallpierce/rust-base64/issues/270">#270</a>
from marshallpierce/mp/clippy</li>
<li><a
href="fc6aabee8a"><code>fc6aabe</code></a>
Appease clippy</li>
<li><a
href="9a518a2d5d"><code>9a518a2</code></a>
Merge pull request <a
href="https://redirect.github.com/marshallpierce/rust-base64/issues/267">#267</a>
from bdura/patch-1</li>
<li><a
href="d96c80f242"><code>d96c80f</code></a>
Merge branch 'marshallpierce:master' into patch-1</li>
<li><a
href="e8e4a22761"><code>e8e4a22</code></a>
docs: fix trailing ``` in mod.rs example</li>
<li>See full diff in <a
href="https://github.com/marshallpierce/rust-base64/compare/v0.22.0...v0.22.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=base64&package-manager=cargo&previous-version=0.22.0&new-version=0.22.1)](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>
2024-05-13 19:38:38 +00:00
dependabot[bot]
36b7ce8aba build(deps): Bump zip from 0.6.6 to 1.2.3 in /rust (#4970)
Bumps [zip](https://github.com/zip-rs/zip2) from 0.6.6 to 1.2.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/zip-rs/zip2/releases">zip's
releases</a>.</em></p>
<blockquote>
<h2>v1.2.3</h2>
<h3><!-- raw HTML omitted -->🐛 Bug Fixes</h3>
<ul>
<li>Remove a window when an extracted directory might be unexpectedly
listable and/or <code>cd</code>able by non-owners</li>
<li>Extract directory contents on Unix even if the directory doesn't
have write permission (<a
href="https://redirect.github.com/zip-rs/zip-old/issues/423">zip-rs/zip-old#423</a>)</li>
</ul>
<h3><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h3>
<ul>
<li>More conditionally-unused imports</li>
</ul>
<h2>v1.2.2</h2>
<h3><!-- raw HTML omitted -->🐛 Bug Fixes</h3>
<ul>
<li>Failed to clear &quot;writing_raw&quot; before finishing a symlink,
leading to dropped extra fields</li>
</ul>
<h3><!-- raw HTML omitted --> Performance</h3>
<ul>
<li>Use boxed slice for archive comment, since it can't be
concatenated</li>
<li>Optimize for the fact that false signatures can't overlap with real
ones</li>
</ul>
<h2>v1.2.1</h2>
<h3><!-- raw HTML omitted -->🐛 Bug Fixes</h3>
<ul>
<li>Prevent panic when trying to read a file with an unsupported
compression method</li>
<li>Prevent panic after reading an invalid LZMA file</li>
<li>Make <code>Stored</code> the default compression method if
<code>Deflated</code> isn't available, so that zip files are readable by
as much software as possible</li>
<li>version_needed was wrong when e.g. cfg(bzip2) but current file
wasn't bzip2 (<a
href="https://redirect.github.com/zip-rs/zip2/pull/100">#100</a>)</li>
<li>file paths shouldn't start with slashes (<a
href="https://redirect.github.com/zip-rs/zip2/pull/102">#102</a>)</li>
</ul>
<h3><!-- raw HTML omitted -->🚜 Refactor</h3>
<ul>
<li>Overhaul <code>impl Arbitrary for FileOptions</code></li>
<li>Remove unused <code>atomic</code> module</li>
</ul>
<h2>v1.2.0</h2>
<h3><!-- raw HTML omitted -->🚀 Features</h3>
<ul>
<li>Add method <code>decompressed_size()</code> so non-recursive ZIP
bombs can be detected</li>
</ul>
<h3><!-- raw HTML omitted -->🚜 Refactor</h3>
<ul>
<li>Make <code>ZipWriter::finish()</code> consume the
<code>ZipWriter</code></li>
</ul>
<h3><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h3>
<ul>
<li>Use panic! rather than abort to ensure the fuzz harness can process
the failure</li>
<li>Update fuzz_write to use replace_with</li>
<li>Remove a drop that can no longer be explicit</li>
<li>Add <code>#![allow(unexpected_cfgs)]</code> in nightly</li>
</ul>
<h2>v1.1.4</h2>
<h3><!-- raw HTML omitted -->🐛 Bug Fixes</h3>
<ul>
<li>Rare bug where find_and_parse would give up prematurely on detecting
a false end-of-CDR header</li>
</ul>
<h2>v1.1.3</h2>
<h3><!-- raw HTML omitted -->🐛 Bug Fixes</h3>
<ul>
<li>Alignment was previously handled incorrectly (<a
href="https://redirect.github.com/Pr0methean/zip/pull/33">#33</a>)</li>
</ul>
<h3><!-- raw HTML omitted -->🚜 Refactor</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/zip-rs/zip2/blob/master/CHANGELOG.md">zip's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/zip-rs/zip2/compare/v1.2.2...v1.2.3">1.2.3</a>
- 2024-05-10</h2>
<h3><!-- raw HTML omitted -->🐛 Bug Fixes</h3>
<ul>
<li>Remove a window when an extracted directory might be unexpectedly
listable and/or <code>cd</code>able by non-owners</li>
<li>Extract directory contents on Unix even if the directory doesn't
have write permission (<a
href="https://redirect.github.com/zip-rs/zip-old/issues/423">zip-rs/zip-old#423</a>)</li>
</ul>
<h3><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h3>
<ul>
<li>More conditionally-unused imports</li>
</ul>
<h2><a
href="https://github.com/zip-rs/zip2/compare/v1.2.1...v1.2.2">1.2.2</a>
- 2024-05-09</h2>
<h3><!-- raw HTML omitted -->🐛 Bug Fixes</h3>
<ul>
<li>Failed to clear &quot;writing_raw&quot; before finishing a symlink,
leading to dropped extra fields</li>
</ul>
<h3><!-- raw HTML omitted --> Performance</h3>
<ul>
<li>Use boxed slice for archive comment, since it can't be
concatenated</li>
<li>Optimize for the fact that false signatures can't overlap with real
ones</li>
</ul>
<h2><a
href="https://github.com/zip-rs/zip2/compare/v1.2.0...v1.2.1">1.2.1</a>
- 2024-05-06</h2>
<h3><!-- raw HTML omitted -->🐛 Bug Fixes</h3>
<ul>
<li>Prevent panic when trying to read a file with an unsupported
compression method</li>
<li>Prevent panic after reading an invalid LZMA file</li>
<li>Make <code>Stored</code> the default compression method if
<code>Deflated</code> isn't available, so that zip files are readable by
as much software as possible</li>
<li>version_needed was wrong when e.g. cfg(bzip2) but current file
wasn't bzip2 (<a
href="https://redirect.github.com/zip-rs/zip2/pull/100">#100</a>)</li>
<li>file paths shouldn't start with slashes (<a
href="https://redirect.github.com/zip-rs/zip2/pull/102">#102</a>)</li>
</ul>
<h3><!-- raw HTML omitted -->🚜 Refactor</h3>
<ul>
<li>Overhaul <code>impl Arbitrary for FileOptions</code></li>
<li>Remove unused <code>atomic</code> module</li>
</ul>
<h2><a
href="https://github.com/zip-rs/zip2/compare/v1.1.4...v1.2.0">1.2.0</a>
- 2024-05-06</h2>
<h3><!-- raw HTML omitted -->🚀 Features</h3>
<ul>
<li>Add method <code>decompressed_size()</code> so non-recursive ZIP
bombs can be detected</li>
</ul>
<h3><!-- raw HTML omitted -->🚜 Refactor</h3>
<ul>
<li>Make <code>ZipWriter::finish()</code> consume the
<code>ZipWriter</code></li>
</ul>
<h3><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h3>
<ul>
<li>Use panic! rather than abort to ensure the fuzz harness can process
the failure</li>
<li>Update fuzz_write to use replace_with</li>
<li>Remove a drop that can no longer be explicit</li>
<li>Add <code>#![allow(unexpected_cfgs)]</code> in nightly</li>
</ul>
<h2><a
href="https://github.com/zip-rs/zip2/compare/v1.1.3...v1.1.4">1.1.4</a>
- 2024-05-04</h2>
<h3><!-- raw HTML omitted -->🐛 Bug Fixes</h3>
<ul>
<li>Build was failing with bzip2 enabled</li>
<li>use is_dir in more places where Windows paths might be handled
incorrectly</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/zip-rs/zip2/commits/v1.2.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=zip&package-manager=cargo&previous-version=0.6.6&new-version=1.2.3)](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: Not Applicable <ReactorScram@users.noreply.github.com>
2024-05-13 17:48:01 +00:00
Reactor Scram
b444dee1c9 refactor(headless-client): deprecate subcommands for now (#4953)
Closes #4907

They're still accepted, but the binary entirely determines the behavior.
This makes the code for CLI parsing and token handling simpler with
fewer branches, so it's easier to be sure it's correct.

Replaces #4942 which isn't doing what I intended anymore.
2024-05-13 16:05:44 +00:00
Reactor Scram
ca0de26c75 chore(ipc-service/linux): fix incorrect error message (#4976)
closes #4952

Forgot to use `format!` here
2024-05-13 15:59:14 +00:00
dependabot[bot]
26b181ef53 build(deps): Bump tokio-util from 0.7.10 to 0.7.11 in /rust (#4971)
Bumps [tokio-util](https://github.com/tokio-rs/tokio) from 0.7.10 to
0.7.11.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="cdf9d997dc"><code>cdf9d99</code></a>
chore: prepare tokio-util v0.7.11 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6535">#6535</a>)</li>
<li><a
href="f6eb1ee196"><code>f6eb1ee</code></a>
time: lazily init timers on first poll (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6512">#6512</a>)</li>
<li><a
href="b7d4fba707"><code>b7d4fba</code></a>
sync: add <code>mpsc::Receiver::{capacity,max_capacity}</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6511">#6511</a>)</li>
<li><a
href="3c8d8e60ca"><code>3c8d8e6</code></a>
chore: fix latest rust-1.78.0 warnings (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6528">#6528</a>)</li>
<li><a
href="e971a5e7d7"><code>e971a5e</code></a>
util: use FIFO ordering in <code>WakeList</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6521">#6521</a>)</li>
<li><a
href="28439e2269"><code>28439e2</code></a>
time: clean up implementation (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6517">#6517</a>)</li>
<li><a
href="d33fdd86a3"><code>d33fdd8</code></a>
time: check for overflow in <code>Interval::poll_tick</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6487">#6487</a>)</li>
<li><a
href="731dde21dc"><code>731dde2</code></a>
runtime: clarify misleading use of <code>UnsafeCell::with_mut</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6513">#6513</a>)</li>
<li><a
href="9ed595767d"><code>9ed5957</code></a>
wasm: support rt-multi-thread with wasm32-wasi-preview1-threads (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6510">#6510</a>)</li>
<li><a
href="a73d6bf33a"><code>a73d6bf</code></a>
macros: <code>#[cfg(not(test))]</code> is no longer necessary for main
macros (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6508">#6508</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tokio-rs/tokio/compare/tokio-util-0.7.10...tokio-util-0.7.11">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tokio-util&package-manager=cargo&previous-version=0.7.10&new-version=0.7.11)](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>
2024-05-13 14:53:29 +00:00
Reactor Scram
dadaeb072a fix(windows-client): clear Firezone-specific DNS rules at startup (#4918)
Closes #4899

This has a known gap where theoretically the GUI could sign in while the
service is hung in startup, and then the service would wipe out the
GUI's DNS rules.

The workaround for that would be to restart the GUI, but in practice I
think the gap will not be hit, and it will go away once #3712 is done
anyway.

I tested it manually once using the reproduction steps from #4899 and it
worked.
2024-05-13 14:51:14 +00:00
Jamil
5ef9b0627c build(deps): bump chrono only (#4959)
Supersedes #4893
2024-05-13 14:40:21 +00:00
Reactor Scram
5814efc036 chore(windows-client): proof of concept for installing a system service with WiX (#4903)
```[tasklist]
### Before merging
- [x] Make sure the service auto-starts
- [x] Make the process idle and report its status to Windows properly using https://github.com/mullvad/windows-service-rs
- [x] DRY log dir code
- [x] Figure out where service logs will go and how the GUI will zip them
- [x] Make sure the service gets a shut down signal from Windows (this is hard to catch in the Tauri GUI)
- [x] Make sure the service restarts when Firezone is updated
- [x] Make sure the service is stopped and un-installed when Firezone is un-installed
- [x] Add test to install the MSI and check that the service runs
- [x] (will move to another PR) ~~Clean up function names~~
- [x] Make sure the Linux GUI was not broken by refactoring
```
2024-05-13 14:08:21 +00:00
Reactor Scram
0ad72f00d1 refactor(headless-client): remove "linux-client" alias (#4933)
Is this worth it?

```[tasklist]
### Before merging
- [x] Double-check docs and ask Jamil to review
- [x] Would need Brian to review the terraform thing
- [x] Make sure Docker compat isn't broken for existing users (shouldn't be, the image is still just `client`)
- [x] Decide whether compatibility tests need to pass (if something breaks after merge we can revert this)
```
2024-05-10 15:43:02 +00:00
Jamil
1be77d4e2d chore: Bump versions to link 1.0.3 packages (#4924)
Link to latest binaries

Generated with `make -f scripts/Makefile`.

Just need a rubber-stamp, changes should be GTG
2024-05-08 21:09:50 +00:00
Reactor Scram
da85408e27 refactor(gui-client): move known_dirs module into headless-client (#4908)
This should make it easier for the IPC services on both Linux and
Windows to write logs to well-known dirs that the GUI can read for
exporting zips.
2024-05-08 20:26:02 +00:00
dependabot[bot]
7f577a4635 build(deps): Bump libc from 0.2.153 to 0.2.154 in /rust (#4894)
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.153 to 0.2.154.
<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.154</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix CI on v0.2 by <a
href="https://github.com/JohnTitor"><code>@​JohnTitor</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3589">rust-lang/libc#3589</a></li>
<li>[Backport <a
href="https://redirect.github.com/rust-lang/libc/issues/3547">#3547</a>]
Add ioctl FS_IOC_{G,S}{ETVERSION,ETFLAGS} for CSKY by <a
href="https://github.com/Dirreke"><code>@​Dirreke</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3572">rust-lang/libc#3572</a></li>
<li>Add Linux riscv64 HWCAP defines (libc-0.2) by <a
href="https://github.com/Xeonacid"><code>@​Xeonacid</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3580">rust-lang/libc#3580</a></li>
<li>Add missing MIPS R6 FS_IOC_* definitions by <a
href="https://github.com/chenx97"><code>@​chenx97</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3591">rust-lang/libc#3591</a></li>
<li>Support posix_spawn on Android by <a
href="https://github.com/pcc"><code>@​pcc</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3602">rust-lang/libc#3602</a></li>
<li>[0.2] Fix libc-tests for loongarch64 by <a
href="https://github.com/heiher"><code>@​heiher</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3607">rust-lang/libc#3607</a></li>
<li>visionOS Support by <a
href="https://github.com/agg23"><code>@​agg23</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3568">rust-lang/libc#3568</a></li>
<li>[0.2] linux/musl: Add support for LoongArch64 by <a
href="https://github.com/heiher"><code>@​heiher</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3606">rust-lang/libc#3606</a></li>
<li>v0.2: Fix c_char on AIX by <a
href="https://github.com/taiki-e"><code>@​taiki-e</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3662">rust-lang/libc#3662</a></li>
<li>solarish adding SO_EXCLBIND constant. by <a
href="https://github.com/devnexen"><code>@​devnexen</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3651">rust-lang/libc#3651</a></li>
<li>[0.2] Add SIG constants to espidf by <a
href="https://github.com/Tevz-Beskovnik"><code>@​Tevz-Beskovnik</code></a>
in <a
href="https://redirect.github.com/rust-lang/libc/pull/3658">rust-lang/libc#3658</a></li>
<li>add all android sysconf constants by <a
href="https://github.com/fkm3"><code>@​fkm3</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3656">rust-lang/libc#3656</a></li>
<li>feat: more _PC_XXX constants for apple targets by <a
href="https://github.com/SteveLauC"><code>@​SteveLauC</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3649">rust-lang/libc#3649</a></li>
<li>feat: O_EXEC/O_SEARCH for apple platforms by <a
href="https://github.com/SteveLauC"><code>@​SteveLauC</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3668">rust-lang/libc#3668</a></li>
<li>[0.2] Add constant AT_MINSIGSTKSZ by <a
href="https://github.com/ur4t"><code>@​ur4t</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3637">rust-lang/libc#3637</a></li>
<li>Haiku: synchronize with post R1-beta 4 changes in libc by <a
href="https://github.com/nielx"><code>@​nielx</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3638">rust-lang/libc#3638</a></li>
<li>adding getentropy/getrandom to dragonflybsd. by <a
href="https://github.com/devnexen"><code>@​devnexen</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3618">rust-lang/libc#3618</a></li>
<li>Move strftime, strftime_l, strptime to linux_like by <a
href="https://github.com/pcc"><code>@​pcc</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3600">rust-lang/libc#3600</a></li>
<li>update crate version to 0.2.154 by <a
href="https://github.com/Dirreke"><code>@​Dirreke</code></a> in <a
href="https://redirect.github.com/rust-lang/libc/pull/3573">rust-lang/libc#3573</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/pcc"><code>@​pcc</code></a> made their
first contribution in <a
href="https://redirect.github.com/rust-lang/libc/pull/3602">rust-lang/libc#3602</a></li>
<li><a href="https://github.com/agg23"><code>@​agg23</code></a> made
their first contribution in <a
href="https://redirect.github.com/rust-lang/libc/pull/3568">rust-lang/libc#3568</a></li>
<li><a
href="https://github.com/Tevz-Beskovnik"><code>@​Tevz-Beskovnik</code></a>
made their first contribution in <a
href="https://redirect.github.com/rust-lang/libc/pull/3658">rust-lang/libc#3658</a></li>
<li><a href="https://github.com/ur4t"><code>@​ur4t</code></a> made their
first contribution in <a
href="https://redirect.github.com/rust-lang/libc/pull/3637">rust-lang/libc#3637</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/rust-lang/libc/compare/0.2.153...0.2.154">https://github.com/rust-lang/libc/compare/0.2.153...0.2.154</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b78d6a3d27"><code>b78d6a3</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/libc/issues/3573">#3573</a>
from Dirreke/update-libc0.2</li>
<li><a
href="3111f6fe3f"><code>3111f6f</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/libc/issues/3600">#3600</a>
from pcc/strtime</li>
<li><a
href="4d836cceb6"><code>4d836cc</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/libc/issues/3618">#3618</a>
from devnexen/dfbsd_gtrandom</li>
<li><a
href="23a1b4c889"><code>23a1b4c</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/libc/issues/3638">#3638</a>
from nielx/haiku-hrev57593-0.2</li>
<li><a
href="f4ab3e77d3"><code>f4ab3e7</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/libc/issues/3637">#3637</a>
from ur4t/libc-0.2</li>
<li><a
href="4d6fe50954"><code>4d6fe50</code></a>
Move strftime, strftime_l, strptime to linux_like</li>
<li><a
href="e79e95f790"><code>e79e95f</code></a>
adding getentropy/getrandom to dragonflybsd.</li>
<li><a
href="82206836f7"><code>8220683</code></a>
Double quote variables in shell scripts</li>
<li><a
href="c0a693644c"><code>c0a6936</code></a>
Add constant AT_MINSIGSTKSZ introduced by glibc 2.35</li>
<li><a
href="1c7f8fcd8a"><code>1c7f8fc</code></a>
Haiku: synchronize with post R1-beta 4 changes in libc</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-lang/libc/compare/0.2.153...0.2.154">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=libc&package-manager=cargo&previous-version=0.2.153&new-version=0.2.154)](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>
2024-05-08 16:14:24 +00:00
Gabi
d22719da0c fix(connlib): add_resource multiple times with same resource id (#4914)
Similar to #4911 if multiple times add_resource was called with the same
resource id the previous one will be overriden.

This happens when multiple subdomain resources exists this could
override the ip of a previously resolved subdomain and disallow access.

The solution is to simply keep track of every resolved subdomain.
Furthermore with the new method each subdomain could have different
expiration(nothing actually prohibit this from happening in the control
protocol and until this commit we simply discarded the latest
expiration)
2024-05-08 05:50:29 +00:00
Gabi
645bb1743e fix(connlib): filters for resoruces with multiple ips (#4911)
Fixes a bug, wherein a resource with multiple ip, would get a single
allowed ip since each time `add_resource` was called it was replacing
the previous one.

For the fix we add all the resource ips with a single call, and then use
those multiple ips to calculate the filters.

The edge-case here is if there are 2 DNS resources with some overlapping
ips but some not overlapping: In that case, overlapping ips would get
both filters non-overlapping would only get those corresponding to its
ips.

Note that only dns resources can get multiple ips for now.
2024-05-08 02:27:59 +00:00
Gabi
c46967e1d6 fix(connlib): resource filter deserialization (#4910)
There was an error on how resource filters were deserialized in the
gateway:

* we always assumed that there would be the ports included but the
portal sends no port down when the "all" range is allowed
* also we didn't support the resource_updated message, this fixes it,
and resources allow-list can be changes in-flight
2024-05-08 00:16:06 +00:00
Gabi
0c7c96dd07 chore(connlib): pass to client new fields (#4900)
Fixes #4885
2024-05-07 21:14:29 +00:00
Gabi
68ece0a940 feat(connlib): traffic filtering (#4779)
This implements traffic filtering on the gateway. Filters are set on the
portal, per-resource, in an allow-list manner.

If no filters exist for a given resource all packets are allowed,
otherwise only packets that matches port/protocol for the filters are
allowed, otherwise they are dropped.

Filters can be either TCP, UDP or ICMP. For the first 2 multiple ports
can be given. Furthermore, multiple filters can exists for the same
resource.

To be able to add and remove filters with the same IP/CIDR we keep
around the whole list of filters for any given peer using an ID map and
recalculate the IP each time something is added is removed.

This allows us to remove filters and simply recalculate the allowlist
for each IP.

Furthermore, for any IP, all rules apply, meaning if there are multiple
IPs that apply for a resource all port/protocol combinations for that IP
will apply.

This works well right now for DNS resources, since access is requested
by DNS name, then the resource for that DNS name will arrive at the
gateway, and the port filtering will apply given that resource(and any
other resource with the same IP).

However, since the client has no idea of the filters, it can't request
the resource access based on the port/protocol combination and we are
still using the most specific("longest match") IP. This will mean that
for overlapping CIDR resources, only the rules for the most specific
will be used, even if the gateway supports applying them all, since it
will not have the other resources. This will be solved in #4789.

It can also lead to some weirdness, let's say that you have 10.0.0.0/24
-> TCP/80 and 10.0.0.0/16 -> TCP/443 for your user.

The user tries to access 10.0.0.1, and will then only be allowed port
80. At some point the user might access 10.1.0.1 and it will be allowed
port 443. But from that point on, the user will be allowed to access 80
and 443 in 10.0.0.1 because the rules correctly work on the gateway, the
problem is the client side. Again, #4789 will fix this.

Left for next PRs (in tentative order!):

- #4792 
- #4789 

Depends on: #4773.
Resolves #2030.
Resolves #4791.

---------

Co-authored-by: Jamil Bou Kheir <jamilbk@users.noreply.github.com>
2024-05-07 19:47:49 +00:00
Gabi
94000bf5df chore(docker): local dev docker-compose (#4748)
simple name change fix
2024-05-06 23:43:00 +00:00
dependabot[bot]
1c7409be52 build(deps): Bump reqwest from 0.12.2 to 0.12.4 in /rust (#4895)
Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.12.2 to
0.12.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/seanmonstar/reqwest/releases">reqwest's
releases</a>.</em></p>
<blockquote>
<h2>v0.12.4</h2>
<h2>What's Changed</h2>
<ul>
<li>Add <code>zstd</code> support, enabled with <code>zstd</code> Cargo
feature (thanks <a
href="https://github.com/paolobarbolini"><code>@​paolobarbolini</code></a>!)</li>
<li>Add <code>ClientBuilder::read_timeout(Duration)</code>, which
applies the duration for each read operation. The timeout resets after a
successful read.</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/SamuelMarks"><code>@​SamuelMarks</code></a>
made their first contribution in <a
href="https://redirect.github.com/seanmonstar/reqwest/pull/2245">seanmonstar/reqwest#2245</a></li>
</ul>
<h2>v0.12.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Add <code>FromStr</code> for <code>dns::Name</code>.</li>
<li>Add <code>ClientBuilder::built_in_webpki_certs(bool)</code> to
enable them separately.</li>
<li>Add <code>ClientBuilder::built_in_native_certs(bool)</code> to
enable them separately.</li>
<li>Fix sending <code>content-length: 0</code> for GET requests.</li>
<li>Fix response body <code>content_length()</code> to return value when
timeout is configured.</li>
<li>Fix <code>ClientBuilder::resolve()</code> to use lowercase domain
names.</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/zuisong"><code>@​zuisong</code></a> made
their first contribution in <a
href="https://redirect.github.com/seanmonstar/reqwest/pull/2207">seanmonstar/reqwest#2207</a></li>
<li><a href="https://github.com/djc"><code>@​djc</code></a> made their
first contribution in <a
href="https://redirect.github.com/seanmonstar/reqwest/pull/2222">seanmonstar/reqwest#2222</a></li>
<li><a href="https://github.com/krant"><code>@​krant</code></a> made
their first contribution in <a
href="https://redirect.github.com/seanmonstar/reqwest/pull/2226">seanmonstar/reqwest#2226</a></li>
<li><a
href="https://github.com/Kriskras99"><code>@​Kriskras99</code></a> made
their first contribution in <a
href="https://redirect.github.com/seanmonstar/reqwest/pull/2236">seanmonstar/reqwest#2236</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/seanmonstar/reqwest/compare/v0.12.2...v0.12.3">https://github.com/seanmonstar/reqwest/compare/v0.12.2...v0.12.3</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md">reqwest's
changelog</a>.</em></p>
<blockquote>
<h2>v0.12.4</h2>
<ul>
<li>Add <code>zstd</code> support, enabled with <code>zstd</code> Cargo
feature.</li>
<li>Add <code>ClientBuilder::read_timeout(Duration)</code>, which
applies the duration for each read operation. The timeout resets after a
successful read.</li>
</ul>
<h2>v0.12.3</h2>
<ul>
<li>Add <code>FromStr</code> for <code>dns::Name</code>.</li>
<li>Add <code>ClientBuilder::built_in_webpki_certs(bool)</code> to
enable them separately.</li>
<li>Add <code>ClientBuilder::built_in_native_certs(bool)</code> to
enable them separately.</li>
<li>Fix sending <code>content-length: 0</code> for GET requests.</li>
<li>Fix response body <code>content_length()</code> to return value when
timeout is configured.</li>
<li>Fix <code>ClientBuilder::resolve()</code> to use lowercase domain
names.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="de5dbb1ab8"><code>de5dbb1</code></a>
v0.12.4</li>
<li><a
href="0f126f57ab"><code>0f126f5</code></a>
tests: fix blocking test about empty bodies and content-length</li>
<li><a
href="107388134b"><code>1073881</code></a>
feat: add zstd support (<a
href="https://redirect.github.com/seanmonstar/reqwest/issues/1866">#1866</a>)</li>
<li><a
href="1af8945143"><code>1af8945</code></a>
feat: add ClientBuilder::read_timeout(dur) (<a
href="https://redirect.github.com/seanmonstar/reqwest/issues/2241">#2241</a>)</li>
<li><a
href="e99da854a1"><code>e99da85</code></a>
refactor: fix warnings related to mutability of <code>self</code> (<a
href="https://redirect.github.com/seanmonstar/reqwest/issues/2245">#2245</a>)</li>
<li><a
href="0720159f63"><code>0720159</code></a>
v0.12.3</li>
<li><a
href="92096952b7"><code>9209695</code></a>
Remove duplicate example for ClientBuilder::default_headers (<a
href="https://redirect.github.com/seanmonstar/reqwest/issues/2236">#2236</a>)</li>
<li><a
href="e3a15650d6"><code>e3a1565</code></a>
fix: use lower case domain string when using <code>resolve</code> and
<code>resolve_to_addrs</code>...</li>
<li><a
href="b4c491a6ff"><code>b4c491a</code></a>
feat: allow fine-grained root certs for rustls (<a
href="https://redirect.github.com/seanmonstar/reqwest/issues/2232">#2232</a>)</li>
<li><a
href="cf4295d59d"><code>cf4295d</code></a>
chore: update winreg to 0.52.0 (<a
href="https://redirect.github.com/seanmonstar/reqwest/issues/2226">#2226</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/seanmonstar/reqwest/compare/v0.12.2...v0.12.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=reqwest&package-manager=cargo&previous-version=0.12.2&new-version=0.12.4)](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>
2024-05-06 20:49:07 +00:00
Reactor Scram
99b684b620 chore(gui-client/linux): fix single-instance (#4890)
Closes #4888

It turns out clicking on a notification in Ubuntu can cause it to call
the application, so I had to add back single-instance protection.

Windows' named pipes do this easily. For Unix domain sockets, we allow
the 2nd instance to connect to us, and then when the connection
succeeds, the 2nd instance bails out and the 1st instance bails out of
the deep link handler because it sees a 0-byte-long deep link.

So clicking on the notification does result in a 2nd instance warning
dialog, but it's better than before. I guess it makes sense why Ubuntu
does that, in case any app wants to raise their window when clicked, but
I wish they passed a well-known subcommand or something. Or just used a
normal click action.

<img width="609" alt="image"
src="https://github.com/firezone/firezone/assets/13400041/37467f57-22b0-4a38-9e74-e4863fd331b1">

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-05-06 16:31:33 +00:00
Reactor Scram
cdebfa6901 chore(gui-client/linux): fix group name, firezone should be firezone-client (#4889)
Also improved the manual testing checklist a little
2024-05-06 14:09:30 +00:00
dependabot[bot]
785b829c7a build(deps): Bump socket2 from 0.5.6 to 0.5.7 in /rust (#4863)
Bumps [socket2](https://github.com/rust-lang/socket2) from 0.5.6 to
0.5.7.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/socket2/blob/master/CHANGELOG.md">socket2's
changelog</a>.</em></p>
<blockquote>
<h1>0.5.7</h1>
<ul>
<li>Added <code>Socket::(set_)passcred</code>
(<a
href="https://redirect.github.com/rust-lang/socket2/pull/506">rust-lang/socket2#506</a>).</li>
<li>Added <code>RecvFlags::is_confirm</code> and
<code>RecvFlags::is_dontroute</code>
(<a
href="https://redirect.github.com/rust-lang/socket2/pull/499">rust-lang/socket2#499</a>).</li>
<li>Added <code>MsgHdrMut::control_len</code>
(<a
href="https://redirect.github.com/rust-lang/socket2/pull/505">rust-lang/socket2#505</a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c8146aa5bb"><code>c8146aa</code></a>
Release v0.5.7</li>
<li><a
href="8685db561c"><code>8685db5</code></a>
Use consistent language in change log</li>
<li><a
href="6923954ce0"><code>6923954</code></a>
Add test for Socket::passcred/set_passcred and fix formatting.</li>
<li><a
href="630c8a7370"><code>630c8a7</code></a>
Add Socket::passcred/set_passcred for working with SO_PASSCRED.</li>
<li><a
href="21ba6609ef"><code>21ba660</code></a>
Add MsgHdrMut::control_len to get how much of control buffer was
filled.</li>
<li><a
href="c93cdcc25f"><code>c93cdcc</code></a>
Add MSG_CONFIRM and MSG_DONTROUTE to RecvFlags</li>
<li>See full diff in <a
href="https://github.com/rust-lang/socket2/compare/v0.5.6...v0.5.7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=socket2&package-manager=cargo&previous-version=0.5.6&new-version=0.5.7)](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>
2024-05-05 14:08:29 +00:00
dependabot[bot]
740aebc831 build(deps): Bump anyhow from 1.0.81 to 1.0.82 in /rust (#4810)
Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.81 to 1.0.82.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/anyhow/releases">anyhow's
releases</a>.</em></p>
<blockquote>
<h2>1.0.82</h2>
<ul>
<li>Documentation improvements</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="074bdea1c7"><code>074bdea</code></a>
Release 1.0.82</li>
<li><a
href="47a4fbfa36"><code>47a4fbf</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/anyhow/issues/360">#360</a>
from dtolnay/docensure</li>
<li><a
href="c5af1db020"><code>c5af1db</code></a>
Make ensure's doc comment apply to the cfg(not(doc)) macro too</li>
<li><a
href="bebc7a2fe4"><code>bebc7a2</code></a>
Revert &quot;Temporarily disable miri on doctests&quot;</li>
<li><a
href="f2c4db9b47"><code>f2c4db9</code></a>
Update ui test suite to nightly-2024-03-31</li>
<li><a
href="028cbeedf5"><code>028cbee</code></a>
Explicitly install a Rust toolchain for cargo-outdated job</li>
<li><a
href="7a4cac5192"><code>7a4cac5</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/anyhow/issues/358">#358</a>
from dtolnay/workspacewrapper</li>
<li><a
href="939db012c2"><code>939db01</code></a>
Apply RUSTC_WORKSPACE_WRAPPER</li>
<li><a
href="9f84a37551"><code>9f84a37</code></a>
Temporarily disable miri on doctests</li>
<li><a
href="45e5a589e9"><code>45e5a58</code></a>
Ignore dead code lint in test</li>
<li>Additional commits viewable in <a
href="https://github.com/dtolnay/anyhow/compare/1.0.81...1.0.82">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=anyhow&package-manager=cargo&previous-version=1.0.81&new-version=1.0.82)](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: Gabi <gabrielalejandro7@gmail.com>
2024-05-03 23:35:02 +00:00
Gabi
b45a302749 chore(connlib): remove unused parking_lot (#4886)
Supersedes #4812
2024-05-03 20:58:56 +00:00
Reactor Scram
2f235ebd42 chore(gui-client/linux): export all logs, not just app logs (#4830)
17ac1ebe79 looks good on both Linux and Windows

```[tasklist]
### Before merging
- [x] Allow GUI to delete IPC service logs
- [x] Test Linux
- [x] Test Windows
```
2024-05-03 19:13:45 +00:00
Reactor Scram
e8b1736cb0 chore(gui-client/linux): show an error if the user doesn't belong to the firezone group (#4822)
Ran into this during testing. For some reason Ubuntu 20.04, maybe
others, requires a reboot to add the desktop user to a group. I thought
logging out and back in should be enough but it's not.

<img width="527" alt="image"
src="https://github.com/firezone/firezone/assets/13400041/4f7c2551-c7aa-4ecc-be55-66c6e6ac32a0">

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-05-03 14:04:21 +00:00
Reactor Scram
93f7c86f55 chore(gui-client/linux): add smoke test checklist (#4882)
This is what I've been doing on the testing VMs to exercise the
first-run behavior.

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-05-02 19:33:14 +00:00
Reactor Scram
782e140db9 chore(gui-client/linux): fix deep links on Ubuntu 22.04 (#4881)
Closes #4880
2024-05-02 18:31:15 +00:00
Reactor Scram
35a802d6d9 chore(gui-client/linux): add install script and change group to firezone-client (#4879)
Closes #4873
2024-05-02 17:51:28 +00:00
Reactor Scram
3eec350325 chore(gui-client/linux): poll for DNS changes every 5 seconds (#4875)
Closes #4819

There is a way to get them async with D-Bus. We can invest time in that
if we want. Polling works for now, it's just gonna be a slight battery
waste on laptops.
2024-05-01 21:20:13 +00:00