aboutsummaryrefslogtreecommitdiff
path: root/crates/arti-rpcserver/src
Commit message (Collapse)AuthorAgeFilesLines
...
* | 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
|
* arti-rpcserver: move inherent authentication to its own module.Nick Mathewson2025-01-152-69/+83
|
* arti-rpcserver: remove some dead code.Nick Mathewson2025-01-151-57/+0
| | | | | Now that we have a solid idea of how connections happen, it's clear we won't need to enable this negotiation mechanism.
* Implement banner for RPC protocol.Nick Mathewson2025-01-091-2/+12
| | | | Closes #1753
* clippy: deny `mod_module_files`Steven Engler2025-01-061-0/+1
| | | | | | Denies 'mod.rs' files for consistency. https://rust-lang.github.io/rust-clippy/master/index.html#mod_module_files
* add_warnings, *: Allow clippy::needless_lifetimesNick Mathewson2024-12-031-0/+1
| | | | | | | | In 1.83, this warning triggers on many of our crates. We're thinking of fixing them all, but for now, we're going to disable the warning. This is part of #1765.
* Remove echo structsNeel Chauhan2024-10-251-14/+0
|
* arti-rpcserver: Remove echo_on_sessionNeel Chauhan2024-10-251-12/+0
|
* rpc: Tweak release_owned to give an error on second removal of "connection".Nick Mathewson2024-10-231-16/+20
|
* rpc: Use a const for the "connection" object ID.Nick Mathewson2024-10-231-2/+9
|