<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/arti/src/rpc.rs, branch arti-v1.2.6</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.6</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.2.6'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2024-06-11T21:02:04Z</updated>
<entry>
<title>RPC: Use RPC methods instead of the "ClientConnectionTarget" trait.</title>
<updated>2024-06-11T21:02:04Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-06-04T17:22:30Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c07455965fd201ec66631e649a10660e5955e47c'/>
<id>urn:sha1:c07455965fd201ec66631e649a10660e5955e47c</id>
<content type='text'>
On its own, this might not seem like a huge improvement, but it will
later let us implement these RPC methods for types that can't
reasonably implement ClientConnectionTarget.

It also serves as a proof of concept that special-method invocation
can actually work, so that we can build things like this in cases
where introducing a trait isn't practical.

Closes #1427
</content>
</entry>
<entry>
<title>RPC: Give error from RpcMgr::new if method name is sufficiently bad.</title>
<updated>2024-05-14T13:49:44Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-14T13:46:02Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=9f50a947a9859535c02aa117fe1cd4fea4fff09b'/>
<id>urn:sha1:9f50a947a9859535c02aa117fe1cd4fea4fff09b</id>
<content type='text'>
(We don't give an error about unrecognized namespaces (for now),
since we have no way to opt in to them.)
</content>
</entry>
<entry>
<title>RPC: Enforce method name format.</title>
<updated>2024-05-14T13:39:47Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-14T13:35:19Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8da4b96991c01ff16bd1194bca77d9bedf0bb9fa'/>
<id>urn:sha1:8da4b96991c01ff16bd1194bca77d9bedf0bb9fa</id>
<content type='text'>
We need to do this carefully, since we want our system to be
extensible with new namespaces.

First, when we are constructing an RpcMgr, we _warn_ about any
method names that are misformed.

Second, we add a test in the `arti` crate to fail if any method
names are invalid.  This will only catch method names in crates that
`arti` depends on.
</content>
</entry>
<entry>
<title>RPC: RpcDataStream type to act as a "stream-shaped hole"</title>
<updated>2024-05-14T12:04:03Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-10T01:32:03Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d014d60e9e5fe439846e4c05fdd8e73bfc67a1fd'/>
<id>urn:sha1:d014d60e9e5fe439846e4c05fdd8e73bfc67a1fd</id>
<content type='text'>
The application creates these, using a new-stream-handle RPC command,
on an object that can actually create streams.

Then later, the application provides the (global) identity of one of
these objects when it's making a SOCKS connection.  This causes the
object to take hold of a `DataStreamCtrl`.
</content>
</entry>
<entry>
<title>TorClient: Slightly cleaner (?) interface for registering RPC methods.</title>
<updated>2024-05-06T13:12:08Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-01T13:37:53Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=1bc4064c835edaf972716563bc35b27b37d10703'/>
<id>urn:sha1:1bc4064c835edaf972716563bc35b27b37d10703</id>
<content type='text'>
</content>
</entry>
<entry>
<title>RPC: Implement methods to get and watch client bootstrap status.</title>
<updated>2024-05-06T13:12:08Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-04-25T14:10:04Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=7f9770aa50036d6c5ab01880a7f9e2dc0087364a'/>
<id>urn:sha1:7f9770aa50036d6c5ab01880a7f9e2dc0087364a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rpc: Give the session-creation function an argument.</title>
<updated>2023-06-15T15:50:12Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-06-15T15:50:12Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=9e8ad5415edfa6d422b6b91375b6723ce9da5704'/>
<id>urn:sha1:9e8ad5415edfa6d422b6b91375b6723ce9da5704</id>
<content type='text'>
This will later let us tell the session-creation function
how the authentication occurred, which will let it decide
what privileges to provide.
</content>
</entry>
<entry>
<title>rpc: revise session initialization a lot.</title>
<updated>2023-06-15T15:44:14Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-06-15T15:40:36Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2d28402fb796d89277079e6745f4a2908ac0c23a'/>
<id>urn:sha1:2d28402fb796d89277079e6745f4a2908ac0c23a</id>
<content type='text'>
Formerly, every time we wanted to launch a new connection, we had
to give the RpcMgr a TorClient.  The connection would hold that
TorClient until a session was authenticated, and then would wrap
it in a Session and put it in the object map.

Now, the RpcMgr holds a Box&lt;dyn Fn()...&gt; that knows how to
create Sessions.  When a connection is authenticated, it
asks the Mgr to make it a new session.  This lets us make it
clearer that the TorClient simply can't be given out until the
connection is authenticated.  Later, it will let us create
more types of Session objects under more complicated rules.
</content>
</entry>
<entry>
<title>RPC: rename new_session to new_connection</title>
<updated>2023-06-15T15:15:40Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-06-15T15:15:40Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=bd134525fd48d0b18451019da63e62cbe70669ab'/>
<id>urn:sha1:bd134525fd48d0b18451019da63e62cbe70669ab</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rpc: revise the relationship between Mgr and Connection</title>
<updated>2023-06-14T18:43:08Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-06-14T18:43:08Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=789953d8004e186e7c12dd39f310fbab6a267463'/>
<id>urn:sha1:789953d8004e186e7c12dd39f310fbab6a267463</id>
<content type='text'>
This adds a Weak reference from Connection to Mgr, makes DispatchTable
mutable, and makes a few other changes as discussed between me and
 Diziet the other week.

I bet we are not done tweaking this, but I hope it's a setp forwards.
</content>
</entry>
</feed>
