aboutsummaryrefslogtreecommitdiff
path: root/crates/arti-rpc-client-core/src
Commit message (Collapse)AuthorAgeFilesLines
...
* rpc nb: Capitalize a letterNick Mathewson2026-02-121-1/+1
|
* rpc: Use vec::drain.Nick Mathewson2026-02-121-3/+4
|
* rpc: Flush after write.Nick Mathewson2026-02-121-1/+4
|
* rpc: Handle eintr in NonblockingStream.Nick Mathewson2026-02-121-13/+18
|
* rpc: Add "Io Safety" documentation.Nick Mathewson2026-02-121-2/+31
|
* rpc nb: Documentation improvements from diziet.Nick Mathewson2026-02-121-5/+27
|
* rpc: Clean up pub items in nb_stream.Nick Mathewson2026-02-044-16/+10
| | | | | (We don't need as many of these to be public as I had originally thought.)
* RPC: Fix documentation about "readers".Nick Mathewson2026-02-042-10/+14
|
* rpc: Replace llconn backend with nb_stream backend.Nick Mathewson2026-02-047-313/+87
| | | | All the tests still pass!
* rpc: New nonblocking backend for interacting with streamsNick Mathewson2026-02-042-0/+704
| | | | | | | | There are two levels here. At the lower level, the caller is responsible for providing their own select/poll wrapper. At the higher level, we use mio to provide our own. Before the end of this branch, this new module will replace llconn.
* rpc: Move responsibility for wrapping streams to rpc-client-coreNick Mathewson2026-02-043-6/+24
| | | | | This will be necessary since, in order to make the RPC stuff nonblocking, we'll need a better API than just `Box<dyn Read>` etc.
* maint/add_warning: Run script to add new warningGabriela Moldovan2026-01-271-0/+1
| | | | This adds the lint to all our crates.
* rpc-client-core: Add missing CookieBeginReply docsGabriela Moldovan2025-12-011-0/+1
|
* rpclib: Rename `OutPtr` to `OutBoxedPtr`Neel Chauhan2025-11-063-39/+39
| | | | Closes #1588.
* Fix name of clippy lint to unchecked_time_subtraction (2)Ian Jackson2025-11-068-8/+8
| | | | Run maint/add_warning
* Fix warnings and errors from edition 2024.Nick Mathewson2025-08-072-21/+21
| | | | | | | | | | The two main causes of errors were: - Since some of the lifetime rules have changed, we no longer need to do as many "bind a variable and immediately return it" patterns, and so clippy now warns about them. - We needed to adjust the explicit captures (`use<...>`) in a couple of our RPIT instances.
* Switch Cargo.toml files to edition 2024.Nick Mathewson2025-08-0710-27/+27
| | | | | | | | | | | | | | First, run ``` git grep -l "^edition =" | xargs perl -i -pe 's/^edition *=.*/edition = "2024"/;' ``` Second, manually verify that all Cargo.toml files have changed, and nothing else has changed. Third, run cargo fmt again.
* Temporarily suppress mismatched_lifetime_syntaxes.Gabriela Moldovan2025-07-071-0/+1
| | | | See #2060.
* 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)]` ```
* 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()`
* rpc-client: Increase test coverage for the msgs modulevcrn2025-03-182-1/+35
|
* 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-031-2/+32
| | | | | | | | | | | | | | | 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-301-6/+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-301-6/+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-303-4/+4
|/
* 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-232-7/+55
|\ | | | | | | | | | | | | 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-222-4/+6
| | | | | | | | | | | | | | 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-222-3/+49
| |
* | 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