<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/tunnel.rs, branch arti-v1.7.0</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.7.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.7.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2025-08-28T10:54:48Z</updated>
<entry>
<title>proto: Move TunnelId to a separate, shared module.</title>
<updated>2025-08-28T10:54:48Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-08-27T13:02:57Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=567c8bd287c5c5a45b602be80c119fd741f9eb3a'/>
<id>urn:sha1:567c8bd287c5c5a45b602be80c119fd741f9eb3a</id>
<content type='text'>
The `TunnelId*` types will be reused in the relay reactor (exit relays
need to have the concept of a "tunnel ID" because of conflux).

Now the `relay::reactor` module only has a single import from `client`
(for the `unwrap_or_shutdown` helper, which we should be able to remove
soon). From now, we will avoid importing anything from `client` in the
`relay` module, and instead prefer refactoring the code as needed (to
pull the implementation-agnostic parts outside of `client`).

This commit has no functional changes, just code motion.
</content>
</entry>
<entry>
<title>proto: Rename the `tunnel` module to `client`.</title>
<updated>2025-08-18T16:09:04Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-08-18T15:14:43Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=1ee26f2168ee2dede8ab993ef57435334e9efabe'/>
<id>urn:sha1:1ee26f2168ee2dede8ab993ef57435334e9efabe</id>
<content type='text'>
The implementation from `tunnel` is client-specific, so we are renaming
the module accordingly. The more generic parts will be pulled into a
separate module in a future commit.
</content>
</entry>
<entry>
<title>proto: Add a ChannelProvider trait.</title>
<updated>2025-08-18T11:14:35Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-08-14T16:48:17Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=0d431bf88b8c716b24fbf7a6257d19e8b08d981c'/>
<id>urn:sha1:0d431bf88b8c716b24fbf7a6257d19e8b08d981c</id>
<content type='text'>
Part of #1447
</content>
</entry>
<entry>
<title>Fix warnings and errors from edition 2024.</title>
<updated>2025-08-07T15:28:39Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-08-06T01:54:12Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4fbbffe7c14b2df6290268b6e3c8530106ab2529'/>
<id>urn:sha1:4fbbffe7c14b2df6290268b6e3c8530106ab2529</id>
<content type='text'>
The two main causes of errors were:

- Since some of the lifetime rules have changed, we no longer need
  to do as many "bind a variable and immediately return it"
  patterns, and so clippy now warns about them.
- We needed to adjust the explicit captures (`use&lt;...&gt;`)
  in a couple of our RPIT instances.
</content>
</entry>
<entry>
<title>Switch Cargo.toml files to edition 2024.</title>
<updated>2025-08-07T15:28:36Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-08-06T01:19:58Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=77b0de43b8c67cdb81befe0680a3df43b6ad37bc'/>
<id>urn:sha1:77b0de43b8c67cdb81befe0680a3df43b6ad37bc</id>
<content type='text'>
First, run

```
git grep -l "^edition =" |
    xargs perl -i -pe 's/^edition *=.*/edition = "2024"/;'
```

Second, manually verify that all Cargo.toml files have changed,
and nothing else has changed.

Third, run cargo fmt again.
</content>
</entry>
<entry>
<title>Update code for Edition 2024</title>
<updated>2025-08-07T15:28:31Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-08-07T12:44:47Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=0453fb4be8cf618b94230812957ce1db1afe74bd'/>
<id>urn:sha1:0453fb4be8cf618b94230812957ce1db1afe74bd</id>
<content type='text'>
1. Run cargo fix --edition

2. Selectively revert the "if let"-&gt;"match" changes.
   These changes are meant to protect us from the lifetime changes
   for "if let" bindings in Rust 2024.
   But we're not actually relying on the old lifetime rules
   anywhere, and the match syntax here is quite ugly.

3. Automatically revert `$pat:expr_2021` to `$pat:expr`.
   (We don't actually want to restrict the expression syntax
   that our macros accept).
   Done with
   `git grep -l expr_2021 | xargs perl -i -pe 's/expr_2021/expr/g;'`

4. Run cargo fmt.
</content>
</entry>
<entry>
<title>tor-proto: make stream recv queues unbounded if "flowctl-cc" enabled</title>
<updated>2025-08-05T20:01:23Z</updated>
<author>
<name>Steven Engler</name>
<email>opara@torproject.org</email>
</author>
<published>2025-07-31T19:59:02Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=441a496521f3d823be11c8aaa7e32ebf959e8ff0'/>
<id>urn:sha1:441a496521f3d823be11c8aaa7e32ebf959e8ff0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>proto: Deferred fmt</title>
<updated>2025-08-05T18:23:03Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-07-24T16:50:51Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=08222739b2be3c6d2733e06dc1c088711e447085'/>
<id>urn:sha1:08222739b2be3c6d2733e06dc1c088711e447085</id>
<content type='text'>
</content>
</entry>
<entry>
<title>conflux: Adjust docs and fix doc links.</title>
<updated>2025-08-05T18:23:02Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-07-21T16:29:23Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=b7dffdcd6e8e36882320a034a702ffe5c9909682'/>
<id>urn:sha1:b7dffdcd6e8e36882320a034a702ffe5c9909682</id>
<content type='text'>
</content>
</entry>
<entry>
<title>proto: abolish path_ref() in favor of all_paths().</title>
<updated>2025-08-05T18:23:02Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-07-18T17:28:39Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2610fe21fc394f4cdb6cd1a91ba9d2ad72aadb01'/>
<id>urn:sha1:2610fe21fc394f4cdb6cd1a91ba9d2ad72aadb01</id>
<content type='text'>
Until now, we've been using `ClientCirc::path_ref()` to get the *only*
path of a circuit. Now that `ClientCirc` is a handle to a tunnel reactor
(which may or may not be multi-path), we need to decide for each call
site of `path_ref()`, if we actually want *all* paths in the tunnel, or
if we expect the tunnel to be single-path and thus want the *only* path
in the tunnel.

I've added two new APIs to address this: `all_paths()`, for getting all
the paths in the tunnel, and `single_path()` for getting the only path
in the tunnel, or an error if the tunnel is single-path.
</content>
</entry>
</feed>
