<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-hsservice/src/ipt_establish.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-07T15:28:36Z</updated>
<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>tunnel: Implement start_conversation() for all tunnel types</title>
<updated>2025-08-05T18:23:02Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2025-07-01T17:41:23Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=3cb2673a8323a8b26118bbb47c8adb4219b07366'/>
<id>urn:sha1:3cb2673a8323a8b26118bbb47c8adb4219b07366</id>
<content type='text'>
The BaseTunnel now has a start_conversation() which takes a TargetHop
meaning it can be used with a multi path tunnel.

The Conversation object has been moved into the tunnel namespace out of
the circuit one.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>hs: Use the new Tunnel interface for onion service</title>
<updated>2025-08-05T18:23:02Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2025-05-07T18:10:53Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8333a2d7c9e4842753e65d978087e54a8ad43789'/>
<id>urn:sha1:8333a2d7c9e4842753e65d978087e54a8ad43789</id>
<content type='text'>
</content>
</entry>
<entry>
<title>hs: Remove the use of HopNum and instead use TargetHop</title>
<updated>2025-06-26T14:18:30Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2025-06-19T17:57:47Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=7d05e9f4825f96d5fe470be84cf3095d4c675817'/>
<id>urn:sha1:7d05e9f4825f96d5fe470be84cf3095d4c675817</id>
<content type='text'>
This is in the spirit of making everything going inbound the tor-proto
crate to use a TargetHop.

This becomes much easier for the HS subsystem as it only uses the last
hop for its conversation and setup.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Add a control command to get the binding key</title>
<updated>2025-06-26T14:18:30Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2025-06-19T17:10:00Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=181384c3bc9da81ddeb7ecd6252fa36ddab61c9d'/>
<id>urn:sha1:181384c3bc9da81ddeb7ecd6252fa36ddab61c9d</id>
<content type='text'>
This allows us to use TargetHop instead of HopNum but also to get one
step closer to not depend on a mutable state.

We prefer resolving a TargetHop within the Reactor object in order to
use the circuit list instead of the MutableState path.

The HS service subsystem is modified to use this modified function that
is now async and uses a TargetHop.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>*: suppress cognitive_complexity warnings from nightly</title>
<updated>2025-05-29T14:21:17Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-05-21T14:48:35Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5327d3e22a83b8469a5d4191d92e1364344ddc93'/>
<id>urn:sha1:5327d3e22a83b8469a5d4191d92e1364344ddc93</id>
<content type='text'>
Apparently clippy nightly is better (or worse?) about detecting
complex functions than before, so I'm suppressing these warnings
where they occur.

I have mixed feelings about these warnings:  On the plus side,
they really do help to detect functions that are twistier than they
need to be.  On the minus side, they get confused by tracing macros,
and the "allows" do pile up.  But on the plus side, those "allows"
do provide a way to find functions that need to be refactored,
and they are never uglier than the functions they decorate.
</content>
</entry>
<entry>
<title>tor-proto: Update the TunnelMutableState when a circuit is removed.</title>
<updated>2025-05-15T16:33:33Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-05-09T17:21:24Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=52c01e2e51206510ae6709a7c456d4af2ab466af'/>
<id>urn:sha1:52c01e2e51206510ae6709a7c456d4af2ab466af</id>
<content type='text'>
This is messy, because `ClientCirc::{path_ref, n_hops, ..}` become
fallible (we can't unwrap the result, because when a circuit is closed,
its state gets removed from the `TunnelSharedState`, but its
`ClientCirc` handle continues to exist, so any attempt to retrieve the
state will result in an `Err`).
</content>
</entry>
<entry>
<title>Merge branch 'named_protovers' into 'main'</title>
<updated>2025-03-20T17:10:03Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2025-03-20T17:10:03Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4727e71c790f96bb84723bbf5afc4bc3aa35136e'/>
<id>urn:sha1:4727e71c790f96bb84723bbf5afc4bc3aa35136e</id>
<content type='text'>
protover: Add support for subprotocol version mnemonics.

Closes #1891

See merge request tpo/core/arti!2854</content>
</entry>
<entry>
<title>squash! Upgrade rand dependency to 0.9.</title>
<updated>2025-03-18T16:09:44Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-03-18T13:01:31Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2f8993c22c2b86010e4fd8b5169ef0ab83f8c754'/>
<id>urn:sha1:2f8993c22c2b86010e4fd8b5169ef0ab83f8c754</id>
<content type='text'>
- `rand::thread_rng()` has been deprecated and renamed to `rand::rng()`
</content>
</entry>
</feed>
