| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | | | | | |
|
| |/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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.
|
| | | | | | | | |
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This lets us make a couple of types module-private,
and prepares the way for using the serde_json::Value trick on
requests too.
|
| | | | | | | | |
|
| |/ / / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
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.
|
| |\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
FFI: Expose the objectID for the session object
See merge request tpo/core/arti!2318
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
(Without this, it isn't actually possible to use the RPC subsystem.)
|
| | | |_|/ / /
| |/| | | |
| | | | | |
| | | | | | |
This will enable us to return it to FFI callers as a nul-terminated string.
|
| |\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
tor-proto: fix streammap panic
Closes #1513
See merge request tpo/core/arti!2319
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Setting it for all arti processes causes a warning to be logged to
stderr, which causes the shadow ci script to fail.
It's enabled by default anyway when the feature is compiled in, so we
don't need to enable it explicitly.
|
| | | | | | | | |
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This would have caught #1513 before it was merged.
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Fixes #1513
|
| | |/ / / / /
| | | | | |
| | | | | |
| | | | | | |
For debugging #1513
|
| |\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
maint/check_doc_features: Fixes for use with "pub mod restricted discovery"
See merge request tpo/core/arti!2316
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
The module is correctly documented as "only available on crate feature
restricted-discovery" without it.
|
| | | | | | | | |
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
The script isn't handling the `cfg_attr` on `pub mod restricted_discovery`
very well, so we need to use the `additional_required` escape hatch.
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Without it, if the `restricted-discovery` feature is compiled out, the
module gets documented as:
```
Non-restricted-discovery (Available on non-crate feature `restricted-discovery`
only)
```
which is inaccurate.
|
| | |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This makes the script work on `cfg_attr`s applied to `mod` declarations
ending in `;`.
Without this change, the script fails with
```
processing tor-hsservice
res += fn(os.path.join(dir_, file))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/builds/nickm/arti/./maint/check_doc_features", line 112, in extract_cfg_attr
end = min(subline.find(pat) for pat in ' (<' if subline.find(pat) !=-1)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: min() arg is an empty sequence
```
when run on code with `cfg_attr`s applied to `mod` declarations.
Note: this change just improves the UX a bit, but doesn't actually fix
the issue: the script still isn't able to handle `cfg_attr`'d `mod`s: it
assumes all `#[cfg_attr(docsrs, ..)]` statements are applied to
feature-gated `pub use`s, and if there aren't any (such as in the case
of `cfg_attr`d modules, it assumes the feature gating is missing.
|
| |\ \ \ \ \ \
| |/ / / / /
|/| | | | |
| | | | | |
| | | | | | |
Don't require TRANSPORT for PT STATUS messages.
See merge request tpo/core/arti!2307
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
See: tpo/core/arti#1488.
|
| | |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This patch changes the PT STATUS handler to not require the presence of
the `TRANSPORT` field in the K/V line. This matches current behaviour of
C Tor and was requested by the Anti-censorship Team at an earlier point
to enable STATUS messages to work for situation where it's not transport
specific messages.
To avoid future issues, we simply ignore any required keys right now
even though TYPE is to be expected.
See: tpo/core/torspec#267
See: tpo/core/torspec!63
See: tpo/core/arti#1488
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
shadow test: Add tests for restricted discovery hidden services
See merge request tpo/core/arti!2272
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This tests that the client configured in the `authorized_clients`
directory of the service is able to connect.
|