| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |/ / / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
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).
|
| |\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
StreamMap: Merge mpsc receivers back into open stream entries
See merge request tpo/core/arti!2326
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
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)]`
```
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This simplifies the bookkeeping a bit, and clears a path towards
updating the Streams in our StreamPollSet to directly respect flow
control.
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
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`.
|
| | | | | | | | |
|
| | | | | | | | |
|
| |\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Use std::backtrace instead of backtrace crate
Closes #1144
See merge request tpo/core/arti!2301
|
| | | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
std::backtrace::Backtrace's Display looks the same as
backtrace_rs::Backtrace's Debug
|
| | | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
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 handles
See merge request tpo/core/arti!2317
|
| | | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
This API allows the caller to launch a request and then watch for
updates on it.
|
| | | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
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.
|
| |/ / / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
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.
See merge request tpo/core/arti!2330
|
| |/ / / / / / / |
|
| |\ \ \ \ \ \ \
| |_|/ / / / /
|/| | | | | |
| | | | | | |
| | | | | | | |
dov/dev/notes: Add note about live reloads in restricted discovery mode.
See merge request tpo/core/arti!2329
|
| | | |_|/ / /
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
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).
|
| |\ \ \ \ \ \
| |_|_|/ / /
|/| | | | |
| | | | | |
| | | | | | |
KeyedFuturesUnordered: refactor so that futures are accessible
See merge request tpo/core/arti!2321
|
| | | | | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
We can actually return references here instead of `impl Deref`,
simplifying this code a bit and follow-on code to use this in
StreamPollSet.
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
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.
|
| | | | | | | |
|
| | | | | | | |
|
| |/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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.
|
| |\ \ \ \ \
| |_|_|/ /
|/| | | |
| | | | |
| | | | |
| | | | |
| | | | | |
tor-keymgr: Add private RelKeyPath type for relative paths.
Closes #1494
See merge request tpo/core/arti!2291
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
`fs-mistrust` always maps `io::ErrorKind::NotFound` to
`fs_mistrust::Error::NotFound`, so these `io::ErrorKind::NotFound`
branches were unreachable.
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We now use `CheckedDir::metadata()` to check if the path exists and is
of the correct type.
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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 CI
See merge request tpo/core/arti!2322
|
| |/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
It now does it automatically, see
<https://docs.rs/about/builds#detecting-docsrs>.
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Test cbindgen correctness in CI
Closes #1502
See merge request tpo/core/arti!2320
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
(This is kind of thing that the CI script should remind us to do.)
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
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.
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
Previously it didn't actually fail if there was a change.
|
| |\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Add a few more tor employes to exclude from our acknowledgments
See merge request tpo/core/arti!2306
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
(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.)
|
| |\ \ \ \ \ \ \
| |_|/ / / / /
|/| | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
rpclib: Use JsonValue to re-encode responses and requests.
Closes #1512 and #1511
See merge request tpo/core/arti!2315
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
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.
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
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.
|
| | | | | | | | |
|