<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-rpcbase/src/method.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-15T02:11:18Z</updated>
<entry>
<title>tor-rpcbase: Removed dependency on `once_cell`</title>
<updated>2025-06-15T02:11:18Z</updated>
<author>
<name>hashcatHitman</name>
<email>3924-hashcatHitman@gitlab.torproject.org</email>
</author>
<published>2025-06-15T02:04:27Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8c7cb12c3b7ef20d2a47ec11aaef5ca610ee03ff'/>
<id>urn:sha1:8c7cb12c3b7ef20d2a47ec11aaef5ca610ee03ff</id>
<content type='text'>
- Replaced `once_cell::sync::Lazy` with `std::sync::LazyLock`.

Signed-off-by: hashcatHitman &lt;3924-hashcatHitman@gitlab.torproject.org&gt;
</content>
</entry>
<entry>
<title>rpcbase: Make recognized namespace list optional.</title>
<updated>2025-01-27T21:10:47Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-01-27T18:39:00Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=1d251c1e685b5c5afc4666e75293b62e8619d958'/>
<id>urn:sha1:1d251c1e685b5c5afc4666e75293b62e8619d958</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rpcbase: Move is_valid_rpc_identifier to crate root.</title>
<updated>2025-01-27T21:10:47Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-01-27T18:36:39Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=685702a9055459641dac6b830ceacff244f0f5ac'/>
<id>urn:sha1:685702a9055459641dac6b830ceacff244f0f5ac</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rpc: Rename InvalidMethodName to InvalidRpcIdentifier.</title>
<updated>2025-01-27T18:33:33Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-01-27T18:33:33Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ee9c39ba6e35769a21d3010e44124d59206009b4'/>
<id>urn:sha1:ee9c39ba6e35769a21d3010e44124d59206009b4</id>
<content type='text'>
We're about to use this error type for other things too.
</content>
</entry>
<entry>
<title>Remove RPC TODO about bypass_method_dispatch method.</title>
<updated>2025-01-27T18:27:38Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-01-27T18:27:38Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=7b2eea9eeaea852c31362eddc683a747a74d3263'/>
<id>urn:sha1:7b2eea9eeaea852c31362eddc683a747a74d3263</id>
<content type='text'>
There was formally a redundant method of this name, which could get
out-of-sync with invoke_without_dispatch.  But now that method is
gone, and this TODO is wrong.
</content>
</entry>
<entry>
<title>rpc: Make cancel requests uncancellable.</title>
<updated>2025-01-23T00:39:58Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-01-22T14:08:29Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8937200fbaeca090b51e7400aee5813a97e6d468'/>
<id>urn:sha1:8937200fbaeca090b51e7400aee5813a97e6d468</id>
<content type='text'>
The current cancel code is prone to deadlock, so the easiest way to
solve it appears to be making cancel requests themselves
uncancellable.

I've included a test to verify the behavior; previously, this test
caused a deadlock.
</content>
</entry>
<entry>
<title>rpc: Simplify method-dispatch-bypass logic a bit</title>
<updated>2024-10-24T01:35:05Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-10-24T00:33:55Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=eb1d9acd10c5d500f56d637a7bba3acdd67dc9e8'/>
<id>urn:sha1:eb1d9acd10c5d500f56d637a7bba3acdd67dc9e8</id>
<content type='text'>
This commit removes the separate function for asking whether to
bypass the dispatch code.  Instead, it gives the "invoke with
bypass" function an error to return when no dispatch is warranted,
and moves the whole responsibility for method dispatch or
non-dispatch back into tor-rpcbase.

I had to add an ObjectId argument to `invoke_rpc_method` to make
this work, but that's probably a good thing.

Additionally, this commit tweaks the derive-deftly macro to prevent
you from asking for dispatch bypass on special methods, where it
isn't implemented (and doesn't really make sense).
</content>
</entry>
<entry>
<title>rpc: Add a mechanism for method that bypass regular dispatch</title>
<updated>2024-10-24T01:35:05Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-10-22T13:50:00Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d6367f61169fd21830aeb37d8952b9f6792cb115'/>
<id>urn:sha1:d6367f61169fd21830aeb37d8952b9f6792cb115</id>
<content type='text'>
I'm about to use this for rpc:release, which is special
because it doesn't actually look at the type of the object that it's
invoked on.  Later it might be useful for manipulating weakrefs,
cloning referenes, detecting reference equality, etc.
</content>
</entry>
<entry>
<title>rpcbase: Facility for looking up RPC method information</title>
<updated>2024-08-13T00:19:20Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-08-12T14:09:54Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5883a585d74e2e95a13fd804b3281f72dd57525b'/>
<id>urn:sha1:5883a585d74e2e95a13fd804b3281f72dd57525b</id>
<content type='text'>
We'll need this to refer to the names of RPC methods as visible to
the caller, and to cross-reference them  with their related types.
</content>
</entry>
<entry>
<title>rpc: Refactor errors part 1: a new RpcMethod trait.</title>
<updated>2024-07-25T12:43:30Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-07-23T17:23:58Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c7c630c44d9e937d7185f591d75fd42c33ab5238'/>
<id>urn:sha1:c7c630c44d9e937d7185f591d75fd42c33ab5238</id>
<content type='text'>
It is no longer necessary to say, for every RPC method,
that its error type is RpcError.
</content>
</entry>
</feed>
