| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| | * | rpc: Move support for weak references behind an experimental feature | Nick Mathewson | 2025-01-27 | 3 | -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 Mathewson | 2025-01-28 | 2 | -2/+8 | |
| |\ \ | | | | | | | | | | | | | rpc: Clean up comments surrounding strong references See merge request tpo/core/arti!2741 | |||||
| | * | | rpc: Clean up comments surrounding strong references | Nick Mathewson | 2025-01-27 | 2 | -2/+8 | |
| | |/ | | | | | | | They used to be deduplicated, but they haven't been for a while. | |||||
| * | | rpcbase: Enforce validity on error datum keywords. | Nick Mathewson | 2025-01-27 | 1 | -1/+2 | |
| | | | ||||||
| * | | rpc: Rename InvalidMethodName to InvalidRpcIdentifier. | Nick Mathewson | 2025-01-27 | 1 | -3/+3 | |
| |/ | | | | We're about to use this error type for other things too. | |||||
| * | Merge branch 'rpc-todos-1' into 'main' | Nick Mathewson | 2025-01-23 | 2 | -20/+3 | |
| |\ | | | | | | | | | rpc: Resolve a couple of dead code TODOs See merge request tpo/core/arti!2731 | |||||
| | * | rpcserver: remove dead code exception in objmap.rs | Nick Mathewson | 2025-01-22 | 1 | -3/+1 | |
| | | | ||||||
| | * | rpcserver: remove dead code in codecs.rs | Nick Mathewson | 2025-01-22 | 1 | -17/+2 | |
| | | | ||||||
| * | | Document more that cancel is uncancellable. | Nick Mathewson | 2025-01-22 | 1 | -0/+2 | |
| | | | ||||||
| * | | rpc: Correct RPC error code for "RequestNotFound". | Nick Mathewson | 2025-01-22 | 1 | -1/+4 | |
| | | | ||||||
| * | | cancel: Distinguish the internal-error case for double-cancel. | Nick Mathewson | 2025-01-22 | 1 | -2/+23 | |
| | | | ||||||
| * | | cancel: Document deadlock/panic issue and how to avoid it. | Nick Mathewson | 2025-01-22 | 1 | -2/+19 | |
| | | | ||||||
| * | | rpc: Make cancel requests uncancellable. | Nick Mathewson | 2025-01-22 | 2 | -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 Mathewson | 2025-01-22 | 1 | -0/+5 | |
| | | | ||||||
| * | | Cancel: Drop lock before calling waker. | Nick Mathewson | 2025-01-22 | 1 | -0/+1 | |
| | | | ||||||
| * | | cancel: Remove FusedFuture implementation. | Nick Mathewson | 2025-01-22 | 1 | -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 Mathewson | 2025-01-22 | 1 | -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 Mathewson | 2025-01-16 | 2 | -1/+79 | |
| | | | ||||||
| * | | rpc: Better RpcErrorKind for for RequestCancelled. | Nick Mathewson | 2025-01-16 | 1 | -4/+7 | |
| | | | ||||||
| * | | rpc: Strengthen guarantees from Cancel. | Nick Mathewson | 2025-01-16 | 1 | -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 Mathewson | 2025-01-15 | 1 | -0/+5 | |
| |\ | | | | | | | | | rpclib: Clean up after performing cookie auth See merge request tpo/core/arti!2716 | |||||
| | * | rpc: More documentation on cookie_continue. | Nick Mathewson | 2025-01-15 | 1 | -0/+5 | |
| | | | ||||||
| * | | Merge branch 'rpc-renaming-2' into 'main' | Nick Mathewson | 2025-01-15 | 2 | -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 OneshotClient | Nick Mathewson | 2025-01-15 | 1 | -11/+13 | |
| | | | | ||||||
| | * | | rpc: Rename new_stream_handle to new_oneshot_client. | Nick Mathewson | 2025-01-15 | 2 | -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 Mathewson | 2025-01-15 | 3 | -4/+4 | |
| |/ | | | | Closes #1500. | |||||
| * | rpc: Clarify auth-repetition rules. | Nick Mathewson | 2025-01-15 | 1 | -2/+5 | |
| | | ||||||
| * | rpc: Document cookie messages a little more. | Nick Mathewson | 2025-01-15 | 1 | -1/+14 | |
| | | ||||||
| * | rpc: Refactor Cookie and UnloadedCookie into a single type. | Nick Mathewson | 2025-01-15 | 2 | -2/+11 | |
| | | ||||||
| * | rpc: consolodate naming of "inherent" auth. | Nick Mathewson | 2025-01-15 | 2 | -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 Mathewson | 2025-01-15 | 1 | -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 Mathewson | 2025-01-15 | 1 | -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 Mathewson | 2025-01-15 | 3 | -8/+189 | |
| | | ||||||
| * | arti-rpcserver: Tell connections what kind of auth to expect. | Nick Mathewson | 2025-01-15 | 4 | -14/+32 | |
| | | ||||||
| * | arti-rpcserver: move inherent authentication to its own module. | Nick Mathewson | 2025-01-15 | 2 | -69/+83 | |
| | | ||||||
| * | arti-rpcserver: remove some dead code. | Nick Mathewson | 2025-01-15 | 1 | -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 Mathewson | 2025-01-09 | 1 | -2/+12 | |
| | | | | | Closes #1753 | |||||
| * | clippy: deny `mod_module_files` | Steven Engler | 2025-01-06 | 1 | -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_lifetimes | Nick Mathewson | 2024-12-03 | 1 | -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 structs | Neel Chauhan | 2024-10-25 | 1 | -14/+0 | |
| | | ||||||
| * | arti-rpcserver: Remove echo_on_session | Neel Chauhan | 2024-10-25 | 1 | -12/+0 | |
| | | ||||||
| * | rpc: Tweak release_owned to give an error on second removal of "connection". | Nick Mathewson | 2024-10-23 | 1 | -16/+20 | |
| | | ||||||
| * | rpc: Use a const for the "connection" object ID. | Nick Mathewson | 2024-10-23 | 1 | -2/+9 | |
| | | ||||||
| * | rpc: Simplify method-dispatch-bypass logic a bit | Nick Mathewson | 2024-10-23 | 2 | -9/+2 | |
| | | | | | | | | | | | | | | | | 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). | |||||
| * | rpc: Add support for dropping the special "connection" object ID. | Nick Mathewson | 2024-10-23 | 1 | -9/+19 | |
| | | ||||||
| * | rpc: Move "rpc:release" to be a method on the rpc object. | Nick Mathewson | 2024-10-23 | 1 | -24/+24 | |
| | | | | | | | | Now, instead of telling the session or the connection to drop the object ID, we tell the object ID to go away. Closes #1663. | |||||
| * | rpcserver: detect and use methods that bypass method dispatch. | Nick Mathewson | 2024-10-23 | 1 | -3/+8 | |
| | | ||||||
| * | rpc: Remove unimplemented rpc:downgrade method for now. | Nick Mathewson | 2024-10-23 | 1 | -9/+0 | |
| | | | | | | If and when we implement this, it will likely be different; arti#868 has some thoughts on the implications. | |||||
| * | rpc: Move some object-id-manipulation methods to a new module. | Nick Mathewson | 2024-10-23 | 3 | -50/+63 | |
| | | | | | | These will have different implementations soon; this is a more logical place for them. | |||||
| * | Merge branch 'arti-rpcserver-comment' into 'main' | wesleyac | 2024-10-21 | 1 | -1/+1 | |
| |\ | | | | | | | | | Fix typo in arti-rpcserver auth.rs comment See merge request tpo/core/arti!2558 | |||||
