summaryrefslogtreecommitdiff
path: root/crates/arti-rpcserver/src
Commit message (Collapse)AuthorAgeFilesLines
* rpcserver: Increase coverage in msgs modulevcrn2025-03-241-6/+25
|
* squash! Upgrade rand dependency to 0.9.Nick Mathewson2025-03-183-5/+5
| | | | - The Rng::gen() functions have been renamed to Rng::random().
* squash! Upgrade rand dependency to 0.9.Nick Mathewson2025-03-185-7/+7
| | | | - `rand::thread_rng()` has been deprecated and renamed to `rand::rng()`
* tor-rtmock: allow-Decorate every use of MockSleepProviderIan Jackson2025-03-061-0/+1
| | | | | | | MockSleepProvider and MockSleepRuntime have been declared deprecated by the docs for some time. We're about to mark them `#[deprecated]`. This commit has been split out for clarity of review.
* arti-rpcserver: Fix operator precedence warning.Gabriela Moldovan2025-02-241-1/+1
| | | | | This fixes an "operator precedence can trip the unwary" warning that showed up after I updated my toolchain to 1.85.
* Merge branch 'rpc_document_internal_optimism' into 'main'Nick Mathewson2025-01-301-2/+17
|\ | | | | | | | | | | | | rpc: Document what is actually going on with stream optimism. Closes #1583 See merge request tpo/core/arti!2753
| * rpc: Document what is actually going on with stream optimism.Nick Mathewson2025-01-301-2/+17
| | | | | | | | | | | | | | | | In brief: we _do_ correct implement correct optimistic vs nonoptimistic behavior for RPC streams. Only our documentation was wrong. Subsequent commits will fix our documentation more. See #1583.
* | proto: Rename (experimental) DataStream functions for ctrl accessNick Mathewson2025-01-301-1/+5
| | | | | | | | | | Since these return a client-specific type, they need a client-specific name before we can stabilize them for RPC.
* | proto: Rename DataStreamCtrl to ClientDataStreamCtrlNick Mathewson2025-01-301-5/+5
| | | | | | | | | | | | The API for this type, and the fact that it implements ClientStreamCtrl unconditionally, means that it is only for client DataStreams.
* | fix: fix typosDimitris Apostolou2025-01-301-1/+1
|/
* rpcserver: Remove a stale TODO. (RpcMgr works.)Nick Mathewson2025-01-281-2/+0
|
* rpcserver: Remove stale TODO about authenticationNick Mathewson2025-01-281-3/+0
| | | | (This TODO dates back to the point before we had sessions.)
* rpcserver: Improve conversion of authentication error.Nick Mathewson2025-01-282-7/+14
|
* rpc: Remove auth:query.Nick Mathewson2025-01-281-53/+0
| | | | | Nothing uses it; its role in negotiation has been replaced by the connect-point design.
* rpcserver: Remove a stale TODO about ConnectionId.Nick Mathewson2025-01-281-3/+0
| | | | Other parts of the crate no longer look at the .0 field directly.
* Merge branch 'rpc-references-cleanup' into 'main'Nick Mathewson2025-01-283-167/+199
|\ | | | | | | | | rpc: Move support for weak references behind an experimental feature See merge request tpo/core/arti!2742
| * rpc: Move support for weak references behind an experimental featureNick Mathewson2025-01-273-167/+199
| | | | | | | | | | We haven't decided how these should work (see #868), so having them present by default is a bad idea.
* | Merge branch 'strongrefs_are_not_deduped' into 'main'Nick Mathewson2025-01-282-2/+8
|\ \ | | | | | | | | | | | | rpc: Clean up comments surrounding strong references See merge request tpo/core/arti!2741
| * | rpc: Clean up comments surrounding strong referencesNick Mathewson2025-01-272-2/+8
| |/ | | | | | | They used to be deduplicated, but they haven't been for a while.
* | rpcbase: Enforce validity on error datum keywords.Nick Mathewson2025-01-271-1/+2
| |
* | rpc: Rename InvalidMethodName to InvalidRpcIdentifier.Nick Mathewson2025-01-271-3/+3
|/ | | | We're about to use this error type for other things too.
* Merge branch 'rpc-todos-1' into 'main'Nick Mathewson2025-01-232-20/+3
|\ | | | | | | | | rpc: Resolve a couple of dead code TODOs See merge request tpo/core/arti!2731
| * rpcserver: remove dead code exception in objmap.rsNick Mathewson2025-01-221-3/+1
| |
| * rpcserver: remove dead code in codecs.rsNick Mathewson2025-01-221-17/+2
| |
* | Document more that cancel is uncancellable.Nick Mathewson2025-01-221-0/+2
| |
* | rpc: Correct RPC error code for "RequestNotFound".Nick Mathewson2025-01-221-1/+4
| |
* | cancel: Distinguish the internal-error case for double-cancel.Nick Mathewson2025-01-221-2/+23
| |
* | cancel: Document deadlock/panic issue and how to avoid it.Nick Mathewson2025-01-221-2/+19
| |
* | rpc: Make cancel requests uncancellable.Nick Mathewson2025-01-222-27/+56
| | | | | | | | | | | | | | | | | | 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.
* | cancel: Add a TODO about moving the Future inside the lock.Nick Mathewson2025-01-221-0/+5
| |
* | Cancel: Drop lock before calling waker.Nick Mathewson2025-01-221-0/+1
| |
* | cancel: Remove FusedFuture implementation.Nick Mathewson2025-01-221-12/+1
| | | | | | | | | | | | | | Nothing used it, and it has some semantic complexity. (see https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2722#note_3149591 )
* | cancel: Use Waker::clone_from to avoid needless clones.Nick Mathewson2025-01-221-1/+9
| | | | | | | | | | | | The Waker::clone_from implementation uses Waker::will_wake to avoid unnecessarily cloning a Waker that it already has a copy of.
* | rpc: Implement the rpc:cancel command.Nick Mathewson2025-01-162-1/+79
| |
* | rpc: Better RpcErrorKind for for RequestCancelled.Nick Mathewson2025-01-161-4/+7
| |
* | rpc: Strengthen guarantees from Cancel.Nick Mathewson2025-01-161-20/+124
|/ | | | | | | | | | | Cancellation is now fallable, which allows us to detect attempts to cancel which cannot work. We now guarantee that when you try to cancel a `Cancel<F>` future, either the cancel operation will succeed, or the future will return (or will have already returned) Ok(), but not both, and not neither. Closes #818.
* Merge branch 'rpc-clean-up-after-auth' into 'main'Nick Mathewson2025-01-151-0/+5
|\ | | | | | | | | rpclib: Clean up after performing cookie auth See merge request tpo/core/arti!2716
| * rpc: More documentation on cookie_continue.Nick Mathewson2025-01-151-0/+5
| |
* | Merge branch 'rpc-renaming-2' into 'main'Nick Mathewson2025-01-152-62/+56
|\ \ | | | | | | | | | | | | | | | | | | rpc: Rename new_stream_handle to new_oneshot_client. Closes #1664 See merge request tpo/core/arti!2715
| * | rpc: Clean up documenation surrounding OneshotClientNick Mathewson2025-01-151-11/+13
| | |
| * | rpc: Rename new_stream_handle to new_oneshot_client.Nick Mathewson2025-01-152-52/+44
| |/ | | | | | | | | | | | | | | This method doesn't actually create a new stream; it creates a single-use client object that can be used with SOCKS to launch a new stream, and capture an RPC object for that stream. Closes #1664.
* / arti-rpcserver: Rename MethodNotFound to NoSuchMethod.Nick Mathewson2025-01-153-4/+4
|/ | | | Closes #1500.
* rpc: Clarify auth-repetition rules.Nick Mathewson2025-01-151-2/+5
|
* rpc: Document cookie messages a little more.Nick Mathewson2025-01-151-1/+14
|
* rpc: Refactor Cookie and UnloadedCookie into a single type.Nick Mathewson2025-01-152-2/+11
|
* rpc: consolodate naming of "inherent" auth.Nick Mathewson2025-01-152-9/+13
| | | | | | | | | We don't want to call this "unix path" anywhere, since it corresponds to _any_ case where the ability to negotiate a successful connection means that the client is authorized. We also don't want to call it "none": The authentication is inherent to the connection, not nonexistent.
* rpc: Tweak cookie protocol to bind both nonces.Nick Mathewson2025-01-151-4/+9
| | | | | | | | | | Previously participants in the cookie protocol only bound the peer nonce in their MACs. With this change, they bind both nonces. This change is _probably_ not necessary for security, but it can't hurt. It follows a general principle that Adam Langley told me a long time ago: you won't regret binding more, but you might regret binding less.
* rpc: Keep Cookie in an Arc.Nick Mathewson2025-01-151-2/+2
| | | | | Since this is a secret value, it's probably best not to copy it all over the place.
* arti-rpcserver: Server side of cookie auth.Nick Mathewson2025-01-153-8/+189
|
* arti-rpcserver: Tell connections what kind of auth to expect.Nick Mathewson2025-01-154-14/+32
|