<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/tunnel.rs, branch arti-v1.4.5</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.4.5</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.4.5'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2025-06-26T17:26:49Z</updated>
<entry>
<title>tor-proto: improve documentation for `StreamTarget::send_sendme`</title>
<updated>2025-06-26T17:26:49Z</updated>
<author>
<name>Steven Engler</name>
<email>opara@torproject.org</email>
</author>
<published>2025-06-26T17:26:49Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a93d9f5ff08242d84373f988fc7659fc7cbd4f0f'/>
<id>urn:sha1:a93d9f5ff08242d84373f988fc7659fc7cbd4f0f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make `StreamTarget::send_sendme` non-async</title>
<updated>2025-06-26T17:03:08Z</updated>
<author>
<name>Steven Engler</name>
<email>opara@torproject.org</email>
</author>
<published>2025-06-26T04:02:53Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=eed047cbf888dc8f2d02c772e4b9a5154c77a3d4'/>
<id>urn:sha1:eed047cbf888dc8f2d02c772e4b9a5154c77a3d4</id>
<content type='text'>
There are some pros/cons to this change:

Pros:

1. The only remaining `await` in `StreamReceiver::recv` is for polling
   the receiver, which means we can turn the `StreamReceiver` into a
   `Stream` in a future commit.
2. We won't block the user from receiving messages while we wait for the
   circuit reactor to receive our SENDME message and send it on the
   outgoing channel.
3. The `StreamReceiver` doesn't really care if it can't send the SENDME.
   There isn't anything it can do, the circuit hop can go away for
   external reasons like a DESTROY message, and we still want to return
   all queued messages to the user anyways.

Cons:

1. If the `StreamReceiver` sends a SENDME request to the circuit
   reactor, and the circuit reactor fails to send the SENDME, there's no
   good way for the reactor to communicate this back to the
   `StreamReceiver`.
</content>
</entry>
<entry>
<title>hsservice: Stop using HopNum and use TargetHop</title>
<updated>2025-06-26T14:18:30Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2025-06-25T15:00:25Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=611a35888fc2780d7cca31f0a3b7b1b88ccf8079'/>
<id>urn:sha1:611a35888fc2780d7cca31f0a3b7b1b88ccf8079</id>
<content type='text'>
This requires some changes to the tor-proto crate to handle the inbound
TargetHop from the HS subsystem and then resolve it into a HopNum for a
single circuit.

It is expected that this will change again with Conflux to only use
HopLocation internally in a Tunnel and then use HopNum into a Circuit.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</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 From&lt;(UniqId, HopNum)&gt; for TargetHop</title>
<updated>2025-06-26T14:18:30Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2025-06-19T17:56:20Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a2d1846c45d5aee37b109477342d8d8541eb1496'/>
<id>urn:sha1:a2d1846c45d5aee37b109477342d8d8541eb1496</id>
<content type='text'>
Quick helper as within the tor-proto crate, we sometimes have to quickly
get a TargetHop.

This will come handy with the message handler used by the Conversation
object that the HS subsystem uses.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Make TargetHop and HopLocation public</title>
<updated>2025-06-26T14:18:30Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2025-06-19T17:07:32Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=b0dde277a88dd25fe674f4ae0838ee30acf7a937'/>
<id>urn:sha1:b0dde277a88dd25fe674f4ae0838ee30acf7a937</id>
<content type='text'>
This is about to be used outside of tor-proto. It is part of the work to
remove the use of HopNum outside tor-proto.

The rules are:

- Inbound requsest to the tor-proto crate, TargetHop must always be
  used.
- Within tor-proto, TargetHop is resolved into a HopLocation which is
  more precise and based on the tunnel circuit(s).

This is another piece that Conflux will require considering that a
Tunnel might have multiple circuits in the future.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>tor-proto: Replace LegId/LegIdKey with UniqId.</title>
<updated>2025-06-13T16:13:45Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-06-13T15:33:23Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=9010b0459a10b70e659007d44b58cb9d6dbb5507'/>
<id>urn:sha1:9010b0459a10b70e659007d44b58cb9d6dbb5507</id>
<content type='text'>
Closes #1999
</content>
</entry>
<entry>
<title>tor-proto: Add an identifier for a circuit within a tunnel.</title>
<updated>2025-06-12T18:02:30Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-06-12T16:41:43Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=42273c4ed1233f3a3df00fd7bf4a6866b126379f'/>
<id>urn:sha1:42273c4ed1233f3a3df00fd7bf4a6866b126379f</id>
<content type='text'>
This type will help produce better logs (logging just the circuit ID
would make it impossible to correlate said circuit with the tunnel it
belongs to).
</content>
</entry>
<entry>
<title>tor-proto: Add a new identifier type for tunnels.</title>
<updated>2025-06-12T18:02:30Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-06-12T13:53:37Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=bdd67de6ba943a0a09ce9704279d441649ae1842'/>
<id>urn:sha1:bdd67de6ba943a0a09ce9704279d441649ae1842</id>
<content type='text'>
Currently, a tunnel is uniquely identified by the `UniqId` of the first
circuit added to the tunnel. This works, but the double-meaning of the
`UniqId` is bound to cause confusion in the future (because it blurs the
distinction between tunnels and circuits).

This introduces a new `TunnelId` type which will replace `UniqId` in the
tunnel reactor.
</content>
</entry>
<entry>
<title>cell, proto: Use correct Data sizes for v1 relay cells</title>
<updated>2025-04-16T14:58:49Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-04-11T01:57:10Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=497e5f1acd27c2c316c3f5bbf7158c9516fef159'/>
<id>urn:sha1:497e5f1acd27c2c316c3f5bbf7158c9516fef159</id>
<content type='text'>
Since v1 cells have a longer tag, they can fit less data into a
single cell.  Ah well, that's the cost of improved security.

The code in data.rs is a little wonky, in that it currently requires
its buffer to be exactly the maximum size for a data cell.  We have
a TODO about fixing that in the future, but for now I've moved it to
use a boxed slice rather than a boxed array.

Part of #1944.
</content>
</entry>
</feed>
