| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| | * | tor-netdoc: Fix doc comment following removal of PauseAt | Ian Jackson | 2023-02-16 | 1 | -3/+6 | |
| | | | ||||||
| | * | tor-netdoc: Run rustfmt (separately from the refactoring) | Ian Jackson | 2023-02-15 | 2 | -5/+3 | |
| | | | ||||||
| | * | tor-netdoc: Abolish NetDocReader::iter and into_iter | Ian Jackson | 2023-02-15 | 1 | -13/+0 | |
| | | | | | | | | | Nothing uses these now; the NetDocReader is simply an iterator, itself. | |||||
| | * | tor-netdoc: Remove many needless calls to .iter() and .into_iter() | Ian Jackson | 2023-02-15 | 9 | -35/+32 | |
| | | | ||||||
| | * | tor-netdoc: Use impl Iterator for NetdocReader in .pause_at | Ian Jackson | 2023-02-15 | 1 | -2/+2 | |
| | | | | | | | | | This simplifies the return type! | |||||
| | * | tor-netdoc: impl Iterator etc. for NetdocReader | Ian Jackson | 2023-02-15 | 1 | -0/+29 | |
| | | | | | | | | | This will simplify things at many call sites. | |||||
| | * | tor-netdoc: move PeekableIterator to util.rs | Ian Jackson | 2023-02-15 | 2 | -24/+36 | |
| | | | | | | | | | We're going to want this a bit more widely. | |||||
| | * | tor-netdoc: Delete now-unused PauseAt type | Ian Jackson | 2023-02-15 | 1 | -149/+0 | |
| | | | ||||||
| | * | tor-netdoc: Use itertools to implement NetDocReader::pause_at | Ian Jackson | 2023-02-15 | 1 | -7/+11 | |
| | | | | | | | | | This is the last use of PauseAt. | |||||
| | * | tor-netdoc: Replace use of PauseAt::new_pred() | Ian Jackson | 2023-02-15 | 2 | -9/+10 | |
| | | | | | | | | | | | | | | | We can just make a new PauseAt, since it can take the inner peekable iterator by mutable reference. This seems to tidy the code up a bit too. | |||||
| | * | tor-netdoc: Have sectionrules.parse take I, not &mut I | Ian Jackson | 2023-02-15 | 1 | -2/+2 | |
| | | | | | | | | | | | | | There's a blanket impl of Itertor for &mut impl Iterator, so this isn't necessary, and it prevents us passing iterators by value producing syntactic vinegar. | |||||
| | * | tor-netdoc: Import Peekable rather than referring to it by path | Ian Jackson | 2023-02-15 | 1 | -3/+4 | |
| | | | | | | | | | | | This makes things easier to read. We're about to add another site (albeit, temporarily). | |||||
| * | | Merge branch 'hs-cells-1' into 'main' | Nick Mathewson | 2023-02-16 | 7 | -490/+689 | |
| |\ \ | | | | | | | | | | | | | Start refactoring hs cell implementations See merge request tpo/core/arti!1020 | |||||
| | * | | Mark a quoted block as text, so doctest ignores it. | Nick Mathewson | 2023-02-16 | 1 | -1/+1 | |
| | | | | ||||||
| | * | | Add a TODO about combining several macros and patterns | Nick Mathewson | 2023-02-16 | 1 | -0/+4 | |
| | | | | ||||||
| | * | | Make a comment more accurate | Ian Jackson | 2023-02-16 | 1 | -1/+3 | |
| | | | | ||||||
| | * | | tor-cell: Use a more generic mechanism for managing extensions | Nick Mathewson | 2023-02-15 | 4 | -79/+264 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Several HS message types have an extension list type. They all use the same framing for extensions, but each of them has separate extension types and separate extension namespaces. This commit simplifies establish_intro a little, and adds support for maintaining unrecognized extension types--at the expense of some new internal code. | |||||
| | * | | tor-cell: Extract establish-intro into its own module. | Nick Mathewson | 2023-02-15 | 4 | -215/+223 | |
| | | | | | | | | | | | | | | | | | | | | | | Some of the HS message types have a lot of dependent types, like extensions and options for those extensions, and so on. Except when those extensions are portable across cell types, it makes sense to put them in their own modules. | |||||
| | * | | tor-cell: rename onion_service module to hs | Nick Mathewson | 2023-02-15 | 4 | -7/+7 | |
| | | | | ||||||
| * | | | Expire routerdescs as soon as any of their expiries expire | Ian Jackson | 2023-02-15 | 1 | -1/+1 | |
| | |/ |/| | | | | | Fixes #772 | |||||
| * | | Merge branch 'ticket_525_part3_take2' into 'main' | Nick Mathewson | 2023-02-15 | 20 | -203/+651 | |
| |\ \ | | | | | | | | | | | | | | | | | | | Finish #525 for relay messages: Only parse messages at the last instant. Closes #773 and #525 See merge request tpo/core/arti!1017 | |||||
| | * | | tor-proto: Add a TODO about simplifying a common pattern. | Nick Mathewson | 2023-02-15 | 1 | -0/+8 | |
| | | | | ||||||
| | * | | tor-cell: add a TODO comment about simplifying Body away. | Nick Mathewson | 2023-02-15 | 2 | -0/+8 | |
| | | | | ||||||
| | * | | tor-cell: Add another debug_assert to relay cell encoding | Nick Mathewson | 2023-02-15 | 1 | -3/+6 | |
| | | | | ||||||
| | * | | slicewriter: rename a local variable. | Nick Mathewson | 2023-02-15 | 1 | -4/+4 | |
| | | | | ||||||
| | * | | Move slicewriter to tor-cell and make it private. | Nick Mathewson | 2023-02-15 | 5 | -10/+14 | |
| | | | | | | | | | | | | | Also, add some comments about how it is likely to change. | |||||
| | * | | tor-proto: note implications for future HS work | Nick Mathewson | 2023-02-15 | 2 | -0/+12 | |
| | | | | ||||||
| | * | | tor-proto: Push stream message parsing into the stream objects. | Nick Mathewson | 2023-02-15 | 6 | -51/+88 | |
| | | | | | | | | | | | | | | | | This closes #525, and ensures, at last, that we don't parse any message that we wouldn't accept. | |||||
| | * | | tor-proto: Defer parsing of messages send to half-closed streams | Nick Mathewson | 2023-02-15 | 3 | -42/+94 | |
| | | | | | | | | | | | | | | | | | | | This includes a partial solution for #769, but also turned up another bug (#774) while I was working on it. I'll close them both once I have a real solution. | |||||
| | * | | tor-proto: stop reactor (and kill circuit) if meta handler fails | Nick Mathewson | 2023-02-15 | 1 | -4/+7 | |
| | | | | | | | | | | | | | | | | | | | | | | If the meta handler reports an error, then the circuit has violated its protocol, and needs to be shut down. Fixes #773. | |||||
| | * | | tor-proto: defer meta-cell parsing to the last moment. | Nick Mathewson | 2023-02-15 | 2 | -36/+27 | |
| | | | | ||||||
| | * | | tor-proto: Use UnparsedRelayCell to start deferring cell processing. | Nick Mathewson | 2023-02-15 | 2 | -22/+43 | |
| | | | | | | | | | | | | | | | | In general, we want to avoid parsing these cells until we are fairly sure that they are something we would accept. | |||||
| | * | | tor-cell: Add RelayCell::into_msg. | Nick Mathewson | 2023-02-15 | 1 | -0/+4 | |
| | | | | ||||||
| | * | | tor-cell: Implement {Relay,Chan}Msg for every body type | Nick Mathewson | 2023-02-15 | 3 | -5/+97 | |
| | | | | | | | | | | | | | | | | This will make it ergonomic to decode a single body type without having to declare a variant that accepts only a single message. | |||||
| | * | | tor-cell: Note an opportunity for future optimization | Nick Mathewson | 2023-02-15 | 1 | -0/+5 | |
| | | | | ||||||
| | * | | tor-cell: Add a new UnparsedRelayCell | Nick Mathewson | 2023-02-15 | 2 | -2/+60 | |
| | | | | | | | | | | | | | | | | | | | We'll use this to router relay messages on a circuit to the appropriate stream, and hand them to that stream, without parsing the message until the stream has been determined. | |||||
| | * | | tor-cell: Refactor relay cells to copy much less | Nick Mathewson | 2023-02-15 | 10 | -68/+93 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We now manipulate raw relay cell bodies as (an alias for) `Box<[u8;509]>` rather than as (an alias for) `[u8;509]`. This enables us to do much less copying. It will become more important soon, as we defer parsing relay cell bodies even longer. Related to #7. We also use SliceWriter to avoid allocating a Vec<> for every relay message we want to encode, and instead encode directly into the cell. | |||||
| | * | | tor-bytes: Add a new writer implementation for fixed-size objects | Nick Mathewson | 2023-02-15 | 3 | -0/+125 | |
| | |/ | | | | | | | | | | | | | | | Because the API assumes that many writes are infallible, this writer takes ownership of the backing object, and will only return it to you if you didn't run over the end. I'm going to use this to save some allocations in relay cell bodies | |||||
| * | | Merge branch 'fuzz-hsdesc' into 'main' | Ian Jackson | 2023-02-15 | 7 | -2/+48 | |
| |\ \ | | | | | | | | | | | | | Fuzzing for hsdesc parsers See merge request tpo/core/arti!1018 | |||||
| | * | | netdoc: Add a basic fuzzer for the hsdesc layers. | Nick Mathewson | 2023-02-14 | 2 | -1/+29 | |
| | | | | | | | | | | | | | | | | | | | I've been running this for 5 minutes and haven't found any crashes. I'll run it for an hour or two, then add the results to the corpus repository. | |||||
| | * | | netdoc: Add a feature to expose hsdesc inner doc parsers | Nick Mathewson | 2023-02-14 | 5 | -1/+19 | |
| | |/ | | | | | | | | | | | | | We want to fuzz these parsers, but there's no currently way to get at the parsers for inner documents without going through a lot of encryption. (Coverage-guided fuzzers are powerful, but they can't find SHA3 preimages.) | |||||
| * / | Upgrade to latest toml crate. | Nick Mathewson | 2023-02-14 | 4 | -4/+4 | |
| |/ | | | | (None of the breaking changes affect us this time.) | |||||
| * | Merge branch 'doc-iter' into 'main' | Nick Mathewson | 2023-02-13 | 6 | -88/+488 | |
| |\ | | | | | | | | | Introduce new batching iterator and use it in two places See merge request tpo/core/arti!1016 | |||||
| | * | batching_split_before: Whitespace error fix | Ian Jackson | 2023-02-13 | 1 | -1/+1 | |
| | | | ||||||
| | * | batching_split_before: Better xref for doc hidden | Ian Jackson | 2023-02-13 | 1 | -0/+7 | |
| | | | | | | | | | And another UNSTABLE warning. | |||||
| | * | batching_split_before: Clarify API sequential restriction | Ian Jackson | 2023-02-13 | 1 | -4/+4 | |
| | | | ||||||
| | * | batching_split_before: Fix and clarify Batches/LendingIterator doc | Ian Jackson | 2023-02-13 | 1 | -2/+4 | |
| | | | ||||||
| | * | batching_split_before: Introduce unit token types | Ian Jackson | 2023-02-13 | 1 | -4/+18 | |
| | | | | | | | | | And explain why we're not using booleans. | |||||
| | * | batching_split_before: Expand on the remaining use of "meta-iterator" | Ian Jackson | 2023-02-13 | 1 | -1/+2 | |
| | | | ||||||
| | * | batching_split_before: Fix link to BatchesWithHeader::subsequent | Ian Jackson | 2023-02-13 | 1 | -1/+1 | |
| | | | ||||||
