summaryrefslogtreecommitdiff
path: root/crates/arti-rpc-client-core
Commit message (Collapse)AuthorAgeFilesLines
* release: Bump all tor-/arti- crates to 0.31.0.Alexander Hansen Færøy2025-06-051-6/+6
| | | | | | | | This was done using: for crate in $(./maint/list_crates | grep -P '^tor-|^arti-'); do cargo set-version -p $crate 0.31.0 done
* release: Bump crates non-arti/non-tor crates with functional changes.Alexander Hansen Færøy2025-06-051-1/+1
| | | | | | | | This is done using: cargo set-version --bump patch -p fs-mistrust cargo set-version --bump patch -p equix cargo set-version --bump patch -p fslock-guard
* ./maint/cargo_sort: Run cargo-sort on the entire workspace.Gabriela Moldovan2025-05-271-3/+3
| | | | | | | | | | | | | | | | | | | The [latest version] of `cargo-sort` is more opinionated than the previous one, and is now causing the `rust-checks` job to fail on `main`. This commit applies the fixes needed to satisfy the new `cargo-sort` rules. These changes were generated by running `cargo sort --workspace` several times, until `cargo sort --check --workspace` finally succeeded (it couldn't fix all the errors in one go, for some reason). I have omitted the changes `cargo-sort` made to the top-level `Cargo.toml`, to preserve the topological ordering of the workspace members. Closes #2014 [latest version]: https://github.com/DevinR528/cargo-sort/blob/f066ae80e5e6f5c1d8f0e2b8099461dcb97d9656/changelog.md#200
* All crates: bump rust-version to 1.83.Nick Mathewson2025-05-131-1/+1
|
* release: Bump all unstable tor/arti crates to 0.30.0Wesley Aptekar-Cassels2025-05-011-6/+6
| | | | | | | | ``` for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do cargo set-version -p $crate 0.30.0 done ```
* Update rand requirement to 0.9.1Nick Mathewson2025-04-291-2/+2
| | | | | (This is going to be a _requirement_, since rand 0.9.1 has a behavioral change from 0.9.0)
* Run cargo update.Wesley Aptekar-Cassels2025-04-291-1/+1
| | | | | I updated everything except rand, because the new version of rand interacts with #1903, thus requiring more care.
* fix `clippy::doc_overindented_list_items`Steven Engler2025-04-032-2/+2
| | | | | | | | | | | | | | | | | | | | Example: ```text warning: doc list item overindented --> crates/arti-rpc-client-core/src/conn/connimpl.rs:322:9 | 322 | /// indicates that no more messages will be received for this request. | ^^^ help: try using ` ` (2 spaces) | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items note: the lint level is defined here --> crates/arti-rpc-client-core/src/lib.rs:8:9 | 8 | #![warn(clippy::all)] | ^^^^^^^^^^^ = note: `#[warn(clippy::doc_overindented_list_items)]` implied by `#[warn(clippy::all)]` ```
* Bump all the unstable tor- and arti- crates to 0.29.0.Gabriela Moldovan2025-03-311-6/+6
| | | | | | | | | | Done using: ``` for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do cargo set-version -p $crate 0.29.0 done ```
* Bump the versions of the non-{arti-,tor-} crates.Gabriela Moldovan2025-03-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The non-{arti-,tor-} crates are: ``` ./maint/list_crates | rg -v '^(tor|arti)' oneshot-fused-workaround slotmap-careful test-temp-dir fslock-guard hashx equix caret fs-mistrust safelog retry-error ``` We split them in the following categories: * crates with no changes (no version bumps): ``` maint/changed_crates -v "arti-v$LAST_VERSION" 2>&1 >/dev/null | grep -i "no change" | grep -v '\(tor\|arti\)-' oneshot-fused-workaround: No change. slotmap-careful: No change. fslock-guard: No change. caret: No change. retry-error: No change. ``` * crates that only have non-functional changes (bump the patch version): - test-temp-dir - equix - fs-mistrust - safelog * crates where APIs were broken (bump minor): - hashx (`RngCore` impl for `SipRand`) The bumps from this commit were created using this script: ``` PATCH=" test-temp-dir equix fs-mistrust safelog " for crate in $PATCH; do cargo set-version --bump patch -p $crate; done MINOR=" hashx " for crate in $MINOR; do cargo set-version --bump minor -p $crate; done ```
* Upgrade to cbindgen 0.28.0Nick Mathewson2025-03-301-1/+1
|
* Update expected warnings from cbindgen.Nick Mathewson2025-03-301-51/+0
|
* Revise READMEs for RPC crates.Nick Mathewson2025-03-251-20/+12
| | | | | | We'll want to add more text here, but that should probably wait until we have a permanent home for the rendered RPC documentation. (see #1829)
* RPC: Explain in more detail about Windows "named pipe"sIan Jackson2025-03-241-2/+5
|
* AF_UNIX terminology: Rename two error variantsIan Jackson2025-03-241-1/+1
| | | | Change `..UnixAddress...` to `...AfUnixAddress..`.
* RPC: Abolish an unused and misnamed error variantIan Jackson2025-03-241-1/+0
| | | | | This variant breaches the new guidelines about AF_UNIX terminology. And its purpose is unclear and it's not used.
* squash! Upgrade rand dependency to 0.9.Nick Mathewson2025-03-181-5/+5
| | | | - The Rng::gen() functions have been renamed to Rng::random().
* squash! Upgrade rand dependency to 0.9.Nick Mathewson2025-03-181-1/+1
| | | | - `rand::thread_rng()` has been deprecated and renamed to `rand::rng()`
* Upgrade rand dependency to 0.9.Nick Mathewson2025-03-181-3/+3
| | | | | | (Per discussion at #1774, we think the changes are acceptable.) This commit won't compile on its own; subsequent commits will fix it.
* rpc-client: Increase test coverage for the msgs modulevcrn2025-03-182-1/+35
|
* tor-rtmock: task: Remove Default impl for ThreadDescriptorIan Jackson2025-03-041-1/+1
| | | | | | | | | This is going to become a hazard. Let's be explicit. This means using educe to derive the Default for Data. We also need to update our educe dependency to 0.4.22, since that's when Default(expression= "...") started working correctly.
* Bump minor versions in tor-*, arti-*.Nick Mathewson2025-03-031-6/+6
|
* Upgrade to derive_more 2Nick Mathewson2025-02-261-1/+1
| | | | | This took a little refactoring, since derive_more::Foo no longer re-exports std::ops::Foo.
* Bump minor version of fs-mistrustIan Jackson2025-02-071-1/+1
| | | | Fixes #1841.
* Version bumps to 0.27.0Ian Jackson2025-02-061-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See Release.md. maint/list_crates | grep -P '^tor-|^arti-' | xargs -n1 nailing-cargo -Eu set-version --bump minor -p This completes the version bumps. The report of changed crates, before I started the release work, is: $ maint/changed_crates -v "arti-v$LAST_VERSION" oneshot-fused-workaround: No change. slotmap-careful: No change. test-temp-dir: No change. fslock-guard: No change. hashx: No change. equix: No change. tor-basic-utils: No change. caret: No change. fs-mistrust safelog: No change. retry-error: No change. tor-error tor-general-addr: No change. tor-geoip: No change. tor-rtcompat tor-rtmock tor-async-utils tor-config tor-config-path tor-rpc-connect tor-log-ratelim: No change. tor-rpcbase tor-memquota: No change. tor-units tor-llcrypto: No change. tor-protover: No change. tor-bytes tor-checkable: No change. tor-cert tor-key-forge tor-hscrypto: No change. tor-socksproto: No change. tor-linkspec: No change. tor-cell: No change. tor-proto tor-netdoc: No change. tor-consdiff: No change. tor-netdir tor-relay-selection: No change. tor-persist tor-chanmgr tor-ptmgr: No change. tor-guardmgr: No change. tor-circmgr tor-dirclient: No change. tor-dirmgr: No change. tor-keymgr tor-hsclient tor-hsservice tor-hsrproxy: No change. tor-relay-crypto arti-client arti-relay arti-rpcserver arti arti-rpc-client-core $
* fs-mistrust: bump minor version, and in-tree depsIan Jackson2025-02-061-1/+1
| | | | | | | | | | | | There are new features. cargo set-version --offline --bump minor -p fs-mistrust Actually, I have discovered by diffing that some methods now take `&self` where previously they took `self`. This will need a further bump to the fs-mistrust version and a fix to the changelog. I will do that. Filed blocker ticket #1841 for it.
* rpclib: Improve output for ConnectFailureNick Mathewson2025-02-042-2/+58
| | | | | | | We want to explain better what has happened, not only with the final fatal error, but with any nonfatal errors that occurred in the middle. Closes #1826.
* rpclib: Include sources when formatting FFI errors.Nick Mathewson2025-02-041-2/+14
| | | | Closes #1650.
* rpclib: Obey error Display convention wrt sources.Nick Mathewson2025-02-044-26/+25
| | | | | | | In general, we try to obey the convention that an error's Display method does not display that error's sources. Part of #1650.
* rpclib: Move socketpair to a testing module; use it in llconn testsNick Mathewson2025-02-034-33/+39
|
* rpclib: In tests, use an ersatz socketpair on windows.Nick Mathewson2025-02-032-3/+35
| | | | | | | | | | | | | | | Fixes #1831. I'm doing this because switching from the socketpair crate to an ersatz connect-to-localhost socketpair made the test pass. My windows skills are weak, but it appears possible that you aren't supposed to simultaneously have a blocking ReadFile and a blocking WriteFile to a named pipe from separate threads? At least, that's consistent with our findings in !2758. I first saw this hack in perl, when I needed it in 2003. I am displeased that it is still apparently needed in 2025.
* rpclib: make conn::complex use fewer iterations.Nick Mathewson2025-02-031-1/+1
| | | | This was the slowest test in our suite.
* Merge branch 'rpc_document_internal_optimism' into 'main'Nick Mathewson2025-01-302-12/+0
|\ | | | | | | | | | | | | rpc: Document what is actually going on with stream optimism. Closes #1583 See merge request tpo/core/arti!2753
| * rpc: Correct API documentation about optimismNick Mathewson2025-01-302-12/+0
| | | | | | | | | | | | | | | | | | | | | | Our documentation had dated to an older version of our RPC stream code, where all streams were automatically optimistic. But as explained, our use of "optimistic"ness in RPC stream code is now purely internal, to make it possible to get an DataStreamCtrl. This isn't user-visible in our rpc_conn_open_stream code. Closes #1583
* | fix: fix typosDimitris Apostolou2025-01-304-5/+5
|/
* Merge branch 'rpc-docs-1' into 'main'Nick Mathewson2025-01-302-20/+104
|\ | | | | | | | | | | | | Improve and write a bunch of RPC documentation Closes #1520, #1527, and #1296 See merge request tpo/core/arti!2748
| * tweak cbindgen documentation.Nick Mathewson2025-01-292-4/+9
| |
| * rpclib: Update cbindgen documentation.Nick Mathewson2025-01-292-17/+96
| |
* | rpclib: Rename ConnPtSource to ConnPtOrigin.Nick Mathewson2025-01-291-11/+11
| |
* | rpclib: Rename WithinDir.{expanded => file}.Nick Mathewson2025-01-291-3/+6
| |
* | rpclib: Move from_env_string_elt onto SearchLocation.Nick Mathewson2025-01-291-4/+6
| |
* | rpclib: Implement accessors for ConnectFailureNick Mathewson2025-01-293-3/+23
| |
* | rpclib: Implement Display for ConnPtDescriptionNick Mathewson2025-01-291-4/+51
| |
* | rpclib: New combined error type for RPC connect failures.Nick Mathewson2025-01-293-9/+52
| | | | | | | | | | This type explains where every error came from, and explains why each declined connect point was declined.
* | rpclib: Pipe connect-point locations through our loading process.Nick Mathewson2025-01-291-22/+77
| |
* | rpclib: Keep track of where each SearchEntry comes from.Nick Mathewson2025-01-291-24/+91
|/ | | | Subsequent commits will pipe this information forward to our errors.
* rpclib: More explanations about internal method usage.Nick Mathewson2025-01-231-3/+5
|
* arti-rpc-client-core: Rename Authentication{Rejected=>Failed}Nick Mathewson2025-01-233-9/+9
| | | | | | | | Also change corresponding message. This way, it will be clear that we're just reporting that Arti gave us an error—not that the error necessarily means that the authentication itself was "wrong".
* rpclib: Avoid overuse of execute_internal_ok.Nick Mathewson2025-01-234-24/+60
| | | | | | | | | | | The execute_internal_ok method converts every error response into an internal error; as such, it's only appropriate when there is no way for a well-behaved Arti instance to give an error response. But we had been using it in a few places where errors were possible under other circumstances. This commit fixes that behavior, and adds documentation to help avoid it.
* 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`).