<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-chanmgr/src/builder.rs, branch arti-v1.0.1</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.0.1</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.0.1'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2022-08-25T14:54:50Z</updated>
<entry>
<title>tor-chanmgr: don't log addresses so much.</title>
<updated>2022-08-25T14:54:50Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-08-25T14:54:50Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=920f7a3f53b133008bad482224290ec91a38cad2'/>
<id>urn:sha1:920f7a3f53b133008bad482224290ec91a38cad2</id>
<content type='text'>
We now log connection attempts at debug!, and mark relay target
addresses as sensitive.
</content>
</entry>
<entry>
<title>Rename ChannelsParams types to ChannelPaddingInstructions (fmt)</title>
<updated>2022-08-17T09:54:41Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-08-09T09:50:40Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=949e5395e0a9bc5827c05ca9b028ff08e07900f3'/>
<id>urn:sha1:949e5395e0a9bc5827c05ca9b028ff08e07900f3</id>
<content type='text'>
Run rustfmt; no other changes.
</content>
</entry>
<entry>
<title>Rename ChannelsParams types to ChannelPaddingInstructions</title>
<updated>2022-08-17T09:54:41Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-08-09T09:49:46Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=94dd3361e24335c187bbf4d3a3ec0971b186da3c'/>
<id>urn:sha1:94dd3361e24335c187bbf4d3a3ec0971b186da3c</id>
<content type='text'>
As per
  https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/657#note_2826167

This makes some lines too long; I will run rustfmt in a separate
commit for clarity.
</content>
</entry>
<entry>
<title>Channel: Make mutable() and engage_padding_activities infallible</title>
<updated>2022-08-17T09:54:41Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-08-08T16:09:14Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=03d8a09c0ea8213abd6430be9c62ad42f8ca2d82'/>
<id>urn:sha1:03d8a09c0ea8213abd6430be9c62ad42f8ca2d82</id>
<content type='text'>
As per
  https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/657#note_2826151

This gets rid of quite some Bug error paths.
</content>
</entry>
<entry>
<title>Move ChannelUsage from tor_proto to tor_chanmgr</title>
<updated>2022-08-17T09:54:41Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-08-08T15:33:33Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5db974ef72eb1250ab27cd7e21141f64d8778776'/>
<id>urn:sha1:5db974ef72eb1250ab27cd7e21141f64d8778776</id>
<content type='text'>
Replace Channel::note_usage with Channel::engage_padding_activities,
which unconditionally causes the channel to (start to) do netflow
padding things.

The condition now lives in chanmgr.

Addresses
  https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/657#note_2826094
</content>
</entry>
<entry>
<title>Provide ChannelUsage and plumb it all the way down</title>
<updated>2022-08-16T17:37:06Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-07-26T18:14:12Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8d44ef05dc7cd3d16f024d7b1058c16ecf54ee92'/>
<id>urn:sha1:8d44ef05dc7cd3d16f024d7b1058c16ecf54ee92</id>
<content type='text'>
Channel padding depends on what the channel is being used for.  We
therefore need to let the channel code know this information.

The implementation of the per-channel padding control logic will be in
the new note_usage function, which for now is simply a stub.

A future commit will introduce a `PaddingControlState` which lives in
the channel frontend; consult the doc comment for that type to see why
the plumbing through the channel manager terminates in the channel
frontend.
</content>
</entry>
<entry>
<title>channel reparameterize: Change error type</title>
<updated>2022-08-16T17:37:06Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-07-26T18:12:34Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=61ab684f74f0e0a7507e19440a455b75efb95454'/>
<id>urn:sha1:61ab684f74f0e0a7507e19440a455b75efb95454</id>
<content type='text'>
This is going to be able to fail in other ways too, sadly.
</content>
</entry>
<entry>
<title>Final (?) API revisions for tor-linkspec</title>
<updated>2022-08-10T14:39:37Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-08-05T15:47:05Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2d4507ff35f8e8cf874c81d3754804b2c20f31aa'/>
<id>urn:sha1:2d4507ff35f8e8cf874c81d3754804b2c20f31aa</id>
<content type='text'>
With this change, each individual identity type becomes optional.
The functions that expose them unconditionally are now in a "legacy"
trait that only some downstream types are expected to implement.

There are new convenience APIs in HasRelayIds:
  * to return Option&lt;&amp;keytype&gt;,
  * to see if one identity-set contains another.

This commit will break several downstream crates!  For the
reviewer's convenience, I will put the fixes for those crates into a
series of squash! commits on this one.

tor-netdir
----------

Revise tor-netdir to accept optional identities.  This required some
caveats and workarounds about the cases where we have to deal with a
key type that the tor-netdir code does not currently recognize at
all.  If we start to add more identity types in the future, we may
well want more internal indices in this code.

tor-proto
---------

In order to make tor-proto support optional identities, there were
fewer changes than I thought.  Some "check" functions needed to start
looking at "all the ids we want" rather than at "the two known IDs";
they also needed to accommodate that case where we don't have an ID
that we demand.

This change will also help with bridges, since we want to be able to
connect to a bridge without knowing all of its IDs up front.

The protocol currently _requires_ the two current ID types in some
places. To deal with that, I added a new `MissingId` error.

I also removed a couple of unconditional identity accessors for
chanmgr; code should use `target().identity(...)` instead.

tor-chanmgr
-----------

This is an incomplete conversion: it does not at all handle channel
targets without Ed25519 identities yet.  It still uses those
identities to index its internal map from identity to channel; but
it gives a new `MissingId` error type if it's given a channel target
that doesn't have one.

We'll want to revise the map type again down the road when we
implement bridges, but I'd rather not step on the channel-padding
work in progress right now.

tor-guardmgr
------------

This change is mostly a matter of constructing owned identity types
more sensibly, rather than unwrapping them directly.

There are some places marked with TODOs where we still depend on
particular identity types, because of how the directory protocol
works.  This will need revisiting when we add bridge support here.

tor-circmgr
-----------

These changes are just relatively simple API changes in the tests.
</content>
</entry>
<entry>
<title>tor-linkspec: Refactor out traits to represent a relay's ID set.</title>
<updated>2022-08-02T16:40:23Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-07-26T14:03:50Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=b68a3ed5e55c4f04c534fc4c643ad1178848d4f7'/>
<id>urn:sha1:b68a3ed5e55c4f04c534fc4c643ad1178848d4f7</id>
<content type='text'>
We want the set of identities supported by a relay to be extensible
in the future with minimal fuss; we'd also like to make working
with these ID sets more convenient.  To handle that, this commit
adds a new trait for "Something that has the same IDs as a relay"
and a new object for "an owned representation of a relay's IDs."

This commit introduces a similar trait for "Something with a list of
SocketAddr, like a relay has."  There's no owned equivelent for
that, since Vec&lt;SocketAddr&gt; is already a thing.

Closes #428.
</content>
</entry>
<entry>
<title>ChanMgr: errors: attribute errors to correct address.</title>
<updated>2022-07-06T15:51:28Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-07-05T15:47:30Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=dd491931c8841f2eaed7fea19d6b0777e990a254'/>
<id>urn:sha1:dd491931c8841f2eaed7fea19d6b0777e990a254</id>
<content type='text'>
Even when keys are relevant, we still don't want to attribute errors
to a set of addresses when we have a single address that we're
connected with.
</content>
</entry>
</feed>
