<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-chanmgr/src/factory.rs, branch arti-v1.1.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.1.1</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.1.1'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2022-11-30T18:05:46Z</updated>
<entry>
<title>Rename TransportHelper =&gt; TransportImplHelper.</title>
<updated>2022-11-30T18:05:46Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-11-30T18:05:46Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=acc2de7b31625c5c9664eca3d699686ae4601c8f'/>
<id>urn:sha1:acc2de7b31625c5c9664eca3d699686ae4601c8f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Abolish ChanMgr::set_default_transport</title>
<updated>2022-11-30T16:00:31Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-11-30T16:00:31Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ab74506dc9c0a048f0101e6d802054a383b55cee'/>
<id>urn:sha1:ab74506dc9c0a048f0101e6d802054a383b55cee</id>
<content type='text'>
The comment says
  // TODO pt-client: It's not clear to me that we really need this method.
and empirically, deleting it, and its callee, is fine.
</content>
</entry>
<entry>
<title>chanmgr: Report Pt errors correctly.</title>
<updated>2022-11-29T16:10:26Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-11-29T16:10:26Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4fff9f9dda33ffdbc74694b1c4484bf004a01f3e'/>
<id>urn:sha1:4fff9f9dda33ffdbc74694b1c4484bf004a01f3e</id>
<content type='text'>
We were panicking if the PtMgr gave us an error, which isn't so
good.
</content>
</entry>
<entry>
<title>tor-chanmgr: Introduce the BootstrapReporter API, publicize ChanBuilder</title>
<updated>2022-11-28T18:52:21Z</updated>
<author>
<name>eta</name>
<email>tor@eta.st</email>
</author>
<published>2022-11-28T15:32:56Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a3c9fc5b1aa9f1072448fdea336f561b71ce1176'/>
<id>urn:sha1:a3c9fc5b1aa9f1072448fdea336f561b71ce1176</id>
<content type='text'>
This commit makes the `ChanBuilder` type in `tor-chanmgr` usable by
consumers outside of that crate, like the doc comment for
`ChannelFactory` says you need to be able to do in order to turn your
`TransportHelper` into something useful.

As part of doing this, the `event_sender` its constructor takes needed
to be dealt with, since it was a crate-internal type that came from
inside the `ChanMgr`.

Enter `BootstrapReporter`: an opaque wrapper around that sender, now
provided as an additional argument to
`ChannelFactory::connect_via_transport`. You can now construct a
`ChanBuilder` outside this crate, and it'll still be able to report its
bootstrap status by unwrapping this new type that's threaded through
from the `ChanMgr`. (This was a fair deal of manually threading the type
through all the layers in this crate!)

Note that you cannot implement bootstrap updating using something that
isn't `ChanBuilder` yet due to the type being entirely opaque (but, of
course, we can figure out exactly what API the reporter should have
later, and add that capability in).
</content>
</entry>
<entry>
<title>Draft: Pluggable transport manager</title>
<updated>2022-11-28T18:52:21Z</updated>
<author>
<name>eta</name>
<email>tor@eta.st</email>
</author>
<published>2022-11-22T16:24:15Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=3b41c78d6fc5eceac3b45ea9ef1540b72f9b4004'/>
<id>urn:sha1:3b41c78d6fc5eceac3b45ea9ef1540b72f9b4004</id>
<content type='text'>
This commit implements `PtMgr`, a pluggable transport manager
responsible for keeping track of spawned PTs and spawning them to
satisfy client requests on demand.

It does this in two parts: the `PtMgr` type exported to the rest of the
code, and the background `PtReactor` that actually does the spawning;
this design ensures that only one attempt to spawn a PT is active at a
time, and will prove useful later for implementing e.g. timeouts.

A few changes were necessary to the rest of the code in order to make
this all work out. Namely:
- `TransportRegistry`'s API didn't make any sense for two reasons:
  - It wasn't feasible for implementors to implement `ChannelFactory`,
    since that'd require constructing a `ChanBuilder` (which requires a
    bootstrap reporting event sender).
  - Treating the PT manager as a registry is over-general; it's only
    necessary for it to spawn pluggable transports, so saddling it with
    other concerns didn't make any sense.
  - (It's possible to get extensibility for arbitrary user customization
    by just letting the user swap in a new `ChannelFactory`, anyway.)
- Therefore, the `PtMgr` implements the new `AbstractPtMgr` trait, which
  is far more narrowly focused; this only exists to solve a dependency
  loop, and is documented as such.
  - This provides a `TransportHelper` instead of a `ChannelFactory`.
</content>
</entry>
<entry>
<title>ChanMgr: Another attempt to build on CI.</title>
<updated>2022-11-23T16:25:15Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-11-23T16:25:15Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=3f5699b95a9b74ae0acd3e2fe0ed3bdcd4f2359c'/>
<id>urn:sha1:3f5699b95a9b74ae0acd3e2fe0ed3bdcd4f2359c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ChanMgr: Rename Factory -&gt; CompoundFactory</title>
<updated>2022-11-23T16:10:34Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-11-23T16:03:03Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=74ebc904e37110380d28c4b36a914522761d0e20'/>
<id>urn:sha1:74ebc904e37110380d28c4b36a914522761d0e20</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ChanMgr: Fix a few more conditional-compilation issues</title>
<updated>2022-11-23T16:10:34Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-11-23T16:01:00Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=1249bedbb0d58c9c4f11c0e9bd589ea5587e47f8'/>
<id>urn:sha1:1249bedbb0d58c9c4f11c0e9bd589ea5587e47f8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ChanMgr: Remove Arc aliases.</title>
<updated>2022-11-23T16:10:34Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-11-23T15:55:59Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2fb36f55850aa569dbbdb61a91a7fe4600d2cf3b'/>
<id>urn:sha1:2fb36f55850aa569dbbdb61a91a7fe4600d2cf3b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make ChannelFactory and AbstractPtMgr require Send+Sync</title>
<updated>2022-11-23T16:10:34Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-11-23T15:42:34Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c04aa9baed34571a9aface8ad79704da4e4754cf'/>
<id>urn:sha1:c04aa9baed34571a9aface8ad79704da4e4754cf</id>
<content type='text'>
</content>
</entry>
</feed>
