summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | 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
| * | | | | | 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-075-6/+30
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-proto: fix streammap panic Closes #1513 See merge request tpo/core/arti!2319
| * | | | | | shadow ci: don't explicitly set storage.keystore.enabledJim Newsome2024-08-061-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | | shadow CI: fail on arti logged errorsJim Newsome2024-08-061-0/+9
| | | | | | |
| * | | | | | shadow ci: fail on nonempty stderr fileJim Newsome2024-08-061-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This would have caught #1513 before it was merged.
| * | | | | | 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-072-2/+9
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-072-2/+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
| | | | | | |
| * | | | | | maint/check_doc_features: Add restricted_discovery to additional_required.Gabriela Moldovan2024-08-061-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | | tor-hsservice: Add missing docsrs cfg to restricted_discovery module.Gabriela Moldovan2024-08-061-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | | maint/check_doc_features: Include ; in end of item pattern.Gabriela Moldovan2024-08-061-1/+1
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | | Merge branch 'ahf/pt-status-ignore-transport' into 'main'Nick Mathewson2024-08-061-17/+13
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | | | | | | | Don't require TRANSPORT for PT STATUS messages. See merge request tpo/core/arti!2307
| * | | | | Add test for PtStatus containing TRANSPORT field.Alexander Færøy2024-08-011-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | See: tpo/core/arti#1488.
| * | | | | Don't require TRANSPORT for PT STATUS messages.Alexander Færøy2024-08-011-18/+4
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | Merge branch 'arti-client-auth-tests' into 'main'gabi-2502024-08-0517-1/+190
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | shadow test: Add tests for restricted discovery hidden services See merge request tpo/core/arti!2272
| * | | | | shadow test: Add another client for the restricted discovery service.Gabriela Moldovan2024-08-056-0/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This tests that the client configured in the `authorized_clients` directory of the service is able to connect.