summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | | | rpcbase: Facility for looking up RPC method informationNick Mathewson2024-08-122-5/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We'll need this to refer to the names of RPC methods as visible to the caller, and to cross-reference them with their related types.
| * | | | | | | rpcbase: Expose Invocable type names directly.Nick Mathewson2024-08-121-6/+11
| | |_|_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, we exposed them only via `describe_invocable`, which would have required the caller to parse a string in order to find these.
* | | | | | | Merge branch 'rm-counted-hash-map' into 'main'Nick Mathewson2024-08-132-542/+0
|\ \ \ \ \ \ \ | |_|_|_|/ / / |/| | | | | | | | | | | | | | | | | | | | tor-proto: remove CountedHashMap See merge request tpo/core/arti!2333
| * | | | | | tor-proto: removed CountedHashMapJim Newsome2024-08-122-542/+0
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was written for use in StreamMap, with an eye towards potentially reusing it elsewhere. We no longer use it in StreamMap, so it's currently unused. Probably best to go ahead and remove it now and resurrect it if we decide we want it later than to maintain dead code (or to make it more widely available without more concrete use-cases).
* | | | | | 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-127-50/+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-017-47/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removes resolve_backtraces from rtmock since it is no longer needed as stdlib's backtraces automatically lazily resolve without needing a &mut.
* | | | | | | | Merge branch 'ffi_for_rpc_handle' into 'main'Nick Mathewson2024-08-127-28/+387
|\ \ \ \ \ \ \ \ | |_|_|/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | ffi: Add support for request handles See merge request tpo/core/arti!2317
| * | | | | | | 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.
* | | | | | | Merge branch 'run-cbindgen' into 'main'Nick Mathewson2024-08-121-3/+3
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Re-run cbindgen; new version has changed whitespace. See merge request tpo/core/arti!2330
| * | | | | | | Re-run cbindgen; new version has changed whitespace.Nick Mathewson2024-08-121-3/+3
|/ / / / / / /
* | | | | | | Merge branch 'restricted-mode-live-reload' into 'main'Nick Mathewson2024-08-121-0/+243
|\ \ \ \ \ \ \ | |_|/ / / / / |/| | | | | | | | | | | | | | | | | | | | dov/dev/notes: Add note about live reloads in restricted discovery mode. See merge request tpo/core/arti!2329
| * | | | | | dov/dev/notes: Add note about live reloads in restricted discovery mode.Gabriela Moldovan2024-08-121-0/+243
| | |_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This describes a couple of options for extending the config reloading logic to support watching for changes in the `restricted_disovery.key_dirs` directories. Note: the options we have here are, in a sense, two extremes * one is about refactoring some of the existing code into a reusable component, and leaving most of the configuration logic unchanged * the other involves rethinking the entire config watching/reloading mechanism to support watching for changes in arbitrary directories I am leaning towards the simpler option, because I'm not sure the other one is worth the added complexity (we currently only have a single use case for it).
* | | | | | Merge branch 'alt-keyed-futures-unordered' into 'main'Jim Newsome2024-08-082-116/+283
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | | | | | | | | | | | | | | KeyedFuturesUnordered: refactor so that futures are accessible See merge request tpo/core/arti!2321
| * | | | | 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
* | | | | Merge branch 'fewer-warnings' into 'main'Nick Mathewson2024-08-081-4/+0
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | Re-run cbindgen to fix CI See merge request tpo/core/arti!2322
| * | | | 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-074-1/+43
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.)
| * | | | | Test cbindgen correctness in CINick Mathewson2024-08-071-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the introduction of FFI, we ship generated header files that we need to keep up-to-date. This CI test double-checks that the generated files match those that we would generate from cbindgen.
| * | | | | cbindgen script: Fix behavior of --checkNick Mathewson2024-08-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Previously it didn't actually fail if there was a change.
* | | | | | Merge branch 'update-thanks-engine' into 'main'David Goulet2024-08-071-1/+4
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a few more tor employes to exclude from our acknowledgments See merge request tpo/core/arti!2306
| * | | | | | Add a few more tor employes to exclude from our acknowledgmentsNick Mathewson2024-08-011-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (Our practice has been that after one or two release cycles, employees get left off the list of "thanks" in the changelog, and instead get counted as among the people _doing_ the thanking.)
* | | | | | | Merge branch 'rpc-reencoding-redux' into 'main'Nick Mathewson2024-08-078-156/+265
|\ \ \ \ \ \ \ | |_|/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rpclib: Use JsonValue to re-encode responses and requests. Closes #1512 and #1511 See merge request tpo/core/arti!2315