aboutsummaryrefslogtreecommitdiff
path: root/crates/arti-rpc-client-core
Commit message (Collapse)AuthorAgeFilesLines
...
* arti-rpc-client-core: Use EmptyReply instead of EmptyResponse.Gabriela Moldovan2025-01-231-2/+2
| | | | | | It looks like !2729 and !2722 raced with each other, because we're still using the old name for `EmptyReply` (and so `arti-rpc-client-core` doesn't currently compile on `main`).
* Merge branch 'rpc-cancel-2' into 'main'Nick Mathewson2025-01-234-9/+73
|\ | | | | | | | | | | | | rpc: Implement request cancellation Closes #818 See merge request tpo/core/arti!2722
| * arti-rpc-client-core: Document that dropping a request does not cancel it.Nick Mathewson2025-01-223-6/+8
| | | | | | | | | | | | | | I hope that this limitation is acceptable; the alternative involves some significant refactoring to give Request a Weak reference to RpcConn -- but RpcConn isn't currently kept in an Arc<> at all, and so we'd need some fairly heavy hacking.
| * arti-rpc-client-core: Implement and expose cancellation.Nick Mathewson2025-01-224-3/+65
| |
* | rpclib: Rename params/reply structs for consistency.Nick Mathewson2025-01-214-29/+28
|/ | | | | | | | Our now convention here in rpclib is that a struct holding a request's parameters is called `FooParams`, and a struct holding that request's reply is called `FooReply`. Closes #1586
* Merge branch 'rpc-connect-clarify' into 'main'Nick Mathewson2025-01-161-11/+41
|\ | | | | | | | | | | | | rpc: Clarify and fix some issues surrounding relative paths. Closes #1748 and #1749 See merge request tpo/core/arti!2712
| * rpc: Ignore non-absolute paths if they are default.Nick Mathewson2025-01-151-11/+41
| |
* | Merge branch 'rpc-clean-up-after-auth' into 'main'Nick Mathewson2025-01-154-13/+19
|\ \ | | | | | | | | | | | | rpclib: Clean up after performing cookie auth See merge request tpo/core/arti!2716
| * | Run cbindgen for changed warnings.Nick Mathewson2025-01-151-1/+1
| | |
| * | rpclib: Add a note about where cookie auth is documented.Nick Mathewson2025-01-151-0/+1
| | |
| * | rpclib: Clean up after performing cookie authNick Mathewson2025-01-153-12/+17
| | | | | | | | | | | | | | | | | | Previously we never released the intermediary cookie-auth object, which would have left it kicking around on the RPC server side until we finally closed our connection.
* | | rpc: Rename new_stream_handle to new_oneshot_client.Nick Mathewson2025-01-151-2/+5
|/ / | | | | | | | | | | | | | | 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.
* | rpc: Refactor Cookie and UnloadedCookie into a single type.Nick Mathewson2025-01-151-8/+1
| |
* | rpc: Update cbindgen warnings.Nick Mathewson2025-01-151-0/+3
| |
* | rpc: consolodate naming of "inherent" auth.Nick Mathewson2025-01-151-1/+1
| | | | | | | | | | | | | | | | | | 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-2/+3
| | | | | | | | | | | | | | | | | | | | 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.
* | arti-rpc-client-core: Client side of cookie authentication.Nick Mathewson2025-01-155-9/+106
| |
* | arti-rpc-client-core: rewrap Cargo.tomlNick Mathewson2025-01-151-1/+9
|/
* Implement banner for RPC protocol.Nick Mathewson2025-01-094-6/+41
| | | | Closes #1753
* Bump versions of internal arti crates for Arti 1.3.2Nick Mathewson2025-01-071-6/+6
| | | | | | | | | | | | | The affected crates follow our regular versioning. They all get bumped to 0.26.0. Done with ``` for crate in $(./maint/list_crates |grep '^arti-\|tor-' ); do cargo set-version --bump minor -p $crate; done ```
* Merge branch 'mod-module-files' into 'main'Nick Mathewson2025-01-071-0/+1
|\ | | | | | | | | clippy: deny `mod_module_files` See merge request tpo/core/arti!2689
| * 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
* | fix: fix typosDimitris Apostolou2025-01-061-1/+1
|/
* Run "fixup-features" in preparation for release.Nick Mathewson2025-01-061-1/+1
|
* Label our cbindgen output, to detect version incompatibility.Nick Mathewson2024-12-091-0/+1
| | | | | | | This will help us keep track of whether we are using the pinned-to version of cbindgen. Closes #1772.
* Remove needless cbindgen item.Nick Mathewson2024-12-092-1/+1
|
* rpc-client: Reject relative paths.Nick Mathewson2024-12-093-1/+11
|
* rpc-client: split paths better on windows.Nick Mathewson2024-12-091-1/+12
|
* rpc-client: Add TODOs about links to connect point docsNick Mathewson2024-12-091-0/+6
|
* rpc-client: Rename PathEntry to SearchEntry.Nick Mathewson2024-12-091-18/+18
|
* rpc-client: Clarity and consistency in envvar docsNick Mathewson2024-12-091-10/+20
|
* artilib: Revise C and Python APIs for builders.Nick Mathewson2024-12-096-40/+231
| | | | | | | | | | | | | | | Expose ArtiRpcConnBuilder and appropriate C wrapper functions in our FFI code, and wrap those functions in our python wrapper. This breaks the old C API, but that's allowed since the API is still experimental. Some design decisions: * I've wrapped the builder in a Mutex, so that we can continue our FFI rule that we do not require non-Rust code to wrap `&mut`. * I've removed the non-builder connect() function from the C API as extraneous. * I've made a single function to prepend elements to the search path.
* rpc-client-core: Correct various FFI error types.Nick Mathewson2024-12-093-6/+65
|
* rpc-client: Initial implementation for RPC connect points.Nick Mathewson2024-12-095-70/+314
| | | | | | | | | This commit covers the major points of the design: Parsing the environment, parsing and resolving connect points, connecting to Arti, and handling errors. There are a few areas that need to be fixed, all marked with XXXXs.
* rpc-client: move Builder to its own module.Nick Mathewson2024-12-093-85/+96
|
* Resolve clippy::empty_line_after_doc_comments warnings.Nick Mathewson2024-12-031-1/+1
| | | | These are new in Rust 1.83.
* 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.
* Bump all the unstable tor- and arti- crates to 0.25.0.Gabriela Moldovan2024-12-021-4/+4
| | | | | | | | | | Done using: ``` for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do cargo set-version -p $crate 0.25.0 done ```
* cargo: Update `thiserror` to `2`Clara Engler2024-11-121-1/+1
|
* Merge branch 'versions' into 'main'Ian Jackson2024-10-301-4/+4
|\ | | | | | | | | Version bumps for release of 1.3.0 See merge request tpo/core/arti!2599
| * Bump unstable tor-* and arti-* crates to 0.24.0Ian Jackson2024-10-301-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cargo set-version -p tor-async-utils 0.24.0 cargo set-version -p tor-basic-utils 0.24.0 cargo set-version -p tor-bytes 0.24.0 cargo set-version -p tor-cell 0.24.0 cargo set-version -p tor-cert 0.24.0 cargo set-version -p tor-chanmgr 0.24.0 cargo set-version -p tor-checkable 0.24.0 cargo set-version -p tor-circmgr 0.24.0 cargo set-version -p tor-config 0.24.0 cargo set-version -p tor-config-path 0.24.0 cargo set-version -p tor-consdiff 0.24.0 cargo set-version -p tor-dirclient 0.24.0 cargo set-version -p tor-dirmgr 0.24.0 cargo set-version -p tor-error 0.24.0 cargo set-version -p tor-general-addr 0.24.0 cargo set-version -p tor-geoip 0.24.0 cargo set-version -p tor-guardmgr 0.24.0 cargo set-version -p tor-hsclient 0.24.0 cargo set-version -p tor-hscrypto 0.24.0 cargo set-version -p tor-hsrproxy 0.24.0 cargo set-version -p tor-hsservice 0.24.0 cargo set-version -p tor-key-forge 0.24.0 cargo set-version -p tor-keymgr 0.24.0 cargo set-version -p tor-linkspec 0.24.0 cargo set-version -p tor-llcrypto 0.24.0 cargo set-version -p tor-log-ratelim 0.24.0 cargo set-version -p tor-memquota 0.24.0 cargo set-version -p tor-netdir 0.24.0 cargo set-version -p tor-netdoc 0.24.0 cargo set-version -p tor-persist 0.24.0 cargo set-version -p tor-proto 0.24.0 cargo set-version -p tor-protover 0.24.0 cargo set-version -p tor-ptmgr 0.24.0 cargo set-version -p tor-relay-crypto 0.24.0 cargo set-version -p tor-relay-selection 0.24.0 cargo set-version -p tor-rpcbase 0.24.0 cargo set-version -p tor-rtcompat 0.24.0 cargo set-version -p tor-rtmock 0.24.0 cargo set-version -p tor-socksproto 0.24.0 cargo set-version -p tor-units 0.24.0 cargo set-version -p arti-client 0.24.0 cargo set-version -p arti-relay 0.24.0 cargo set-version -p arti-rpc-client-core 0.24.0 cargo set-version -p arti-rpcserver 0.24.0
* | cargo: Run fixup-featuresIan Jackson2024-10-301-1/+1
|/ | | | | | | This is output from nailing-cargo -Eu run -p fixup-features Cargo.toml There are some formatting glitches which I'll fix in a moment.
* rpc: Re-run cbindgen.Nick Mathewson2024-10-231-1/+0
|
* rpc: correct msg and doc for InvalidInput::NullPointerNick Mathewson2024-10-231-2/+2
| | | | | Previously we implied that it was only for strings, which isn't the case.
* rpc: Move "rpc:release" to be a method on the rpc object.Nick Mathewson2024-10-231-9/+1
| | | | | | | Now, instead of telling the session or the connection to drop the object ID, we tell the object ID to go away. Closes #1663.
* rpclib: Rename RequestCancelled to be accurate.Nick Mathewson2024-10-214-18/+9
|
* Replace _ => panic!() elsewhereIan Jackson2024-10-151-1/+1
|
* Merge branch 'rpclib-dependency-reduction' into 'main'Nick Mathewson2024-10-101-1/+1
|\ | | | | | | | | Use cargo features to reduce needless dependencies from arti-rpc-client-core See merge request tpo/core/arti!2522
| * arti-rpc-client-core: remove dependency on unused tor-error feature.Nick Mathewson2024-10-091-1/+1
| |
* | arti-rpc-client-core: remove 'c_str_macro' dependencySteven Engler2024-10-092-18/+16
|/ | | | | Arti has a MSRV of rust 1.77 which supports C string literals, so 'c_str_macro' isn't needed.