summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* arti-client: Update release date.Gabriela Moldovan2025-07-071-1/+1
|
* hashx, equix: Update lock files.Gabriela Moldovan2025-07-072-3/+3
|
* Bump arti crate to 1.4.5Gabriela Moldovan2025-07-073-3/+3
| | | | | | | | Done using: ``` cargo set-version --bump patch -p arti ```
* Bump all the unstable tor- and arti- crates to 0.32.0.Gabriela Moldovan2025-07-0749-454/+454
| | | | | | | | | | Done using: ``` for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do cargo set-version -p $crate 0.32.0 done ```
* Bump the versions of the non-{arti-,tor-} crates.Gabriela Moldovan2025-07-0742-82/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The non-{arti-,tor-} crates are: ``` ./maint/list_crates | rg -v '^(tor|arti)' oneshot-fused-workaround slotmap-careful test-temp-dir fslock-guard hashx equix caret fs-mistrust safelog retry-error ``` We split them in the following categories: * crates with no changes (no version bumps): None ``` maint/changed_crates -v "arti-v$LAST_VERSION" 2>&1 >/dev/null | grep -i "no change" | grep -v '\(tor\|arti\)-' ``` * crates that only have non-functional changes (bump the patch version): - oneshot-fused-workaround - slotmap-careful - test-temp-dir - fslock-guard - hashx - equix - caret - safelog - retry-error * crates where APIs were broken (bump minor): - fs-mistrust (the implicit once_cell feature was removed) The bumps from this commit were created using this script: ``` PATCH=" oneshot-fused-workaround slotmap-careful test-temp-dir fslock-guard hashx equix caret safelog retry-error " for crate in $PATCH; do cargo set-version --bump patch -p $crate; done MINOR=" fs-mistrust " for crate in $MINOR; do cargo set-version --bump minor -p $crate; done ```
* Run cargo update for {hashx,equix}/bench.Gabriela Moldovan2025-07-072-94/+112
| | | | | | | | | Done using ``` (cd crates/hashx/bench && cargo update) (cd crates/equix/bench && cargo update) ```
* tor-hsservice: Suppress false-positive clippy::useless_concat.Gabriela Moldovan2025-07-071-1/+4
|
* tor-dirmgr, tor-guardmgr: Use std::slice::from_ref as suggested by clippy.Gabriela Moldovan2025-07-072-6/+6
|
* tor-proto: Remove unnecessary return.Gabriela Moldovan2025-07-071-1/+1
|
* tor-linkspec: Fix over-indented docs.Gabriela Moldovan2025-07-071-1/+1
| | | | This fixes a clippy warning.
* tor-rtcompat, tor-rtmock: Allow unused functions.Gabriela Moldovan2025-07-072-0/+2
| | | | These only serve as a compile-time check.
* Temporarily suppress mismatched_lifetime_syntaxes.Gabriela Moldovan2025-07-0762-0/+62
| | | | See #2060.
* tor-rpcbase: Remove unnecessary parentheses from around type.Gabriela Moldovan2025-07-071-2/+2
| | | | This fixes a nightly clippy warning.
* Merge branch 'arti-1.4.5-prep' into 'main'gabi-2502025-07-0725-31/+40
|\ | | | | | | | | Run fixup-features, upgrade deps in preparation for release See merge request tpo/core/arti!3083
| * tor-netdoc: Upgrade to phf 1.12.1.Gabriela Moldovan2025-07-071-1/+1
| |
| * Upgrade to derive-deftly 1.1.0.Gabriela Moldovan2025-07-0724-25/+25
| | | | | | | | | | | | I had to also bump `toml` to `0.8.23`, because `toml 0.8.22` is incompatible with `serde_spanned 0.6.9` (which is automatically pulled in because of the d-d upgrade).
| * tor-keymgr: Sort dependencies.Gabriela Moldovan2025-07-071-1/+7
| | | | | | | | To satisfy `maint/cargo-sort`.
| * arti-client: Remove dependency on tor-key-forge.Gabriela Moldovan2025-07-071-2/+1
| | | | | | | | This was added in error a while ago, but we forgot to remove it.
| * Run fixup-features in preparation for release.Gabriela Moldovan2025-07-073-5/+9
| |
* | proto: ignore large_enum_variant warningNick Mathewson2025-07-031-1/+1
| | | | | | | | | | This appears to be a testing-only struct, so we can safely ignore the warning.
* | hspow: Add a clippy::cognitive_complexity exceptionNick Mathewson2025-07-031-0/+1
| |
* | Clippy 1.88 fix: reformat some debug prints.Nick Mathewson2025-07-032-8/+8
|/
* proto: Add clippy exception for handle_cmd().Gabriela Moldovan2025-06-271-0/+1
| | | | We need to pass by value for the conflux case.
* proto: Add clippy exception for next_circ_action().Gabriela Moldovan2025-06-271-0/+1
| | | | The function can return an error, but only if `conflux` is enabled.
* proto: Remove unnecessary return statement to satisfy clippy.Gabriela Moldovan2025-06-271-1/+1
| | | | With the latest rustc version, this now triggers a warning.
* proto: Use primary_join_point() earlier to get the join point.Gabriela Moldovan2025-06-271-3/+2
|
* proto: Rephrase error message to reduce ambiguity.Gabriela Moldovan2025-06-271-1/+1
|
* proto: Continue reading from leaky-pipe streams if main leg is blocked (fmt).Gabriela Moldovan2025-06-273-10/+21
|
* proto: Continue reading from leaky-pipe streams if main leg is blocked.Gabriela Moldovan2025-06-274-90/+118
| | | | Addresses https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3077#note_3218281
* proto: Allow leaky pipe on multipath tunnels.Gabriela Moldovan2025-06-271-20/+17
| | | | | | | | For leaky pipe, we just need to ensure we don't accidentally reroute it to the join point on the primary leg. Partially addresses https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3077#note_3218281
* proto: Actually validate the SWITCH cells in the mock exit.Gabriela Moldovan2025-06-271-12/+43
|
* proto: Tweak conflux test RTTs to trigger CONFLUX_SWITCH.Gabriela Moldovan2025-06-271-6/+49
| | | | This causes the test client to send a two SWITCH cells.
* proto: Make RttEstimator::{ewma,min}_rtt_usec() return `Option`.Gabriela Moldovan2025-06-273-13/+20
| | | | | | | | | | A `None` value signals to the conflux code to know to fall back on the initial RTT of the circuit. Without this change, the conflux switching logic is broken as we end up staying on the leg with the best initial RTT forever (the other leg is never picked, because its `ewma_rtt()` is stuck on `u32::MAX`, and never updated as we never send on it).
* proto: Ugly hack to fix seqno accounting bug.Gabriela Moldovan2025-06-274-0/+31
|
* proto: Run test handshake outside of exit task.Gabriela Moldovan2025-06-271-10/+17
|
* proto: Avoid switching legs unnecssarily.Gabriela Moldovan2025-06-271-1/+1
| | | | | If we're already on the best leg, we don't need to switch (even if the other leg happens to have the same "best" RTT).
* proto: Ensure we get all the expected SWITCH cells.Gabriela Moldovan2025-06-271-0/+6
| | | | | | | | | Previously, this failed to assert that the mock relays received all the expected SWITCH cells. As it turns out, the assertion currently fails, because the default value for our estimated RTTs is no longer zero (as of !3074), so we no longer unnecessarily switch legs as much as we used to.
* proto: Sort the received test data.Gabriela Moldovan2025-06-271-4/+4
| | | | | | | | | | The conflux client now sends data to the mock exit relay over both legs (it SWITCHes legs at some point), which causes the test to fail (because the two legs of the mock exit write the data racily to the same `Vec`, without attempting to put it in the right order). To work around the lack of handling of out-of-order cells at the mock exit, we can just sort the received data to make sure we got it all.
* proto: Add trace log for conflux leg switch events.Gabriela Moldovan2025-06-271-1/+7
|
* proto: Fix conflux-related congestion control proto violation.Gabriela Moldovan2025-06-271-1/+87
| | | | | | | | Previously, if the primary leg was blocked on cc, the conflux set would continue polling the stream map non-blocked leg, and send a `CircuitCmd::Send` instructing the reactor to send a DATA cell on the non-blocked leg. The reactor would then (wrongly) reroute the DATA cell to the primary leg, in violation of congestion control.
* proto: Support inserting varied RTT delays in test (fmt).Gabriela Moldovan2025-06-271-16/+3
|
* proto: Support inserting varied RTT delays in test.Gabriela Moldovan2025-06-271-21/+25
| | | | | This will enable us to trigger conflux leg switches at various points in the transmission.
* proto: s/circ_sink/circ_tx for consistency.Gabriela Moldovan2025-06-271-15/+15
| | | | For consistency with `chan_tx`.
* proto: Pass TestCircuitCtx to mock exit task (fmt).Gabriela Moldovan2025-06-271-3/+15
|
* proto: Pass TestCircuitCtx to mock exit task.Gabriela Moldovan2025-06-271-33/+20
| | | | | As opposed to passing the individual parts of `TestCircuitCtx` (I find this slightly neater).
* proto: Apply deferred cargo fmtGabriela Moldovan2025-06-271-2/+11
| | | | This is a mess. A future commit will make it slightly less horrible.
* proto: Unbreak the conflux stream test.Gabriela Moldovan2025-06-271-3/+36
| | | | | | | This fixes a problem which caused the test to stall waiting for a cell (simply blocking on receiving a cell is wrong, because it's possible for the other leg to have already completed the transfer; we need to be able to bail upon receiving a completion notification from the other leg).
* proto: Put mock runtime behind mutex.Gabriela Moldovan2025-06-271-6/+8
| | | | | | | | | | | | | | | The mutex prevents concurrent uses of `MockRuntime::advance_until_stalled` (which are forbidden by the mock runtime), enabling us to call this (and its functions that advance time) more liberally in the future. Note: the `multipath_stream` test is *still* broken, but slightly less so. Now the only failure is "all futures blocked. waiting for the real world? or deadlocked (waiting for each other) ?", which can be solved by ensuring the mock exit tasks always exit: now that the mock client task keeps the stream alive until it receives an END cell, we need to ensure the exits tasks can complete their own, without relying on the client to end the stream. This will be fixed in another commit.
* proto: Send an END at the end of the test conflux stream (fmt).Gabriela Moldovan2025-06-271-1/+3
|
* proto: Send an END at the end of the test conflux stream.Gabriela Moldovan2025-06-271-7/+31
| | | | | This enables the new `read_until_end()` call in the mock client task to complete (otherwise it will just hang, waiting for the stream to end).