Commit Graph

85 Commits

Author SHA1 Message Date
Jamil
01906ba507 android: Update auth URLs to follow convention; Fix JNI callback method signatures (#1870) 2023-08-09 06:47:25 -05:00
Andrew Dryga
9e17352fd6 Deploy relays (#1706)
Will finish once #1705 is merged and stable.

cc @thomaseizinger
2023-08-08 17:15:33 -05:00
dependabot[bot]
bb9110b1d0 build(deps): Bump async-trait from 0.1.71 to 0.1.72 in /rust (#1861)
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.71
to 0.1.72.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/async-trait/releases">async-trait's
releases</a>.</em></p>
<blockquote>
<h2>0.1.72</h2>
<ul>
<li>Documentation improvements</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a01e5d4fb6"><code>a01e5d4</code></a>
Release 0.1.72</li>
<li><a
href="a38d35acfb"><code>a38d35a</code></a>
Opt in to generate-link-to-definition when building on docs.rs</li>
<li><a
href="036a373ab4"><code>036a373</code></a>
Update ui tests with 2021-edition diagnostics</li>
<li><a
href="059aafd8cc"><code>059aafd</code></a>
Update to 2021 edition</li>
<li>See full diff in <a
href="https://github.com/dtolnay/async-trait/compare/0.1.71...0.1.72">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=async-trait&package-manager=cargo&previous-version=0.1.71&new-version=0.1.72)](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 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>
2023-08-08 17:27:47 +00:00
dependabot[bot]
2d21de7035 build(deps): Bump axum from 0.6.18 to 0.6.20 in /rust (#1863)
Bumps [axum](https://github.com/tokio-rs/axum) from 0.6.18 to 0.6.20.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/axum/releases">axum's
releases</a>.</em></p>
<blockquote>
<h2>axum - v0.6.20</h2>
<ul>
<li><strong>added:</strong>
<code>WebSocketUpgrade::write_buffer_size</code> and
<code>WebSocketUpgrade::max_write_buffer_size</code></li>
<li><strong>changed:</strong> Deprecate
<code>WebSocketUpgrade::max_send_queue</code></li>
<li><strong>change:</strong> Update tokio-tungstenite to 0.20</li>
<li><strong>added:</strong> Implement <code>Handler</code> for <code>T:
IntoResponse</code> (<a
href="https://redirect.github.com/tokio-rs/axum/issues/2140">#2140</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/tokio-rs/axum/issues/2140">#2140</a>:
<a
href="https://redirect.github.com/tokio-rs/axum/pull/2140">tokio-rs/axum#2140</a></p>
<h2>axum - v0.6.19</h2>
<ul>
<li><strong>added:</strong> Add
<code>axum::extract::Query::try_from_uri</code> (<a
href="https://redirect.github.com/tokio-rs/axum/issues/2058">#2058</a>)</li>
<li><strong>added:</strong> Implement <code>IntoResponse</code> for
<code>Box&lt;str&gt;</code> and <code>Box&lt;[u8]&gt;</code> (<a
href="https://redirect.github.com/tokio-rs/axum/issues/2035">#2035</a>)</li>
<li><strong>fixed:</strong> Fix bugs around merging routers with nested
fallbacks (<a
href="https://redirect.github.com/tokio-rs/axum/issues/2096">#2096</a>)</li>
<li><strong>fixed:</strong> Fix <code>.source()</code> of composite
rejections (<a
href="https://redirect.github.com/tokio-rs/axum/issues/2030">#2030</a>)</li>
<li><strong>fixed:</strong> Allow unreachable code in
<code>#[debug_handler]</code> (<a
href="https://redirect.github.com/tokio-rs/axum/issues/2014">#2014</a>)</li>
<li><strong>change:</strong> Update tokio-tungstenite to 0.19 (<a
href="https://redirect.github.com/tokio-rs/axum/issues/2021">#2021</a>)</li>
<li><strong>change:</strong> axum's MSRV is now 1.63 (<a
href="https://redirect.github.com/tokio-rs/axum/issues/2021">#2021</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/tokio-rs/axum/issues/2014">#2014</a>:
<a
href="https://redirect.github.com/tokio-rs/axum/pull/2014">tokio-rs/axum#2014</a>
<a
href="https://redirect.github.com/tokio-rs/axum/issues/2021">#2021</a>:
<a
href="https://redirect.github.com/tokio-rs/axum/pull/2021">tokio-rs/axum#2021</a>
<a
href="https://redirect.github.com/tokio-rs/axum/issues/2030">#2030</a>:
<a
href="https://redirect.github.com/tokio-rs/axum/pull/2030">tokio-rs/axum#2030</a>
<a
href="https://redirect.github.com/tokio-rs/axum/issues/2035">#2035</a>:
<a
href="https://redirect.github.com/tokio-rs/axum/pull/2035">tokio-rs/axum#2035</a>
<a
href="https://redirect.github.com/tokio-rs/axum/issues/2058">#2058</a>:
<a
href="https://redirect.github.com/tokio-rs/axum/pull/2058">tokio-rs/axum#2058</a>
<a
href="https://redirect.github.com/tokio-rs/axum/issues/2096">#2096</a>:
<a
href="https://redirect.github.com/tokio-rs/axum/pull/2096">tokio-rs/axum#2096</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3b92cd7593"><code>3b92cd7</code></a>
Release axum and axum-extra (<a
href="https://redirect.github.com/tokio-rs/axum/issues/2145">#2145</a>)</li>
<li><a
href="68333b2fcf"><code>68333b2</code></a>
Backport changes from main to v0.6.x (<a
href="https://redirect.github.com/tokio-rs/axum/issues/2141">#2141</a>)</li>
<li><a
href="a25ed293d7"><code>a25ed29</code></a>
axum-extra 0.7.6 (<a
href="https://redirect.github.com/tokio-rs/axum/issues/2139">#2139</a>)</li>
<li><a
href="990cbb8126"><code>990cbb8</code></a>
Update tokio-tungstenite 0.20 (<a
href="https://redirect.github.com/tokio-rs/axum/issues/2123">#2123</a>)</li>
<li><a
href="a2916318dd"><code>a291631</code></a>
axum-extra: Remove unused tower-http dependency (<a
href="https://redirect.github.com/tokio-rs/axum/issues/2135">#2135</a>)</li>
<li><a
href="67f6494383"><code>67f6494</code></a>
Release axum 0.6.19 (<a
href="https://redirect.github.com/tokio-rs/axum/issues/2102">#2102</a>)</li>
<li><a
href="2d4bd9e853"><code>2d4bd9e</code></a>
Update to latest sqlx in example (<a
href="https://redirect.github.com/tokio-rs/axum/issues/2099">#2099</a>)</li>
<li><a
href="e881bf0aec"><code>e881bf0</code></a>
Update UI tests</li>
<li><a
href="5d9f41edf3"><code>5d9f41e</code></a>
Fix deny.toml</li>
<li><a
href="19ddc12e4e"><code>19ddc12</code></a>
Remove sessions example</li>
<li>Additional commits viewable in <a
href="https://github.com/tokio-rs/axum/compare/axum-v0.6.18...axum-v0.6.20">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=axum&package-manager=cargo&previous-version=0.6.18&new-version=0.6.20)](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 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>
2023-08-08 17:27:06 +00:00
dependabot[bot]
b409f191f9 build(deps): Bump serde from 1.0.179 to 1.0.183 in /rust (#1864)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.179 to
1.0.183.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/serde-rs/serde/releases">serde's
releases</a>.</em></p>
<blockquote>
<h2>v1.0.183</h2>
<ul>
<li>Support deserializing <code>Box&lt;OsStr&gt;</code> with an
equivalent representation as <code>OsString</code> (<a
href="https://redirect.github.com/serde-rs/serde/issues/2556">#2556</a>,
thanks <a
href="https://github.com/DBLouis"><code>@​DBLouis</code></a>)</li>
</ul>
<h2>v1.0.182</h2>
<ul>
<li>Render field aliases in sorted order in error messages (<a
href="https://redirect.github.com/serde-rs/serde/issues/2458">#2458</a>,
thanks <a
href="https://github.com/Mingun"><code>@​Mingun</code></a>)</li>
<li>Support <code>serde(default)</code> on tuple structs (<a
href="https://redirect.github.com/serde-rs/serde/issues/2553">#2553</a>,
thanks <a
href="https://github.com/Mingun"><code>@​Mingun</code></a>)</li>
</ul>
<h2>v1.0.181</h2>
<ul>
<li>Make <code>serde(alias)</code> work in combination with
<code>flatten</code> when using in-place deserialization (<a
href="https://redirect.github.com/serde-rs/serde/issues/2443">#2443</a>,
thanks <a
href="https://github.com/Mingun"><code>@​Mingun</code></a>)</li>
<li>Improve the representation of adjacently tagged enums in formats
where enum tags are serialized by index, as opposed to by string name
(<a
href="https://redirect.github.com/serde-rs/serde/issues/2505">#2505</a>,
<a
href="https://redirect.github.com/serde-rs/serde/issues/2496">#2496</a>,
thanks <a
href="https://github.com/Baptistemontan"><code>@​Baptistemontan</code></a>)</li>
</ul>
<h2>v1.0.180</h2>
<ul>
<li>Update to 2018 edition</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="05a5b7e3c6"><code>05a5b7e</code></a>
Release 1.0.183</li>
<li><a
href="3bff326fb3"><code>3bff326</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/serde/issues/2555">#2555</a>
from Mingun/field</li>
<li><a
href="aaadd93878"><code>aaadd93</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/serde/issues/2556">#2556</a>
from DBLouis/master</li>
<li><a
href="9c864f0b02"><code>9c864f0</code></a>
Add forward impl for OsStr</li>
<li><a
href="070cce0d9c"><code>070cce0</code></a>
Get rid of temporary variable</li>
<li><a
href="b58e8bac12"><code>b58e8ba</code></a>
Replace <code>if let Some(...) = ...</code> to Option::map</li>
<li><a
href="ada50b077e"><code>ada50b0</code></a>
ignore_variant variable is always None, let's take this into
account</li>
<li><a
href="5e313a7330"><code>5e313a7</code></a>
Move generiс code out-of-function, create more specialized and simple
code</li>
<li><a
href="2a36d11238"><code>2a36d11</code></a>
Introduce a dedicated function for generating Field enum</li>
<li><a
href="b6685cf9dd"><code>b6685cf</code></a>
Release 1.0.182</li>
<li>Additional commits viewable in <a
href="https://github.com/serde-rs/serde/compare/v1.0.179...v1.0.183">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.179&new-version=1.0.183)](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 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>
2023-08-08 17:26:51 +00:00
Thomas Eizinger
b1c324a01e relay: remove --allow-insecure-ws flag (#1871)
Previously, I thought it might be helpful to refuse a insecure
connections to the portal unless the user explicitly opts-in to this. In
our CI and testing environment, this however proved to cause more
headaches than it helps.

This PR removes this flag and assumes that users are smart enough that
they should protect self-hosted portals with transport-level encryption.
2023-08-08 16:45:02 +00:00
Francesca Lovebloom
bc3a5d9e54 connlib: JNI bridge (#1848)
The biggest internal change is that all the methods on `Callbacks` (on
the Rust side!) return a `Result` now, so errors from the bridge or even
the client callbacks will be handled.

@roop there's nothing for you to review here, but note:

- the `bool` return values you've asked about in the past are gone now
- the route string for `onAddRoute`/`onRemoveRoute` no longer has the
extra quotes (it's no longer JSON)

---------

Signed-off-by: Francesca Lovebloom <franlovebloom@gmail.com>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2023-08-07 19:03:28 -05:00
Roopesh Chander
e591b92ec9 apple: Set network settings using data from connlib (#1846)
This PR sets the network settings, split-DNS, and macOS UI resources
using the data from connlib callbacks.

This should enable connlib to be developed / tested in Apple platforms
(Caveat: There's no UI to see resources in iOS yet).

Some assumptions being made are:
- It's ok to call disconnect() before onTunnelReady(), but after
connect()
- CIDR addresses don't include enclosing quotes (they currently include
the quotes, like: `"8.8.4.4/32"`)
- CIDR addresses in routes always end with “/n”
- Connlib calls can be made from a queue (non-main thread)

---------

Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2023-08-07 06:50:05 +00:00
Gabi
44e4295a4e connlib: fix DNS PTR record query (#1854)
Some programs(such as `ping`) after resolving the dns name do a reverse
dns lookup using PTR, if this doesn't respond the program hangs making
performance slower.

This PR fixes it by handling PTR queries.

---------

Signed-off-by: Gabi <gabrielalejandro7@gmail.com>
Co-authored-by: Francesca Lovebloom <franlovebloom@gmail.com>
Co-authored-by: Jamil Bou Kheir <jamilbk@users.noreply.github.com>
2023-08-04 19:08:34 +00:00
Jamil
561e8ee0cf Remove erroneously copied functions from connlib apple (#1845)
Removes functions from the android FFI that aren't needed. Why? These
were mistakenly copied from the apple FFI when I was prototyping this
back in April.
2023-08-04 04:54:42 +00:00
Francesca Lovebloom
30232b5b76 connlib: Log to Console.app on Apple (#1844)
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2023-08-04 04:39:57 +00:00
Gabi
b563c7ad5a connlib: fix ipv6 (#1855)
Fixes some of the ipv6 handling.

Making this PR I also realized we need to update checksums on UDP and
TCP too, since we're mangling packets.
2023-08-04 03:17:35 +00:00
Thomas Eizinger
a552e695f7 fix(relay): wait for channel binding in smoke test script (#1853)
`webrtc-rs` has a race condition where `send_to` does not actually await
the channel binding, thus attempting to send something through the
channel from the other end my fail because we receive the bytes from the
relay before the library registers that there is an active channel.

This should hopefully fix the flakiness of the smoke test script.
2023-08-04 03:17:20 +00:00
Thomas Eizinger
0c6d7f1c84 feat(relay): add debug logs when failing to parse input (#1851) 2023-08-04 03:16:59 +00:00
Thomas Eizinger
632dfdd888 feat(relay): support IPv6 allocations (#1814)
This patch series adds support for IPv6 allocations. If not specified
otherwise in the ALLOCATE request, clients will get an IP4 allocation.
They can also request an IPv6 address or an additional IPv6 address in
addition to their IPv4 address.

Either of those is only possible if the relay actually has a listening
socket for the requested address family. The CLI is designed such that
the user can either specify IP4, IP6 or both of them.

The `Server` component handles all of this logic and responds with
either a successful allocation response or an Address Family Not
Supported error (see
https://www.rfc-editor.org/rfc/rfc8656#name-stun-error-response-codes).

Multiple refactorings were necessary to achieve this design, they are
all extracted into separate PRs:

Depends-On: #1831.
Depends-On: #1832.
Depends-On: #1833.

---------

Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2023-08-02 01:50:43 +00:00
Pratik Velani
57f6fc5287 android: added logs to callback functions (#1826)
- Implements all the callback functions and adds logs to it.

Co-authored-by: Francesca Lovebloom <franlovebloom@gmail.com>
2023-08-02 00:06:46 +00:00
Gabi
dcf9e68eb7 connlib: implements reverse-dns lookup that's used for gateways (#1842)
This PR implements the reverse lookup for DNS from the gateway side (the
other part of #1807)

Also, adds a fix in general for Ipv6 DNS packets (nothing to do with
AAAA, only DNS packets using ipv6), and removes resource candidates from
SDP.

Although there are still a few fixes coming related to this PR, if you
do `docker compose exec client ping google.com` it should work now
(given that the seeds include google) as Client -> Gateway -> google.com

---------

Signed-off-by: Gabi <gabrielalejandro7@gmail.com>
Signed-off-by: conectado <gabrielalejandro7@gmail.com>
Co-authored-by: Francesca Lovebloom <franlovebloom@gmail.com>
2023-08-01 22:03:34 +00:00
Thomas Eizinger
17dfdb63d4 feat(relay): handle failed allocations (#1831)
This patch series refactors how we handle allocations in the relay to
make it easier to forward a failure to the `Server`. Each allocation
runs in a separate task (to allow for parallelization). If the
allocation fails, this channel is automatically closed.

Previously, this would erroneously trigger a `debug_assert!`. Now, we
invoke a callback on `Server` to allow it to clean up its internal
resources for the allocation.

At the same time, we simplify the buffering around data that is destined
for a certain allocation. Instead of having an additional buffer in the
event-loop, we increase the channel size to 10. Any exceeding items will
be dropped to avoid memory growth. This means that the `Server` is never
blocked on a slow allocation.

Given that we are running on top of an unreliable protocol anyway, I'd
say this is fine.
2023-07-31 21:39:31 +00:00
Thomas Eizinger
e11ea68240 refactor(relay): move primary UDP socket to separate task (#1832)
Currently, the primary UDP socket is polled within the `Eventloop`. In
order to not block the `Server` on the readiness of the socket, we
buffer all outgoing packets in a `VecDeque`.

This isn't particularly ergonomic.

In addition, whilst implementing the IPv6 support, I ran into a
limitation with this model. In case we operate in dual-stack mode, I
need to poll two UDP sockets but it is not clear in which order they
should be polled. The solution I am going for now is to have two
separate tasks, one per IP family and have them both write into the same
channel.

In order to keep #1814 smaller, I this PR represents a pure refactoring
towards that solution.
2023-07-31 20:51:31 +00:00
Thomas Eizinger
e24b3ac39b feat(relay): serve metrics conditionally based on passed socket addr (#1833)
While developing IPv6 support, I ran into a limitations with how I
designed the prometheus metrics integration. Currently, we just use the
IPv4 listen socket to server the metrics. That however no longer works
with IPv6 support because the relay may now operate in IPv6 only mode
for example.

To circumvent this, we introduce a dedicated configuration option where
the user needs to pass the socket addr for the metrics endpoint. If
omitted, the metrics won't be served at all.
2023-07-31 20:21:29 +00:00
Thomas Eizinger
73e60795d8 feat(relay): add smoke test script (#1834)
I finally figured out why the smoke test script was being funny. It
turns out that the TURN client I still had lying around in the `gateway`
binary was reading from the UDP socket in the background and thus
sometimes grabbed the relayed data and wanted to interpret it as a STUN
packet.

However, for this test, the `gateway` doesn't actually need a TURN
client at all. It communicates with the relay as if it were the `client`
itself.

By modifying the script to only work on localhost, we can avoid use of a
TURN client altogether in the relay and make this script deterministic
which is a big win for our CI confidence!
2023-07-31 20:13:27 +00:00
dependabot[bot]
5f96858d76 build(deps): bump clap from 4.3.10 to 4.3.19 in /rust (#1838)
Bumps [clap](https://github.com/clap-rs/clap) from 4.3.10 to 4.3.19.
<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.3.19</h2>
<h2>[4.3.19] - 2023-07-21</h2>
<h3>Fixes</h3>
<ul>
<li><em>(parse)</em> Respect <code>value_terminator</code> even in the
presence of later multiple-value positional arguments</li>
</ul>
<h2>v4.3.18</h2>
<h2>[4.3.18] - 2023-07-21</h2>
<h3>Fixes</h3>
<ul>
<li><em>(parse)</em> Suggest <code>--</code> in fewer places where it
won't work</li>
</ul>
<h2>v4.3.17</h2>
<h2>[4.3.17] - 2023-07-19</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Address a regression in wrapping
<code>PossibleValue</code> descriptions in <code>--help</code></li>
</ul>
<h2>v4.3.16</h2>
<h2>[4.3.16] - 2023-07-18</h2>
<h3>Fixes</h3>
<ul>
<li>Don't assert when stateful value parsers fail on defaults (e.g.
checking if a path exists)</li>
</ul>
<h2>v4.3.15</h2>
<h2>[4.3.15] - 2023-07-18</h2>
<h3>Features</h3>
<ul>
<li><em>(unstable-styles)</em> Re-export <code>anstyle</code></li>
</ul>
<h3>Documentation</h3>
<ul>
<li><em>(unstable-styles)</em> Provide more examples</li>
</ul>
<h2>v4.3.14</h2>
<h2>[4.3.14] - 2023-07-17</h2>
<h3>Features</h3>
<ul>
<li><code>ArgAction::HelpShort</code> and
<code>ArgAction::HelpLong</code> for explicitly specifying which style
of help to display</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Skip <code>[OPTIONS]</code> in usage if a help or version
<code>ArgAction</code> is used</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</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.3.19] - 2023-07-21</h2>
<h3>Fixes</h3>
<ul>
<li><em>(parse)</em> Respect <code>value_terminator</code> even in the
presence of later multiple-value positional arguments</li>
</ul>
<h2>[4.3.18] - 2023-07-21</h2>
<h3>Fixes</h3>
<ul>
<li><em>(parse)</em> Suggest <code>--</code> in fewer places where it
won't work</li>
</ul>
<h2>[4.3.17] - 2023-07-19</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Address a regression in wrapping
<code>PossibleValue</code> descriptions in <code>--help</code></li>
</ul>
<h2>[4.3.16] - 2023-07-18</h2>
<h3>Fixes</h3>
<ul>
<li>Don't assert when stateful value parsers fail on defaults (e.g.
checking if a path exists)</li>
</ul>
<h2>[4.3.15] - 2023-07-18</h2>
<h3>Features</h3>
<ul>
<li><em>(unstable-styles)</em> Re-export <code>anstyle</code></li>
</ul>
<h3>Documentation</h3>
<ul>
<li><em>(unstable-styles)</em> Provide more examples</li>
</ul>
<h2>[4.3.14] - 2023-07-17</h2>
<h3>Features</h3>
<ul>
<li><code>ArgAction::HelpShort</code> and
<code>ArgAction::HelpLong</code> for explicitly specifying which style
of help to display</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Skip <code>[OPTIONS]</code> in usage if a help or version
<code>ArgAction</code> is used</li>
</ul>
<h2>[4.3.13] - 2023-07-17</h2>
<h2>[4.3.12] - 2023-07-14</h2>
<h3>Fixes</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ae5549d61f"><code>ae5549d</code></a>
chore: Release</li>
<li><a
href="4b30a2cfe1"><code>4b30a2c</code></a>
docs: Update changelog</li>
<li><a
href="5540d20286"><code>5540d20</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5037">#5037</a>
from epage/term</li>
<li><a
href="8bee728034"><code>8bee728</code></a>
fix(parser): Value terminator has higher precedence than later multiple
values</li>
<li><a
href="bdf205bff2"><code>bdf205b</code></a>
test(parser): Show one value terminator bug</li>
<li><a
href="727ca29674"><code>727ca29</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5034">#5034</a>
from epage/update</li>
<li><a
href="9856d67541"><code>9856d67</code></a>
chore: Release</li>
<li><a
href="a6267b77a7"><code>a6267b7</code></a>
docs: Update changelog</li>
<li><a
href="e82234162c"><code>e822341</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5033">#5033</a>
from epage/escape</li>
<li><a
href="0137a8be65"><code>0137a8b</code></a>
chore(complete): Update completest</li>
<li>Additional commits viewable in <a
href="https://github.com/clap-rs/clap/compare/v4.3.10...v4.3.19">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.3.10&new-version=4.3.19)](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 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>
2023-07-31 20:12:44 +00:00
dependabot[bot]
eec1018f5a build(deps): bump serde from 1.0.171 to 1.0.179 in /rust (#1839)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.171 to
1.0.179.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/serde-rs/serde/releases">serde's
releases</a>.</em></p>
<blockquote>
<h2>v1.0.179</h2>
<ul>
<li>Support serialization of tuple variants inside a flattened field (<a
href="https://redirect.github.com/serde-rs/serde/issues/2448">#2448</a>,
thanks <a
href="https://github.com/Mingun"><code>@​Mingun</code></a>)</li>
</ul>
<h2>v1.0.178</h2>
<ul>
<li>Fix build error when using serde with &quot;std&quot; feature turned
off and &quot;unstable&quot; feature turned on (<a
href="https://redirect.github.com/serde-rs/serde/issues/2541">#2541</a>)</li>
</ul>
<h2>v1.0.177</h2>
<ul>
<li>Add <code>serde(rename_all_fields = &quot;...&quot;)</code>
attribute to apply a <code>rename_all</code> on every struct variant of
an enum (<a
href="https://redirect.github.com/serde-rs/serde/issues/1695">#1695</a>,
thanks <a
href="https://github.com/jplatte"><code>@​jplatte</code></a>)</li>
<li>Improve diagnostics for attribute parse errors (<a
href="https://redirect.github.com/serde-rs/serde/issues/2536">#2536</a>,
thanks <a
href="https://github.com/jplatte"><code>@​jplatte</code></a>)</li>
</ul>
<h2>v1.0.176</h2>
<ul>
<li>Allow tag field of an internally tagged enum to have same name as a
field inside a skipped struct variant (<a
href="https://redirect.github.com/serde-rs/serde/issues/2266">#2266</a>,
thanks <a
href="https://github.com/flisky"><code>@​flisky</code></a>)</li>
</ul>
<h2>v1.0.175</h2>
<ul>
<li>Restore missing LICENSE files in serde_derive crate (<a
href="https://redirect.github.com/serde-rs/serde/issues/2527">#2527</a>,
thanks <a
href="https://github.com/ankane"><code>@​ankane</code></a>)</li>
</ul>
<h2>v1.0.174</h2>
<ul>
<li>Documentation improvements</li>
</ul>
<h2>v1.0.173</h2>
<ul>
<li>Fix missing trait implementations when using serde derive macro on a
macro-generated data structure, such as via the <code>bitflags</code>
crate (<a
href="https://redirect.github.com/serde-rs/serde/issues/2516">#2516</a>)</li>
</ul>
<h2>v1.0.172</h2>
<ul>
<li>Experiment with precompiling the serde_derive macros to reduce build
time (<a
href="https://redirect.github.com/serde-rs/serde/issues/2514">#2514</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c2b16bfbb0"><code>c2b16bf</code></a>
Release 1.0.179</li>
<li><a
href="e7df53701c"><code>e7df537</code></a>
Resolve doc_markdown clippy lint from PR 2448</li>
<li><a
href="02c34e490b"><code>02c34e4</code></a>
Resolve redundant_field_names clippy lint from PR 2448</li>
<li><a
href="427c839b3d"><code>427c839</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/serde/issues/2448">#2448</a>
from Mingun/ser-flatten-enums</li>
<li><a
href="48aa054f53"><code>48aa054</code></a>
Release 1.0.178</li>
<li><a
href="3616860203"><code>3616860</code></a>
Delete broken symlink from precompiled derive sources</li>
<li><a
href="861b0dfea2"><code>861b0df</code></a>
Consistently list StdError under 'Re-exports' heading of rustdoc</li>
<li><a
href="8b3d71ae2d"><code>8b3d71a</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/serde/issues/2541">#2541</a>
from dtolnay/de-core-error</li>
<li><a
href="ff5442cd9e"><code>ff5442c</code></a>
Add no-std unstable build in CI</li>
<li><a
href="92d686f9a5"><code>92d686f</code></a>
Fix serde::de::StdError in no-std unstable build</li>
<li>Additional commits viewable in <a
href="https://github.com/serde-rs/serde/compare/v1.0.171...v1.0.179">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.171&new-version=1.0.179)](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 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>
2023-07-31 20:12:35 +00:00
dependabot[bot]
1f05c4d5c1 build(deps): bump serde_json from 1.0.99 to 1.0.104 in /rust (#1840)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.99 to
1.0.104.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/serde-rs/json/releases">serde_json's
releases</a>.</em></p>
<blockquote>
<h2>v1.0.104</h2>
<ul>
<li>Provide IntoDeserializer impl for &amp;serde_json::Value (<a
href="https://redirect.github.com/serde-rs/json/issues/1045">#1045</a>,
thanks <a
href="https://github.com/ZetaNumbers"><code>@​ZetaNumbers</code></a>)</li>
</ul>
<h2>v1.0.103</h2>
<ul>
<li>Documentation improvements</li>
</ul>
<h2>v1.0.102</h2>
<ul>
<li>Add a way to customize the serialization of byte arrays (<a
href="https://redirect.github.com/serde-rs/json/issues/1039">#1039</a>)</li>
</ul>
<h2>v1.0.101</h2>
<ul>
<li>Allow f32 and f64 as keys in maps (<a
href="https://redirect.github.com/serde-rs/json/issues/1027">#1027</a>,
thanks <a
href="https://github.com/overdrivenpotato"><code>@​overdrivenpotato</code></a>)</li>
</ul>
<h2>v1.0.100</h2>
<ul>
<li>Support <code>-Z minimal-versions</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ab08483292"><code>ab08483</code></a>
Release 1.0.104</li>
<li><a
href="f6cc4f31a3"><code>f6cc4f3</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/json/issues/1045">#1045</a>
from ZetaNumbers/value-ref-into-deserializer</li>
<li><a
href="8e8db8ce0c"><code>8e8db8c</code></a>
Implement IntoDeserializer for &amp;Value</li>
<li><a
href="8f90eacf6c"><code>8f90eac</code></a>
Delete inline attributes throughout test suite</li>
<li><a
href="54bcb4dc94"><code>54bcb4d</code></a>
Release 1.0.103</li>
<li><a
href="9c2879a848"><code>9c2879a</code></a>
Opt in to generate-link-to-definition when building on docs.rs</li>
<li><a
href="d1a07e29f2"><code>d1a07e2</code></a>
Fix rustdoc::bare_urls lint in lexical code</li>
<li><a
href="658689d36b"><code>658689d</code></a>
Release 1.0.102</li>
<li><a
href="42dbd00016"><code>42dbd00</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/json/issues/1039">#1039</a>
from dtolnay/writebytearray</li>
<li><a
href="a1ca32a5c7"><code>a1ca32a</code></a>
Factor out byte array serialization to a new Formatter method</li>
<li>Additional commits viewable in <a
href="https://github.com/serde-rs/json/compare/v1.0.99...v1.0.104">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_json&package-manager=cargo&previous-version=1.0.99&new-version=1.0.104)](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 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>
2023-07-31 17:11:26 +00:00
dependabot[bot]
9866c1beed build(deps): bump test-strategy from 0.3.0 to 0.3.1 in /rust (#1837)
Bumps [test-strategy](https://github.com/frozenlib/test-strategy) from
0.3.0 to 0.3.1.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="19797fdf2b"><code>19797fd</code></a>
Version 0.3.1.</li>
<li><a
href="7a2705c71d"><code>7a2705c</code></a>
Made it possible to use <code>#[proptest(dump)]</code> instead of
<code>#[proptest_dump]</code>.</li>
<li><a
href="c492d62a51"><code>c492d62</code></a>
Add docuemnt for <code>#[proptest(async = ...)]</code>.</li>
<li><a
href="839fe30cc6"><code>839fe30</code></a>
Use <code>#[cfg(test)]</code>.</li>
<li><a
href="2b57ca7262"><code>2b57ca7</code></a>
Merge pull request <a
href="https://redirect.github.com/frozenlib/test-strategy/issues/10">#10</a>
from niklaslong/clippy</li>
<li><a
href="5208cb2bfa"><code>5208cb2</code></a>
Add test for using <code>#[proptest]</code> in areas not enclosed by
<code>#[cfg(test)]</code>.</li>
<li><a
href="e258b67f9f"><code>e258b67</code></a>
Fix clippy unused field warning in proptest <code>Args</code>
structs.</li>
<li><a
href="885013160c"><code>8850131</code></a>
Update expected compile error message.</li>
<li><a
href="5198884aa1"><code>5198884</code></a>
Clippy.</li>
<li><a
href="fd49486cb2"><code>fd49486</code></a>
Support async fn test.</li>
<li>Additional commits viewable in <a
href="https://github.com/frozenlib/test-strategy/compare/v0.3.0...v0.3.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=test-strategy&package-manager=cargo&previous-version=0.3.0&new-version=0.3.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 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>
2023-07-31 17:09:50 +00:00
dependabot[bot]
55da391845 build(deps): bump anyhow from 1.0.71 to 1.0.72 in /rust (#1836)
Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.71 to 1.0.72.
<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.72</h2>
<ul>
<li>Documentation improvements</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e458996b0a"><code>e458996</code></a>
Release 1.0.72</li>
<li><a
href="660fb0f068"><code>660fb0f</code></a>
Opt in to generate-link-to-definition when building on docs.rs</li>
<li><a
href="24d9166581"><code>24d9166</code></a>
Add CI job using minimal-versions</li>
<li><a
href="2c913b3078"><code>2c913b3</code></a>
Remove .clippy.toml in favor of respecting rust-version from
Cargo.toml</li>
<li><a
href="1f17666ef1"><code>1f17666</code></a>
Ignore needless_else clippy lint in test suite</li>
<li><a
href="6046674814"><code>6046674</code></a>
Show error details during miri setup in CI</li>
<li><a
href="dffcb4bf6c"><code>dffcb4b</code></a>
Revert &quot;Temporarily disable miri CI&quot;</li>
<li><a
href="438fec6036"><code>438fec6</code></a>
Temporarily disable miri CI</li>
<li>See full diff in <a
href="https://github.com/dtolnay/anyhow/compare/1.0.71...1.0.72">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.71&new-version=1.0.72)](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 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>
2023-07-31 17:09:27 +00:00
Thomas Eizinger
686ccf3107 feat(relay): add some basic prometheus metrics (#1742)
The metrics are available at `http://{listen_addr}:8080/metrics`.
Currently, we collect the following:

- Number of active allocations: We can have an alert once the number of
allocations passes through a certain threshold.
- Outcome (success / error) and message kind (allocation / channel_bind
/ ...) of all responses: Summing all of these up would give you the
total number of requests handled. We might want to have a grafana alert
for an increased number of error responses.
- Total number of bytes relayed: Dividing this by time gives us an
average "internal" bandwidth.

This is just a start, we can explore what else is useful as we have it
operate.

Depends-On: https://github.com/firezone/firezone/pull/1743
2023-07-30 12:04:10 +00:00
Francesca Lovebloom
9d4df04501 connlib: Simpler FFI (#1823)
As per discussion from the client sync,
- this removes `TunnelAddresses` in favor of simply passing the IPv4 and
IPv6 addresses as two separate strings.
- this changes `onDisconnect`'s semantics to be called _after_
disconnect instead of before.

Additionally, as per earlier discussion, errors are now passed as
strings. These errors already weren't intended to be actionable on the
client side, so the ability to handle them programmatically is
unnecessary. When internationalization is added down the road, we'll
likely replace these with error codes for looking up localized strings;
until then, this design improves diagnostics and reduces complexity.

Closes #1796
Closes #1822
2023-07-29 23:47:39 +00:00
Francesca Lovebloom
9fb842ed24 connlib: Fix resource list JSON (#1818)
Addresses one of the issues raised in firezone/product#634

Previously, we were joining a `Vec` of serialized JSON objects into a
comma-separated string, which isn't valid JSON. Now the entire thing is
simply serialized, `Vec` and all.

Additionally, I've moved serialization to happen just before the FFI
boundary, which removes some indirection from connlib and will avoid a
deserialization step when writing non-FFI clients.
2023-07-24 23:17:43 +00:00
dependabot[bot]
5b387df2fa build(deps): bump uuid from 1.4.0 to 1.4.1 in /rust (#1816)
Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.4.0 to 1.4.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/uuid-rs/uuid/releases">uuid's
releases</a>.</em></p>
<blockquote>
<h2>1.4.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix macro hygiene by <a
href="https://github.com/teohhanhui"><code>@​teohhanhui</code></a> in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/694">uuid-rs/uuid#694</a></li>
<li>Add #[inline] for Uuid::from_bytes[_ref] and Uuid::{as,into}_bytes
by <a
href="https://github.com/jrose-signal"><code>@​jrose-signal</code></a>
in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/693">uuid-rs/uuid#693</a></li>
<li>Print uuids in examples by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/697">uuid-rs/uuid#697</a></li>
<li>Prepare for 1.4.1 release by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/698">uuid-rs/uuid#698</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/teohhanhui"><code>@​teohhanhui</code></a> made
their first contribution in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/694">uuid-rs/uuid#694</a></li>
<li><a
href="https://github.com/jrose-signal"><code>@​jrose-signal</code></a>
made their first contribution in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/693">uuid-rs/uuid#693</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/uuid-rs/uuid/compare/1.4.0...1.4.1">https://github.com/uuid-rs/uuid/compare/1.4.0...1.4.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="97b7f07b3e"><code>97b7f07</code></a>
Merge pull request <a
href="https://redirect.github.com/uuid-rs/uuid/issues/698">#698</a> from
uuid-rs/cargo/1.4.1</li>
<li><a
href="8e930cf511"><code>8e930cf</code></a>
prepare for 1.4.1 release</li>
<li><a
href="0041b3b0b4"><code>0041b3b</code></a>
Merge pull request <a
href="https://redirect.github.com/uuid-rs/uuid/issues/697">#697</a> from
uuid-rs/chore/example-printing</li>
<li><a
href="5a1f3f56d3"><code>5a1f3f5</code></a>
use uuid_unstable</li>
<li><a
href="6b0cfb2e28"><code>6b0cfb2</code></a>
Merge pull request <a
href="https://redirect.github.com/uuid-rs/uuid/issues/693">#693</a> from
jrose-signal/inline-from_bytes</li>
<li><a
href="33f6b3edd9"><code>33f6b3e</code></a>
print uuids in examples</li>
<li><a
href="bd7df72944"><code>bd7df72</code></a>
Merge pull request <a
href="https://redirect.github.com/uuid-rs/uuid/issues/694">#694</a> from
teohhanhui/fix/macro-hygiene</li>
<li><a
href="1d1ae31e6c"><code>1d1ae31</code></a>
Fix macro hygiene</li>
<li><a
href="317d925536"><code>317d925</code></a>
Add #[inline] for Uuid::from_bytes[_ref] and Uuid::{as,into}_bytes</li>
<li>See full diff in <a
href="https://github.com/uuid-rs/uuid/compare/1.4.0...1.4.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=uuid&package-manager=cargo&previous-version=1.4.0&new-version=1.4.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 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>
2023-07-24 22:31:54 +00:00
Gabi
7ad2fb623a connlib: add client dns interception support (#1807) 2023-07-24 21:41:42 +00:00
Francesca Lovebloom
52898a69af connlib: Disconnect on panic (#1815) 2023-07-24 21:18:38 +00:00
Jamil
f968c8cefc Update Apple client with changes from demoable build (#1809)
Brings in the changes from the Demoable build so I can start getting
feedback from users on.

---------

Co-authored-by: Roopesh Chander <roop@roopc.net>
2023-07-24 19:59:40 +00:00
Thomas Eizinger
8f9330ac03 chore: bump Rust to 1.71 (#1804)
There is nothing particularly exciting in this release but it is good to
keep up with them anyway. See https://releases.rs/docs/1.71.0/.

Co-authored-by: Gabi <gabrielalejandro7@gmail.com>
2023-07-24 19:58:30 +00:00
dependabot[bot]
f01ffaf17b Bump tokio-tungstenite from 0.18.0 to 0.19.0 in /rust (#1787)
Bumps [tokio-tungstenite](https://github.com/snapview/tokio-tungstenite)
from 0.18.0 to 0.19.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/snapview/tokio-tungstenite/blob/master/CHANGELOG.md">tokio-tungstenite's
changelog</a>.</em></p>
<blockquote>
<h1>0.19.0</h1>
<ul>
<li>Allow users to enable/disable Nagle algorithm when using
<code>connect()</code> helpers.</li>
<li>Improve the behavior of the <code>Sink</code> for the
<code>WebSocketStream</code>, so it does not return an error when it’s
not necessary (when <code>poll_flush()</code> is called on a connection
that has just been closed).</li>
<li>Workaround an issue where <code>rustls</code> TLS backend expected
domain in a certain format and reject IPv6 addresses if they contained
square brackets in them.</li>
<li>Update dependencies and remove unused errors.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d8101030ac"><code>d810103</code></a>
Update changelog and bump version</li>
<li><a
href="cb11969676"><code>cb11969</code></a>
Remove boilerplace in <code>poll_flush()</code></li>
<li><a
href="e5e8421f1b"><code>e5e8421</code></a>
Merge pull request <a
href="https://redirect.github.com/snapview/tokio-tungstenite/issues/280">#280</a>
from mjquigley/support-ipv6</li>
<li><a
href="d6f5d45e64"><code>d6f5d45</code></a>
Merge pull request <a
href="https://redirect.github.com/snapview/tokio-tungstenite/issues/281">#281</a>
from CBenoit/fix-poll-flush</li>
<li><a
href="f31c425e29"><code>f31c425</code></a>
Merge pull request <a
href="https://redirect.github.com/snapview/tokio-tungstenite/issues/279">#279</a>
from mjquigley/patch-2</li>
<li><a
href="e2e8b94e41"><code>e2e8b94</code></a>
Support IPv6 URIs with rustls</li>
<li><a
href="2c3c6419fc"><code>2c3c641</code></a>
Fix poll_flush on closed connection</li>
<li><a
href="862922ffc1"><code>862922f</code></a>
Revert tokio requirement to 1.0.0</li>
<li><a
href="8803232d81"><code>8803232</code></a>
Merge pull request <a
href="https://redirect.github.com/snapview/tokio-tungstenite/issues/277">#277</a>
from nickelc/deps/webpki</li>
<li><a
href="d447d4620f"><code>d447d46</code></a>
Removed unused <code>webpki</code> dependency</li>
<li>Additional commits viewable in <a
href="https://github.com/snapview/tokio-tungstenite/compare/v0.18.0...v0.19.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tokio-tungstenite&package-manager=cargo&previous-version=0.18.0&new-version=0.19.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 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: Jamil <jamilbk@users.noreply.github.com>
Co-authored-by: Gabi <gabrielalejandro7@gmail.com>
2023-07-24 19:40:12 +00:00
dependabot[bot]
46aa962773 Bump itertools from 0.10.5 to 0.11.0 in /rust (#1786)
Bumps [itertools](https://github.com/rust-itertools/itertools) from
0.10.5 to 0.11.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md">itertools's
changelog</a>.</em></p>
<blockquote>
<h2>0.11.0</h2>
<h3>Breaking</h3>
<ul>
<li>Make <code>Itertools::merge_join_by</code> also accept functions
returning bool (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/704">#704</a>)</li>
<li>Implement <code>PeekingNext</code> transitively over mutable
references (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/643">#643</a>)</li>
<li>Change <code>with_position</code> to yield <code>(Position,
Item)</code> instead of <code>Position&lt;Item&gt;</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/699">#699</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>Add <code>Itertools::take_while_inclusive</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/616">#616</a>)</li>
<li>Implement <code>PeekingNext</code> for <code>PeekingTakeWhile</code>
(<a
href="https://redirect.github.com/rust-itertools/itertools/issues/644">#644</a>)</li>
<li>Add <code>EitherOrBoth::{just_left, just_right, into_left,
into_right, as_deref, as_deref_mut, left_or_insert, right_or_insert,
left_or_insert_with, right_or_insert_with, insert_left, insert_right,
insert_both}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/629">#629</a>)</li>
<li>Implement <code>Clone</code> for <code>CircularTupleWindows</code>
(<a
href="https://redirect.github.com/rust-itertools/itertools/issues/686">#686</a>)</li>
<li>Implement <code>Clone</code> for <code>Chunks</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/683">#683</a>)</li>
<li>Add <code>Itertools::process_results</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/680">#680</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Use <code>Cell</code> instead of <code>RefCell</code> in
<code>Format</code> and <code>FormatWith</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/608">#608</a>)</li>
<li>CI tweaks (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/674">#674</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/675">#675</a>)</li>
<li>Document and test the difference between stable and unstable sorts
(<a
href="https://redirect.github.com/rust-itertools/itertools/issues/653">#653</a>)</li>
<li>Fix documentation error on <code>Itertools::max_set_by_key</code>
(<a
href="https://redirect.github.com/rust-itertools/itertools/issues/692">#692</a>)</li>
<li>Move MSRV metadata to <code>Cargo.toml</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/672">#672</a>)</li>
<li>Implement <code>equal</code> with <code>Iterator::eq</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/591">#591</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="62a6401afd"><code>62a6401</code></a>
chore: Release itertools version 0.11.0</li>
<li><a
href="8f17227193"><code>8f17227</code></a>
remove <code>no-dev-version</code> Cargo release directive</li>
<li><a
href="bb2fc59edd"><code>bb2fc59</code></a>
Merge <a
href="https://redirect.github.com/rust-itertools/itertools/issues/706">#706</a></li>
<li><a
href="0ef6b7eaad"><code>0ef6b7e</code></a>
prepare v0.11.0 release</li>
<li><a
href="c5b64c9ed7"><code>c5b64c9</code></a>
Merge <a
href="https://redirect.github.com/rust-itertools/itertools/issues/616">#616</a></li>
<li><a
href="eb561e537b"><code>eb561e5</code></a>
Merge <a
href="https://redirect.github.com/rust-itertools/itertools/issues/704">#704</a></li>
<li><a
href="3e92550903"><code>3e92550</code></a>
Merge <a
href="https://redirect.github.com/rust-itertools/itertools/issues/643">#643</a></li>
<li><a
href="8184e4c3f6"><code>8184e4c</code></a>
Merge <a
href="https://redirect.github.com/rust-itertools/itertools/issues/644">#644</a></li>
<li><a
href="ae31559af5"><code>ae31559</code></a>
<code>MergeJoinBy</code> also accept functions returning
<code>bool</code></li>
<li><a
href="8bc377efe4"><code>8bc377e</code></a>
Merge <a
href="https://redirect.github.com/rust-itertools/itertools/issues/629">#629</a></li>
<li>Additional commits viewable in <a
href="https://github.com/rust-itertools/itertools/compare/v0.10.5...v0.11.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=itertools&package-manager=cargo&previous-version=0.10.5&new-version=0.11.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 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: Jamil <jamilbk@users.noreply.github.com>
Co-authored-by: Gabi <gabrielalejandro7@gmail.com>
2023-07-24 18:56:13 +00:00
dependabot[bot]
44dd682569 Bump async-trait from 0.1.69 to 0.1.71 in /rust (#1783)
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.69
to 0.1.71.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/async-trait/releases">async-trait's
releases</a>.</em></p>
<blockquote>
<h2>0.1.71</h2>
<ul>
<li>Documentation improvements</li>
</ul>
<h2>0.1.70</h2>
<p>No release notes provided.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="11dfe16292"><code>11dfe16</code></a>
Release 0.1.71</li>
<li><a
href="85172d3b7b"><code>85172d3</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/async-trait/issues/249">#249</a>
from erer1243/update-docs-lifetime</li>
<li><a
href="92acf8138a"><code>92acf81</code></a>
Update doc comments to use lifetime 'async_trait instead of 'async</li>
<li><a
href="f8ce3fb309"><code>f8ce3fb</code></a>
Release 0.1.70</li>
<li><a
href="46631ccd5c"><code>46631cc</code></a>
Eliminate syn 1 from minimal-versions</li>
<li><a
href="eb21940ebf"><code>eb21940</code></a>
Add CI job using minimal-versions</li>
<li>See full diff in <a
href="https://github.com/dtolnay/async-trait/compare/0.1.69...0.1.71">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=async-trait&package-manager=cargo&previous-version=0.1.69&new-version=0.1.71)](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 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: Jamil <jamilbk@users.noreply.github.com>
2023-07-24 17:26:32 +00:00
dependabot[bot]
7a19cc4779 Bump serde from 1.0.165 to 1.0.171 in /rust (#1785)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.165 to
1.0.171.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/serde-rs/serde/releases">serde's
releases</a>.</em></p>
<blockquote>
<h2>v1.0.171</h2>
<ul>
<li>Support <code>derive(Deserialize)</code> on unit structs that have
const generics (<a
href="https://redirect.github.com/serde-rs/serde/issues/2500">#2500</a>,
thanks <a
href="https://github.com/Baptistemontan"><code>@​Baptistemontan</code></a>)</li>
</ul>
<h2>v1.0.170</h2>
<ul>
<li>Produce error message on suffixed string literals inside serde
attributes (<a
href="https://redirect.github.com/serde-rs/serde/issues/2242">#2242</a>)</li>
<li>Support single identifier as unbraced default value for const
generic parameter (<a
href="https://redirect.github.com/serde-rs/serde/issues/2449">#2449</a>)</li>
</ul>
<h2>v1.0.169</h2>
<ul>
<li>Add Deserializer::deserialize_identifier support for adjacently
tagged enums (<a
href="https://redirect.github.com/serde-rs/serde/issues/2475">#2475</a>,
thanks <a
href="https://github.com/Baptistemontan"><code>@​Baptistemontan</code></a>)</li>
<li>Fix unused_braces lint in generated Deserialize impl that uses
braced const generic expressions (<a
href="https://redirect.github.com/serde-rs/serde/issues/2414">#2414</a>)</li>
</ul>
<h2>v1.0.168</h2>
<ul>
<li>Allow <code>serde::de::IgnoredAny</code> to be the type for a
<code>serde(flatten)</code> field (<a
href="https://redirect.github.com/serde-rs/serde/issues/2436">#2436</a>,
thanks <a
href="https://github.com/Mingun"><code>@​Mingun</code></a>)</li>
<li>Allow larger preallocated capacity for smaller elements (<a
href="https://redirect.github.com/serde-rs/serde/issues/2494">#2494</a>)</li>
</ul>
<h2>v1.0.167</h2>
<ul>
<li>Add serialize and deserialize impls for <code>RangeFrom</code> and
<code>RangeTo</code> (<a
href="https://redirect.github.com/serde-rs/serde/issues/2471">#2471</a>,
thanks <a href="https://github.com/tbu"><code>@​tbu</code></a>-)</li>
</ul>
<h2>v1.0.166</h2>
<ul>
<li>Add <code>no-alloc</code> category to crates.io metadata</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="03da66c805"><code>03da66c</code></a>
Release 1.0.171</li>
<li><a
href="f75426f47e"><code>f75426f</code></a>
Inline visitor_expr of unit struct deserialize impl</li>
<li><a
href="662fc3861c"><code>662fc38</code></a>
Add test of const-generic unit struct where-clause edge case</li>
<li><a
href="28c10020b9"><code>28c1002</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/serde/issues/2500">#2500</a>
from Baptistemontan/derive_generic_unit_struct</li>
<li><a
href="89c8d85de9"><code>89c8d85</code></a>
allow Deserialize derive to handle generic unit structs</li>
<li><a
href="6502838f27"><code>6502838</code></a>
Release 1.0.170</li>
<li><a
href="c93a0f335a"><code>c93a0f3</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/serde/issues/2499">#2499</a>
from dtolnay/strsuffix</li>
<li><a
href="8264e002a7"><code>8264e00</code></a>
Reject suffixed string literals inside serde attrs</li>
<li><a
href="117ef22142"><code>117ef22</code></a>
Add ui test with suffixed string literals in attribute</li>
<li><a
href="3fb5e71c33"><code>3fb5e71</code></a>
Release 1.0.169</li>
<li>Additional commits viewable in <a
href="https://github.com/serde-rs/serde/compare/v1.0.165...v1.0.171">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.165&new-version=1.0.171)](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 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: Jamil <jamilbk@users.noreply.github.com>
2023-07-24 17:21:04 +00:00
Francesca Lovebloom
e5e18e78a3 connlib: Disconnect on fatal error (#1801)
Resolves firezone/product#619

This additionally removes `ErrorType`:
- `on_error` is now exclusively used for recoverable errors, and no
longer has an `error_type` parameter.
- `on_disconnect` now has an optional `error` parameter, which specifies
the fatal error that caused the disconnect if relevant.
2023-07-19 22:36:06 +00:00
Pratik Velani
fc3be9a6b3 android: update connlib dependency and integration (#1752)
- Replaced connlib dependency to use `rust/connlib/clients/android/lib`
project
- Added `rust-android-gradle` to android project
- Set the `cargo build` target directory to
`rust/connlib/clients/android/lib/build/cargo-target`
- Moved `logger`, `session`, and `vpn` classes to their independent
packages.
- Added `SessionCallback` contract for the session callbacks.

---------

Signed-off-by: Pratik Velani <pratikvelani@gmail.com>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2023-07-17 18:50:39 +00:00
Francesca Lovebloom
e413e96ccb connlib: Refine callbacks (#1776)
This follows-up on the discussion in #1744 and brings connlib in line
with the callback revisions outlined in firezone/product#586

(It also adds some logging to the Apple bridge that was helpful when
testing this)

---------

Co-authored-by: Roopesh Chander <roop@roopc.net>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2023-07-17 18:26:46 +00:00
Jamil
b782436f98 Fix Rust/Swift caching and parallelize swift build (#1793)
- Renames remnants of `cloud` ref to `main`
- Uses matrix for macOS, iphoneos builds
2023-07-14 23:09:15 -07:00
Roopesh Chander
9ad557f568 Integrate connlib build into apple build (#1759)
This PR improves the build process for the macOS / iOS apps by building
connlib as part of the macOS / iOS app build.

Fixes firezone/product#625.

This is how the build would work after this PR:
- `build-rust.sh` creates `libconnlib.a` for the appropriate target
triples only. lipo is not used. When creating macOS debug builds, it’s
built only for the native architecture.
- The network extension targets in the Xcode project set a library
search path as the cargo target dir, so that the Xcode build for a
target triple can pickup the appropriate `libconnlib.a` at link time.

Swift code reorganizations:
  - connlib’s Adapter has moved to the main app
- connlib’s CallbackHandler’s logic has moved to Adapter, which is set
as CallbackHandler’s delegate. The CallbackHandler serves as an
interface to receive callbacks from the FFI. In case we need to change
the FFI, CallbackHandler should change as well, so it remains in the
connlib directory. In case of changes to the Rust FFI, as part of the
Rust FFI change PR, we can modify the CallbackHandler class and leave
the delegate unchanged, so that the app can continue to be built without
errors.
- `Connlib.xcodeproject` and build scripts for building
`Connlib.xcframework` are removed
- Connlib headers and Swift files are copied to
`FirezoneNetworkExtension/Connlib` as part of the build process, and
used from there.

Rust build changes:
- The rust target dir remains the same, but it’s ~~passed explicitly as
`--target-dir`~~ used to set `CARGO_TARGET_DIR`, so that the same target
dir can be used to populate Xcode’s library search paths
- The `build.rs` for connlib-apple had lots of code to build Swift code
as part of the Rust build. This PR reverts it to the previous simple
version. With this PR, building connlib-apple (i.e. running
`build-rust.sh`) only builds the Rust code.
- ~~We set `cargo:rerun-if-env-changed=CONNLIB_MOCK`.~~ We don't set
this because it's not required.
- The Rust CI job for building connlib-apple is removed. It's built when
the macOS / iOS apps are built in swift.yml. This means that with this
PR, connlib-apple is tested only when `rust/connlib/**` changes, not
when `rust/**` changes. Is that ok?

Other changes not directly related to the build process change but part
of this PR:
  - There’s a cleanup script: `./cleanup.sh`
  - Fixed a typo in `swift-pass-checks.yml`: “paths-ginore”
2023-07-13 05:23:24 +00:00
Francesca Lovebloom
58c2ce5e80 connlib: Hook up callbacks (#1744)
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2023-07-11 19:40:35 +00:00
Gabi
b70124f090 headless & gateway: impl callbacks (#1757)
After rebasing over this #1744 CI should pass
2023-07-11 18:17:33 +00:00
Francesca Lovebloom
a71309a02a connlib: Use latest swift-bridge release (#1753)
A new version of `swift-bridge` released today, so we don't need it to
be a git dependency anymore.
2023-07-11 17:57:25 +00:00
Thomas Eizinger
d03865d92e fix(relay): reuse delete_allocation function (#1743)
Previously, we would access the state around allocations from different
places. This actually led to a minor memory leak where we wouldn't clean
up the `allocations_by_port` table. We refactor the code slightly to
avoid this.

---------

Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2023-07-10 23:05:35 +00:00
Gabi
45c921b69e Feat/expire peers (#1739)
This PR takes care of expiring connections with peer from the gateway
side.

---------

Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2023-07-10 22:28:32 +00:00
Thomas Eizinger
f5c1b5a78e feat(relay): use structured logging (#1741)
With this patch, the relay exposes a `--json` and `JSON_LOG` env
variable that will activate logs in JSON format the way it is expected
by google cloud:
https://cloud.google.com/logging/docs/structured-logging

In addition, we make use of spans to record contextual information as
first-class variables that are available in the context of every
message. An example output here is:

```
{"time":"2023-07-06T19:54:42.643694430Z","target":"relay","logging.googleapis.com/sourceLocation":{"file":"relay/src/main.rs","line":"156"},"severity":"INFO","message":"Seeding RNG from '0'"}
{"time":"2023-07-06T19:54:42.644408014Z","target":"relay","logging.googleapis.com/sourceLocation":{"file":"relay/src/main.rs","line":"130"},"severity":"INFO","message":"Listening for incoming traffic on UDP port 3478"}
{"time":"2023-07-06T19:54:42.843247996Z","target":"relay","logging.googleapis.com/sourceLocation":{"file":"relay/src/server.rs","line":"417"},"span":{"lifetime":"600","name":"allocate"},"spans":[{"sender":"127.0.0.1:46406","transaction_id":"0531a911a24d1e5297b94cb2","name":"client"},{"lifetime":"600","name":"allocate"}],"severity":"INFO","ip4RelayAddress":"127.0.0.1:65460","message":"Created new allocation"}
{"time":"2023-07-06T19:54:42.851623041Z","target":"relay","logging.googleapis.com/sourceLocation":{"file":"relay/src/server.rs","line":"569"},"span":{"allocation":"AID-1","peer_address":"127.0.0.1:42314","requested_channel":"16384","name":"channel_bind"},"spans":[{"sender":"127.0.0.1:46406","transaction_id":"e99e07e482789cdc30bd2b50","name":"client"},{"allocation":"AID-1","peer_address":"127.0.0.1:42314","requested_channel":"16384","name":"channel_bind"}],"severity":"INFO","message":"Successfully bound channel"}
{"time":"2023-07-06T19:54:42.852889208Z","target":"relay","logging.googleapis.com/sourceLocation":{"file":"relay/src/server.rs","line":"288"},"span":{"allocation_id":"AID-1","channel":16384,"recipient":"127.0.0.1:46406","sender":"127.0.0.1:42314","name":"peer"},"spans":[{"allocation_id":"AID-1","channel":16384,"recipient":"127.0.0.1:46406","sender":"127.0.0.1:42314","name":"peer"}],"severity":"DEBUG","message":"Relaying 32 bytes"}
{"time":"2023-07-06T19:54:42.854625857Z","target":"relay","logging.googleapis.com/sourceLocation":{"file":"relay/src/server.rs","line":"619"},"span":{"channel":"16384","recipient":"127.0.0.1:42314","name":"channel_data"},"spans":[{"sender":"127.0.0.1:46406","name":"client"},{"channel":"16384","recipient":"127.0.0.1:42314","name":"channel_data"}],"severity":"DEBUG","message":"Relaying 32 bytes"}
```

For some reason, the current `span` is always duplicated but I don't
think that is a big issue. When run using the regular log formatter, it
looks like this:

```
2023-07-06T20:02:33.939273Z  INFO relay: Seeding RNG from '0'
2023-07-06T20:02:33.940153Z  INFO relay: Listening for incoming traffic on UDP port 3478
2023-07-06T20:02:34.135801Z  INFO client{sender=127.0.0.1:33919 transaction_id="7092a2363377709cd18b9d98"}:allocate{lifetime=600}: relay: Created new allocation ip4_relay_address=127.0.0.1:65460
2023-07-06T20:02:34.144833Z  INFO client{sender=127.0.0.1:33919 transaction_id="4e1a18e58953242c92a075a3"}:channel_bind{requested_channel=16384 peer_address=127.0.0.1:47859 allocation="AID-1"}: relay: Successfully bound channel
2023-07-06T20:02:34.145501Z DEBUG peer{sender=127.0.0.1:47859 allocation_id=AID-1 recipient=127.0.0.1:33919 channel=16384}: relay: Relaying 32 bytes
2023-07-06T20:02:34.146863Z DEBUG client{sender=127.0.0.1:33919}:channel_data{channel=16384 recipient=127.0.0.1:47859}: relay: Relaying 32 bytes
```

This provides lots of contextual information in a DRY and easily
parse-able way.

---------

Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2023-07-07 18:15:18 +00:00
Roopesh Chander
c9c13e1e11 Bring in apple client into monorepo (#1737)
This PR brings in the apple client into the monorepo.

---------

Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2023-07-07 10:37:24 -07:00