summaryrefslogtreecommitdiff
path: root/crates/arti-rpc-client-core
Commit message (Collapse)AuthorAgeFilesLines
* 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`).
* 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