<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-circmgr/src/impls.rs, branch arti-v1.2.8</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.2.8</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.2.8'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2024-09-24T13:45:21Z</updated>
<entry>
<title>CircMgr: Make CircMgr and HsCircPool generic over builder type.</title>
<updated>2024-09-24T13:45:21Z</updated>
<author>
<name>Wesley Aptekar-Cassels</name>
<email>me@wesleyac.com</email>
</author>
<published>2024-09-16T16:35:37Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e6f0b59e595f5ab5bd8d58d3c6aab8dface9a851'/>
<id>urn:sha1:e6f0b59e595f5ab5bd8d58d3c6aab8dface9a851</id>
<content type='text'>
This will allow for testing, as the CircuitBuilder can be replaced with
a mocked version.

This did require moving some of what was in the CircuitBuilder impl into
the AbstractCircuitBuilder type, since Drop implementations can't be
specialized, but that's fine, as we'll probably be doing more of that in
the future anyways.
</content>
</entry>
<entry>
<title>tor-circmgr: Remove AbstractSpec and FakeSpec.</title>
<updated>2024-09-16T14:57:33Z</updated>
<author>
<name>Wesley Aptekar-Cassels</name>
<email>me@wesleyac.com</email>
</author>
<published>2024-09-11T17:36:31Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a7d7933ffe86dd0f85f58f219860cd3e576aafdf'/>
<id>urn:sha1:a7d7933ffe86dd0f85f58f219860cd3e576aafdf</id>
<content type='text'>
AbstractSpec and FakeSpec actually make testing more difficult, since
they prevent using FakeBuilder in code that relies on the concrete
TargetCircUsage and SupportedCircUsage types. Removing them means
FakeBuilder can be used in more places, and also means that the test
code is closer to the real code, since TargetCircUsage and
SupportedCircUsage are now exercised directly in more tests.

This did require making one change to a test, which I think was
previously testing behaviour that was true for FakeSpec but not for the
real code:

The mgr::test::isolated test previously asserted that, in the case where
three circuits were requested, two with isolation and one without, the
non-isolated circuit would be shared with one of the isolated circuits.

This was allowed by the FakeSpec::supports function. However, in the
actual code, the path is as follows:

* AbstractCircMgr::get_or_launch
* AbstractCircMgr::prepare_action
* CircList::find_open
* AbstractSpec::find_supported
* abstract_spec_find_supported
* OpenEntry::supports
* SupportedCircUsage::supports
* StreamIsolation::compatible_same_type

StreamIsolation::compatible_same_type checks owner_type, which is
always zero for non-isolated streams and always non-zero for isolated
streams, meaning that a isolated stream will never be compatible with a
non-isolated stream. The seems like desirable behaviour, so I simply
modified the test to make four connections, two isolated and two not,
and checked that the isolated streams never share any circuits, and that
the two non-isolated streams use the same circuit. As far as I can tell,
this is the intended behaviour in the existing code.
</content>
</entry>
<entry>
<title>tor-circmgr: make `GuardMgr` mandatory</title>
<updated>2024-08-13T00:21:53Z</updated>
<author>
<name>Steven Engler</name>
<email>smengler3@gmail.com</email>
</author>
<published>2024-08-13T00:09:27Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=acf1e81bb8621ec322ebd56b89c47c28958d3bfb'/>
<id>urn:sha1:acf1e81bb8621ec322ebd56b89c47c28958d3bfb</id>
<content type='text'>
Functions that took `Option&lt;&amp;GuardMgr&gt;` now take only `&amp;GuardMgr`.

Three unit tests were removed that covered behaviour when no guard
manager was set.
</content>
</entry>
<entry>
<title>tor-circmgr: Remove addressed TODO.</title>
<updated>2024-04-05T11:16:11Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2024-03-22T18:52:02Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=50c68d3d95a4a550d245ca5f20005815c5107cbf'/>
<id>urn:sha1:50c68d3d95a4a550d245ca5f20005815c5107cbf</id>
<content type='text'>
This was addressed in !2046, but I forgot to remove the TODO.
</content>
</entry>
<entry>
<title>tor-circmgr: Give pick_path a VanguardMgr.</title>
<updated>2024-03-20T17:48:14Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2024-03-14T20:01:33Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=dd3def1438ad3237b78adcf74f6bbe9fe1ea2257'/>
<id>urn:sha1:dd3def1438ad3237b78adcf74f6bbe9fe1ea2257</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-circmgr: Add more vanguards TODOs.</title>
<updated>2024-03-20T17:48:14Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2024-03-13T18:41:28Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=6a6d4e880b8b22d941691bec49972002bc772085'/>
<id>urn:sha1:6a6d4e880b8b22d941691bec49972002bc772085</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-circmgr: Add UniqId to Error::GuardNotUsable.</title>
<updated>2024-02-27T17:01:28Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2024-02-27T12:07:18Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=b8ed629e66a896fe84b989d6123913bc00cd65d6'/>
<id>urn:sha1:b8ed629e66a896fe84b989d6123913bc00cd65d6</id>
<content type='text'>
Part of #1297
</content>
</entry>
<entry>
<title>Refactor ClientCirc APIs to use Arc&lt;ClientCirc&gt;.</title>
<updated>2023-05-16T13:02:09Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-05-16T13:02:09Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ee390c423e7df0b678d77a8685f45dc526581910'/>
<id>urn:sha1:ee390c423e7df0b678d77a8685f45dc526581910</id>
<content type='text'>
Now ClientCirc is no longer `Clone`, and the things that need it
to be `Clone` instead return and use an Arc&lt;ClientCirc&gt;
We're doing this so that ClientCirc can participate in the RPC
system, and so that its semantics are more obvious.

Closes #846.

Thanks to the type system, this was a much simpler refactoring than
I had feared it would be.
</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>squash! Bump every crate's edition to 2021.</title>
<updated>2022-04-25T17:06:26Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-04-25T16:40:33Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2f6bc6bdc431fa36de70a167eea777dcf3f60bf2'/>
<id>urn:sha1:2f6bc6bdc431fa36de70a167eea777dcf3f60bf2</id>
<content type='text'>
Remove all `use` statements for `TryFrom` and `TryInto`.  These are
now redundant in Rust 2021.
</content>
</entry>
</feed>
