summaryrefslogtreecommitdiff
path: root/crates/arti-rpcserver/src
Commit message (Collapse)AuthorAgeFilesLines
* rpc: Clean up GlobalId decoding API.Nick Mathewson2025-08-273-18/+32
|
* rpc: Cleanups to GlobalId tag byte handling.Nick Mathewson2025-08-272-7/+15
|
* Tag byte corrections and don't crashNeel Chauhan2025-08-271-8/+2
|
* '$' as tag byteNeel Chauhan2025-08-272-2/+2
|
* Update docsNeel Chauhan2025-08-271-3/+2
|
* Use a 'G' prefixNeel Chauhan2025-08-272-5/+7
|
* arti-rpcserver: Check IDs with a tag byte, not a magic lengthNeel Chauhan2025-08-272-7/+11
| | | | Edited-by: Nick Mathewson <[email protected]>
* proto: Move the `stream` module under `client` (breaking).Gabriela Moldovan2025-08-181-1/+1
| | | | | | | | | | | | The `stream` module is client-specific, for the most part, so I am moving it under `client`. Later on, we will factor out the parts that can be shared with the relay implementation. Note: this is a breaking change as the deleted `stream` module was `pub`. We could've kept the module and reexported from it the public types from `tor_proto::client::stream`, but I think it's better to have this `client` namespacing, because it makes the separation between the client and relay parts clearer.
* Switch Cargo.toml files to edition 2024.Nick Mathewson2025-08-0710-16/+16
| | | | | | | | | | | | | | First, run ``` git grep -l "^edition =" | xargs perl -i -pe 's/^edition *=.*/edition = "2024"/;' ``` Second, manually verify that all Cargo.toml files have changed, and nothing else has changed. Third, run cargo fmt again.
* Temporarily suppress mismatched_lifetime_syntaxes.Gabriela Moldovan2025-07-071-0/+1
| | | | See #2060.
* rpcserver: Fix another ceil_div warningNick Mathewson2025-04-071-2/+1
|
* Add some allow(unused)Ian Jackson2025-03-271-0/+3
| | | | | Fixes several warnings from cargo check --workspace --no-default-features
* 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
| |