summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | Merge branch 'unparsed_linkspec' into 'main'Ian Jackson2023-02-214-10/+84
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | HsDesc: Use a new UnparsedLinkSpecifier to avoid leaking which linkspec types we know See merge request tpo/core/arti!1029
| * | | | tor-netdoc: Use UnparsedLinkSpec in IntroPointDesc.Nick Mathewson2023-02-171-9/+2
| | | | |
| * | | | tor-linkspec: New UnparsedLinkspec type.Nick Mathewson2023-02-173-1/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unlike linkspec, this doesn't validate the actual contents of the specifiers. We'll use this so we can handle the linkspec list for an introduction point in an HsDesc, and just pass it on when constructing our circuits. I haven't added any accessor or constructor functions, because I don't expect to need them.
* | | | | Merge branch 'hsdir_remove_comment' into 'main'Ian Jackson2023-02-211-1/+0
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | netdoc: Remove a TODO hs comment. See merge request tpo/core/arti!1028
| * | | | | netdoc: Remove a TODO hs comment.Nick Mathewson2023-02-171-1/+0
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It said to check whether C enforces an absence of extraneous bytes at the end of the link specifiers. It does, in `hs_desc.c:decode_link_specifiers()`, where it says: ``` if (link_specifier_list_parse(&specs, decoded, (size_t) decoded_len) < decoded_len) { goto err; } ``` The comparison with "decoded_len" checks whether all the bytes were decoded.
* | | | | Merge branch 'update_2023_02_17' into 'main'Ian Jackson2023-02-212-97/+122
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | Run `cargo update`, work around a bug in `time`. See merge request tpo/core/arti!1027
| * | | | tor-dirmgr: Work around an apparent regression in `time`.Nick Mathewson2023-02-171-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some code in our tests that worked fine with time 0.3.17 no longer works with 0.3.19, despite the semver. See https://github.com/time-rs/time/issues/552 for the upstream bug.
| * | | | Run "cargo update" in preparation for the release in 2 weeks.Nick Mathewson2023-02-171-94/+119
| | | | |
* | | | | Fix the year on the 1.1.1 changelog.Nick Mathewson2023-02-171-1/+1
|/ / / /
* | | | Merge branch 'coverage-force' into 'main'Nick Mathewson2023-02-171-1/+1
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | maint: forcefully remove files in coverage See merge request tpo/core/arti!1024
| * | | maint: forcefully remove files in coverageEmil Engler2023-02-161-1/+1
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When performing the initial run of `./maint/coverage`, it will report an error message to stderr, that several files cannot be deleted, due to their non-existence. While the error is still ignored, I personally think that there is no benefit in showing it either, thereby surpressing it with this commit. Beside this, this syntax might be easier to understand from a semantical point of view.
* | | Merge branch 'doc-iter' into 'main'Nick Mathewson2023-02-1712-233/+116
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | tor-netdoc: Abolish PauseAt in favour of using itertools Closes #760 See merge request tpo/core/arti!1021
| * | | tor-netdoc: Fix doc comment following removal of PauseAtIan Jackson2023-02-161-3/+6
| | | |
| * | | tor-netdoc: Run rustfmt (separately from the refactoring)Ian Jackson2023-02-152-5/+3
| | | |
| * | | tor-netdoc: Abolish NetDocReader::iter and into_iterIan Jackson2023-02-151-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 Jackson2023-02-159-35/+32
| | | |
| * | | tor-netdoc: Use impl Iterator for NetdocReader in .pause_atIan Jackson2023-02-151-2/+2
| | | | | | | | | | | | | | | | This simplifies the return type!
| * | | tor-netdoc: impl Iterator etc. for NetdocReaderIan Jackson2023-02-151-0/+29
| | | | | | | | | | | | | | | | This will simplify things at many call sites.
| * | | tor-netdoc: move PeekableIterator to util.rsIan Jackson2023-02-152-24/+36
| | | | | | | | | | | | | | | | We're going to want this a bit more widely.
| * | | tor-netdoc: Delete now-unused PauseAt typeIan Jackson2023-02-151-149/+0
| | | |
| * | | tor-netdoc: Use itertools to implement NetDocReader::pause_atIan Jackson2023-02-151-7/+11
| | | | | | | | | | | | | | | | This is the last use of PauseAt.
| * | | tor-netdoc: Replace use of PauseAt::new_pred()Ian Jackson2023-02-152-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 IIan Jackson2023-02-151-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 pathIan Jackson2023-02-151-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 Mathewson2023-02-167-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 Mathewson2023-02-161-1/+1
| | | |
| * | | Add a TODO about combining several macros and patternsNick Mathewson2023-02-161-0/+4
| | | |
| * | | Make a comment more accurateIan Jackson2023-02-161-1/+3
| | | |
| * | | tor-cell: Use a more generic mechanism for managing extensionsNick Mathewson2023-02-154-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 Mathewson2023-02-154-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 hsNick Mathewson2023-02-154-7/+7
| | | |
* | | | Merge branch 'max-min' into 'main'Nick Mathewson2023-02-161-1/+1
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | Expire routerdescs as soon as any of their expiries expire Closes #772 See merge request tpo/core/arti!1022
| * | | Expire routerdescs as soon as any of their expiries expireIan Jackson2023-02-151-1/+1
|/ / / | | | | | | | | | Fixes #772
* | | Merge branch 'ticket_525_part3_take2' into 'main'Nick Mathewson2023-02-1521-203/+652
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 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 Mathewson2023-02-151-0/+8
| | | |
| * | | tor-cell: add a TODO comment about simplifying Body away.Nick Mathewson2023-02-152-0/+8
| | | |
| * | | tor-cell: Add another debug_assert to relay cell encodingNick Mathewson2023-02-151-3/+6
| | | |
| * | | slicewriter: rename a local variable.Nick Mathewson2023-02-151-4/+4
| | | |
| * | | Move slicewriter to tor-cell and make it private.Nick Mathewson2023-02-155-10/+14
| | | | | | | | | | | | | | | | Also, add some comments about how it is likely to change.
| * | | tor-proto: note implications for future HS workNick Mathewson2023-02-152-0/+12
| | | |
| * | | tor-proto: Push stream message parsing into the stream objects.Nick Mathewson2023-02-156-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 streamsNick Mathewson2023-02-153-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 failsNick Mathewson2023-02-151-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 Mathewson2023-02-152-36/+27
| | | |
| * | | tor-proto: Use UnparsedRelayCell to start deferring cell processing.Nick Mathewson2023-02-152-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 Mathewson2023-02-151-0/+4
| | | |
| * | | tor-cell: Implement {Relay,Chan}Msg for every body typeNick Mathewson2023-02-153-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 optimizationNick Mathewson2023-02-151-0/+5
| | | |
| * | | tor-cell: Add a new UnparsedRelayCellNick Mathewson2023-02-152-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 lessNick Mathewson2023-02-1511-68/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.