summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | Merge branch 'stream-poll-set-accessible' into 'main'Jim Newsome2024-08-123-186/+496
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | StreamMap: Merge mpsc receivers back into open stream entries See merge request tpo/core/arti!2326
| * | | | | StreamPollSet: replace nested OptionJim Newsome2024-08-081-10/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bullied by clippy. I'm on the fence whether this is actually an improvement, or whether I should add an exception. ``` error: consider using `Option<T>` instead of `Option<Option<T>>` or a custom enum if you need to distinguish all 3 cases --> crates/tor-proto/src/util/stream_poll_set.rs:106:56 | 106 | pub fn remove(&mut self, key: &K) -> Option<(K, P, Option<Option<V>>, S)> { | ^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_option = note: `-D clippy::option-option` implied by `-D warnings` = help: to override `-D warnings` add `#[allow(clippy::option_option)]` ```
| * | | | | StreamMap: Merge rxs into open_streamsJim Newsome2024-08-082-72/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This simplifies the bookkeeping a bit, and clears a path towards updating the Streams in our StreamPollSet to directly respect flow control.
| * | | | | StreamMap: Put open streams in their own map instead of CountedHashMapJim Newsome2024-08-082-137/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This temporarily results in *more* bookkeeping, but is a step towards putting the mpsc receivers back into `OpenStreamEnt`, and putting the whole `OpenStreamEnt`s into the `StreamPollSet`.
| * | | | | StreamMap: test n_open_streamsJim Newsome2024-08-081-1/+13
| | | | | |
| * | | | | StreamPollSet: allow access to inner streamsJim Newsome2024-08-082-48/+345
| | | | | |
* | | | | | Merge branch '1144-std-backtrace' into 'main'David Goulet2024-08-126-47/+17
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use std::backtrace instead of backtrace crate Closes #1144 See merge request tpo/core/arti!2301
| * | | | | | Match previous backtrace formattingRobin Leander Schröder2024-08-082-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | std::backtrace::Backtrace's Display looks the same as backtrace_rs::Backtrace's Debug
| * | | | | | Use std::backtrace instead of backtrace crateRobin Leander Schröder2024-08-016-44/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removes resolve_backtraces from rtmock since it is no longer needed as stdlib's backtraces automatically lazily resolve without needing a &mut.
* | | | | | | ffi: Add support for request handlesNick Mathewson2024-08-126-9/+285
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This API allows the caller to launch a request and then watch for updates on it.
* | | | | | | ffi: New in_mut_ptr_opt type for receiving *mut T.Nick Mathewson2024-08-121-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, we had in_ptr_opt for functions that want to take a nullable `*const T` without consuming it. This is the equivalent for taking a nullable `*mut T` without consuming it.
* | | | | | | ffi: New out_val_opt type for outptrs to non-pointersNick Mathewson2024-08-123-22/+80
| |_|/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, we had out_ptr_opt for functions that wanted to return a newly allocated `ArtiRpcFoo` via a `struct ArtiRpcFoo **` argument. But we didn't have a way to return non-allocated `int` via an `int *` argument. This code provides that.
* | | | | | Re-run cbindgen; new version has changed whitespace.Nick Mathewson2024-08-121-3/+3
| |/ / / / |/| | | |
* | | | | KeyedFuturesUnordered: explicitly document Stream behaviorJim Newsome2024-08-081-0/+13
| | | | |
* | | | | KeyedFuturesUnordered: return actual referencesJim Newsome2024-08-081-23/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can actually return references here instead of `impl Deref`, simplifying this code a bit and follow-on code to use this in StreamPollSet.
* | | | | KeyedFuturesUnordered: additional testingJim Newsome2024-08-081-37/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Primarily I wanted to exercise the code path that we get a spurious wakeup due to a future that was removed from the map later becoming ready. I also ended up merging ReadyFut and PendingFut into a more flexible ValueFut to make this a little nicer.
* | | | | Add KeyedFuturesUnordered::get and KeyedFuturesUnordered::get_mutJim Newsome2024-08-081-3/+72
| | | | |
* | | | | KeyedFuturesUnordered::remove: return the future as wellJim Newsome2024-08-082-18/+55
| | | | |
* | | | | KeyedFuturesUnordered: refactor so that futures are accessibleJim Newsome2024-08-082-100/+100
| |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of wrapping `FuturesUnordered`, which doesn't support efficient access to its internal futures, keep the futures themselves in our own HashMap, and use a custom Waker to be notified which futures are ready to be polled. *Almost* a pure refactor in this step - the implementation now requires that keys are `Send + Sync + 'static` so that we can put them inside an `Arc` and send them over a channel.
* | | | Merge branch 'keystore-newty' into 'main'gabi-2502024-08-084-49/+188
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | | | | | | | | | tor-keymgr: Add private RelKeyPath type for relative paths. Closes #1494 See merge request tpo/core/arti!2291
| * | | tor-keymgr: Remove unnecessary io::Error handling.Gabriela Moldovan2024-08-081-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | `fs-mistrust` always maps `io::ErrorKind::NotFound` to `fs_mistrust::Error::NotFound`, so these `io::ErrorKind::NotFound` branches were unreachable.
| * | | fs-mistrust: Add a TODO about refactoring CheckedDir::metadata().Gabriela Moldovan2024-08-081-0/+1
| | | |
| * | | fs-mistrust: Note that metadata() can return Error::NotFound.Gabriela Moldovan2024-08-081-0/+2
| | | |
| * | | fs-mistrust: Apply deferred cargo fmt.Gabriela Moldovan2024-08-081-1/+4
| | | |
| * | | tor-keymgr: Use CheckedDir::metadata() instead of PathBuf::try_exists().Gabriela Moldovan2024-08-082-12/+48
| | | | | | | | | | | | | | | | | | | | We now use `CheckedDir::metadata()` to check if the path exists and is of the correct type.
| * | | tor-keymgr: Use the new relative path wrapper (fmt).Gabriela Moldovan2024-08-081-9/+15
| | | |
| * | | tor-keymgr: Use the new relative path wrapper.Gabriela Moldovan2024-08-082-43/+24
| | | |
| * | | tor-keymgr: Add new rel_path module with helpers for handling relative paths.Gabriela Moldovan2024-08-082-0/+77
| | | |
| * | | fs-mistrust: Add a CheckedDir::metadata function.Gabriela Moldovan2024-08-081-1/+28
| | | |
| * | | tor-keymgr: Add private RelKeyPath type for relative paths.Gabriela Moldovan2024-08-081-10/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes `rel_path` return a `RelKeyPath` instead of a `PathBuf` to prevent the accidental misuse of relative key paths (like the one from #1492). Closes #1494
* | | | Re-run cbindgen to fix CINick Mathewson2024-08-081-4/+0
|/ / / | | | | | | | | | | | | | | | | | | For some reason, we wound up - not with anything missing in the header - but with extra warnings in our expected warnings file. I'm tentatively blaming the git merge algorithm, or perhaps the phase of the moon.
* | | Merge branch 'docsrs' into 'main'Jim Newsome2024-08-0740-40/+0
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Don't need to tell docs.rs to enable `docsrs` cfg. It does it automatically as of https://github.com/rust-lang/docs.rs/pull/2390#event-11664409098 While this change isn't in our MSRV yet, we were only using this when building for docs.rs, where we use the latest anyway. See merge request tpo/core/arti!2308
| * | | Don't need to tell docs.rs to enable `docsrs` cfgKunal Mehta2024-08-0240-40/+0
| | | | | | | | | | | | | | | | | | | | It now does it automatically, see <https://docs.rs/about/builds#detecting-docsrs>.
* | | | Merge branch 'cbindgen-ci' into 'main'David Goulet2024-08-072-0/+33
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Test cbindgen correctness in CI Closes #1502 See merge request tpo/core/arti!2320
| * | | | Re-run cbindgen to update our generated header.Nick Mathewson2024-08-072-0/+33
| | | | | | | | | | | | | | | | | | | | (This is kind of thing that the CI script should remind us to do.)
* | | | | rpclib: Rename ParsedRequest to ParsedRequestFieldsNick Mathewson2024-08-071-11/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This name change should emphasize that the (module-private) `ParsedRequestFields` type is only for parsing, and we aren't supposed to actually construct them for our own requests. With this change, and the others on the branch, there's no longer a risk of trying to serialize a ParsedRequestFields (since it doesn't implement Serialize), or to deserialize a Request (since it doesn't implement Deserialize). Closes #1511.
* | | | | rpclib: Use JsonValue to re-encode requests.Nick Mathewson2024-08-074-97/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As with responses, we previously used a strategy that could have failed in the future, if we forgot to add an "unexpected_fields" member to one of our structs. Closes #1512.
* | | | | rpclib: Unify error type for ValidatedRequest failure.Nick Mathewson2024-08-074-12/+36
| | | | |
* | | | | rpclib: Refactor request canonicalizationNick Mathewson2024-08-074-28/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This lets us make a couple of types module-private, and prepares the way for using the serde_json::Value trick on requests too.
* | | | | rpclib: Ensure that re-encoded responses end with NLNick Mathewson2024-08-071-1/+4
| | | | |
* | | | | rpclib: Use JsonValue to re-encode responsesNick Mathewson2024-08-072-38/+127
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | This approach keeps the property that we still preserve any unrecognized fields, but takes a different approach. Instead of using our own `structs` to round-trip the json, we use a `serde_json::Value`, to ensure that we cannot forget to add the `unexpected_fields` element to a struct.
* | | | Merge branch 'ffi_obj_id' into 'main'Nick Mathewson2024-08-074-15/+132
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | FFI: Expose the objectID for the session object See merge request tpo/core/arti!2318
| * | | | FFI: Expose the object ID for the session.Nick Mathewson2024-08-062-0/+37
| | | | | | | | | | | | | | | | | | | | (Without this, it isn't actually possible to use the RPC subsystem.)
| * | | | rpc: Make ObjectId hold a Utf8CString internally.Nick Mathewson2024-08-063-15/+95
| | |_|/ | |/| | | | | | | | | | This will enable us to return it to FFI callers as a nul-terminated string.
* | | | Merge branch 'b1513' into 'main'Nick Mathewson2024-08-073-2/+12
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-proto: fix streammap panic Closes #1513 See merge request tpo/core/arti!2319
| * | | | tor-proto streammap: Drop receiver for outgoing messages after ENDJim Newsome2024-08-061-0/+4
| | | | | | | | | | | | | | | | | | | | Fixes #1513
| * | | | tor-proto: add Debug impls and improve panic messageJim Newsome2024-08-063-2/+8
| |/ / / | | | | | | | | | | | | For debugging #1513
* | | | Merge branch 'fix-doc-features' into 'main'Nick Mathewson2024-08-071-1/+4
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | maint/check_doc_features: Fixes for use with "pub mod restricted discovery" See merge request tpo/core/arti!2316
| * | | | tor-hsservice: Remove unnecessary docsrs cfg_attr.Gabriela Moldovan2024-08-071-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | The module is correctly documented as "only available on crate feature restricted-discovery" without it.
| * | | | tor-hsservice: Add comments about the cfg_attrs around restricted_discovery.Gabriela Moldovan2024-08-071-0/+3
| | | | |