summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | proto: Update reactor docs to reflect ForwardHandler changeGabriela Moldovan2026-03-251-6/+37
| | | |
| * | | proto: Move handle_unrecognized_cell() out of ForwardHandlerGabriela Moldovan2026-03-252-50/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `ForwardHandler` trait is meant for implementation-dependent functions that are called from the implementation-agnostic `ForwardReactor`. Previously `handle_unrecognized_cell()` was called directly by the generic `ForwardReactor`, but that's no longer the case, so it doesn't belong in the trait anymore. This commit is just code motion. Best reviewed with `--color-moved`
| * | | proto: Forward unrecognized RELAY_EARLY as RELAY_EARLYGabriela Moldovan2026-03-253-4/+8
| | | | | | | | | | | | | | | | Closes #2417
| * | | proto: Add tests for the relay circuit reactorGabriela Moldovan2026-03-251-0/+536
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds an initial set of tests for the circuit reactor. We will, of course, add more tests as we continue working on the implementation. Closes #2353
| * | | cell: Derive PartialEq for Begin and BeginFlagsGabriela Moldovan2026-03-251-2/+2
| | | |
| * | | proto: Use AllowAllStreamsFilter in relay builds tooGabriela Moldovan2026-03-251-2/+2
| | | |
| * | | proto: Move AllowAllStreamsFilter to crate-pub test moduleGabriela Moldovan2026-03-252-15/+19
| | | | | | | | | | | | | | | | This will soon be used by the relay tests too.
| * | | proto: Add option to create RELAY_EARLY via rmsg_to_ccmsg() (fmt)Gabriela Moldovan2026-03-252-13/+43
| | | |
| * | | proto: Add option to create RELAY_EARLY via rmsg_to_ccmsg()Gabriela Moldovan2026-03-252-38/+47
| | | | | | | | | | | | | | | | This will be needed for the relay circuit reactor tests.
| * | | proto: Move rmsg_to_ccmsg to crate-pub test moduleGabriela Moldovan2026-03-252-10/+34
| | | | | | | | | | | | | | | | We'll soon need this for the relay reactor tests too.
| * | | proto: Replace fully-qualified path with import aliasGabriela Moldovan2026-03-251-1/+1
| | | |
* | | | Merge branch 'consdiff-gen' into 'main'Clara Engler2026-03-257-4/+449
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | Consensus Diff Generation See merge request tpo/core/arti!3712
| * | | tor-consdiff: Apply comment suggestionClara Engler2026-03-251-2/+3
| | | | | | | | | | | | Co-authored-by: Ian Jackson
| * | | tor-consdiff: Prevent dotlines with WS tailClara Engler2026-03-251-4/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit modifies the dotline check to prevent generating lines that consist of a single dot followed by an arbitrary amount of whitespace, such as `.`, `. `, `. \t `, but not `. \t foo`. It also adjusts the tests appropriately.
| * | | tor-consdiff: Rename `.lno` to `.lno_for_error`Clara Engler2026-03-251-2/+2
| | | |
| * | | Revert "parse2: Rename lno_for_error to lno"Clara Engler2026-03-253-4/+3
| | | |
| * | | tor-consdiff: Prevent dotlines properlyClara Engler2026-03-251-1/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | As pointed out by Diziet, our implementation does not reject dotlines properly, due to our use of `trim_end()`. This commit fixes this, by just checking for `line == ".\n"`. This is fine because we ensure Unix line endings now anyways.
| * | | tor-consdiff: Enforce Unix line endingsClara Engler2026-03-252-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit changes the consdiff generation to enforce Unix line endings and reject all other ones, including Windows line endings as well as no line endings. In other words, it checks for `\n` while forbidding `\r\n`. It also renames the relevant error variant to reflect this change better.
| * | | tor-consdiff: Justify our use of peek'ingClara Engler2026-03-251-0/+3
| | | | | | | | | | | | | | | | This is done to only get the first directory-signature.
| * | | tor-consdiff: Refactor result compositionClara Engler2026-03-251-11/+17
| | | | | | | | | | | | | | | | | | | | | | | | This commit refactors the result composition by simply looping over every line and checking whether it ends with a newline AND does not consist of a single dot.
| * | | tor-consdiff: Use named variants for lno errorsClara Engler2026-03-252-10/+16
| | | | | | | | | | | | | | | | | | | | | | | | This commit changes the error variants that contain a line number to a named variant with a field `lno: usize` to make it semantically clear, that it is a line number.
| * | | tor-consdiff: Use derive_more for HunkType's DisplayClara Engler2026-03-253-13/+7
| | | |
| * | | tor-consdiff: Use usize::try_fromClara Engler2026-03-251-2/+5
| | | |
| * | | tor-consdiff: Fix clippy warningsClara Engler2026-03-251-2/+2
| | | |
| * | | tor-consdiff: Test with CRLFClara Engler2026-03-251-0/+10
| | | | | | | | | | | | | | | | | | | | Now that we no longer use .lines(), everything should work fine with CRLF -- and it does. :-)
| * | | tor-consdiff: Remove manual line splitsClara Engler2026-03-252-19/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit removes all manual line splits in the consdiff generation. Instead, it now simply uses the primitives offered by imara-diff to access the lines in the input itself. Meanwhile, it also adds a check for missing newlines/assertions that all lines are actually terminated by \n.
| * | | tor-consdiff: Cut signature using byte offsetsClara Engler2026-03-251-30/+36
| | | | | | | | | | | | | | | | | | | | This commit replaces the use of lines with byte offsets for cutting of the signatures.
| * | | tor-consdiff: Use same rng in testClara Engler2026-03-251-2/+3
| | | |
| * | | tor-consdiff: Compile-time assertion for 32-bitClara Engler2026-03-253-0/+5
| | | | | | | | | | | | | | | | | | | | This commit adds a compile time assertion that a u32 can always be safely casted into a usize.
| * | | tor-consdiff: Return error for dotlineClara Engler2026-03-252-16/+47
| | | | | | | | | | | | | | | | | | | | This commit adds a check that prevents gen_cons_diff from computing a diff with a single dot line.
| * | | tor-consdiff: Refactor gen_ed_diffClara Engler2026-03-251-28/+63
| | | | | | | | | | | | | | | | | | | | | | | | This commit refactors gen_ed_diff to have less code duplication by not matching upon the hunk type once but by splitting it into two different matches for the header and the body.
| * | | tor-consdiff: Failed applies are a BugClara Engler2026-03-254-6/+14
| | | | | | | | | | | | | | | | | | | | | | | | Mark a failed apply from a consensus diff we generate as a bug as this should not happen. We must obviously always accept the consensus diffs we produce.
| * | | tor-consdiff: Replace `+=` with `std::fmt`Clara Engler2026-03-251-20/+36
| | | | | | | | | | | | | | | | | | | | This commit replaces repeated `result += &format!(...)` cruft with `write!` calls and multi-line strings.
| * | | tor-consdiff: Constify directory-signature literalClara Engler2026-03-251-3/+10
| | | | | | | | | | | | | | | | | | | | This commit moves "directory-signature" and "directory-signature " into semantically meaningful constants.
| * | | tor-consdiff: Replace names with custom wordlistClara Engler2026-03-253-144/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit replaces the names crate with a simple hardcoded wordlist of length 20, obtained from my systems wordlist. Reason for that being that names triggers a cargo-audit failure.
| * | | tor-consdiff: Add consdiff generation algorithmClara Engler2026-03-256-24/+360
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit implements support for the consensus diff generation. Unlike CTor, it does not use its own custom algorithm but rather uses an implementation of Myers' algorithm from the `imara-diff` crate, which is pretty performant and comparable to size and run time to CTor, while being much simpler in the interfacing code.
| * | | parse2: Rename lno_for_error to lnoClara Engler2026-03-253-3/+4
| | | | | | | | | | | | | | | | | | | | This commit lno_for_error in ItemStream to lno because its value may not always be used for error handling, such as in tor-consdiff.
| * | | parse2: Implement `ParseError::new()`Clara Engler2026-03-251-0/+19
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | This commit adds the ParseError::new() method, which allows external APIs to construct a ParseError, which is currently not possible due to non-exhaustiveness, despite the member fields being public. It is required for external applications using lower-level but public parse2 APIs, such as ItemStream's.
* | | Merge branch 'fix-docs' into 'main'David Goulet2026-03-252-3/+3
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | docs: Fix config file path on windows Closes #2422 See merge request tpo/core/arti!3808
| * | | docs: fix config file path on windowsSteven Engler2026-03-242-3/+3
| | |/ | |/|
* | | Merge branch 'hsservice-readme' into 'main'Nick Mathewson2026-03-251-17/+0
|\ \ \ | | | | | | | | | | | | | | | | hsservice: Remove obsolete "Limitations" section See merge request tpo/core/arti!3812
| * | | hsservice: Remove obsolete "Limitations" sectionGabriela Moldovan2026-03-251-17/+0
| | |/ | |/| | | | | | | These have been implemented for a while now.
* | | Merge branch 'dont-warn-conn-failed' into 'main'Nick Mathewson2026-03-251-1/+0
|\ \ \ | |/ / |/| | | | | | | | tor-chanmgr: Don't `warn_report!` for failed connections See merge request tpo/core/arti!3807
| * | tor-chanmgr: don't `warn_report!` for failed connectionsSteven Engler2026-03-241-1/+0
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `warn_report!` is useful when there's an error that we need to ignore and can't propagate up the call stack. But here we're using `warn_report!` while also returning the error in a `Error::ChannelBuild`. This is not great because: 1. The caller should warn if it wants to, since it will have the error message and the proper context. 2. This code is doing something like happy eyeballs, which means we only care that one connection succeeds, not if any fail. One instance where this is problematic is when running Arti on a machine without IPv6 support. If connecting to a relay with both an IPv4 and IPv6 address, the IPv6 attempt will always fail. We don't want to warn about every outgoing IPv6 connection failure when the IPv4 connection succeeds.
* | Merge branch 'log-formatting' into 'main'gabi-2502026-03-252-2/+2
|\ \ | | | | | | | | | | | | tor-guardmgr: Fix some duration string formatting See merge request tpo/core/arti!3804
| * | tor-guardmgr: fix some duration string formattingSteven Engler2026-03-242-2/+2
| |/ | | | | | | | | | | Old text would say something like: > Retrying in FormattedDuration(29.999861026s).
* | Merge branch 'circ-reac-changes' into 'main'gabi-2502026-03-252-4/+4
|\ \ | |/ |/| | | | | tor-proto: Small miscellaneous changes on relay circuit reactor See merge request tpo/core/arti!3809
| * tor-proto: change `dyn ChannelProvider` to also be `Sync`Steven Engler2026-03-242-3/+3
| | | | | | | | | | An `Arc<T>` is only `Send` if `T` is `Send + Sync`, which is needed by the runtime.
| * tor-proto: change relay circ reactor `new()` to `pub(crate)`Steven Engler2026-03-241-1/+1
|/ | | | | I plan to call this from `crates/tor-proto/src/channel/reactor.rs`.
* Merge branch 'weak_table_explicit_hasher' into 'main'David Goulet2026-03-245-5/+28
|\ | | | | | | | | | | | | Force use of standard hasher with weak_tables. Closes #2418 See merge request tpo/core/arti!3801