aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-netdoc
Commit message (Collapse)AuthorAgeFilesLines
...
| * tor-netdoc: Introduce KeywordOrStringIan Jackson2026-04-293-0/+48
| | | | | | | | | | We're going to use this for `directory-signature`'s hash algorithm, which the current code always treats as a string!
| * tor-netdoc: Improvement to Unknown API: make it exhaustiveIan Jackson2026-04-292-1/+2
| |
| * tor-netdoc: Improvement to Unknown API: make disregarding more explicitIan Jackson2026-04-293-1/+19
| | | | | | | | | | Make the operation of disregarding the possible existence of already-discarded information, more explicit.
| * tor-netdoc: Move FromStr and Display from NormalItemArgument to implsIan Jackson2026-04-294-5/+8
| | | | | | | | | | | | | | | | | | | | | | This allows implementing NormalItemArgument for types that can only be parsed, or only displayed - or other combinations. I noticed this restriction while inventing a type I later decided was unnecessary. I still think it's a good change. There is no practical impact elsewhere, since in practice downstream code implements NormalItemArgument rather than relying on it.
* | tor-netdoc: Abolish the hsdesc-inner-docs featureIan Jackson2026-04-302-7/+2
| | | | | | | | | | | | | | Part of #2492 phase 3. This feature was experimental, so now that there are no cfg use gates, we can abolish it right away.
* | tor-netdoc: Un-gate every cfg feature = "hsdesc-inner-docs"Ian Jackson2026-04-304-15/+7
| | | | | | | | Part of #2492 phase 2.
* | tor-cert: Remove the "encode" cargo featureIan Jackson2026-04-291-2/+2
| | | | | | | | This was experimental. Everything gated by it has been stabilised.
* | tor-cert: Ed25519CertBuilder: do builder fn renameIan Jackson2026-04-293-4/+4
|/ | | | | | Change all call sites. This completes the rename.
* tor-netdoc: Require "encode" feature from tor-certIan Jackson2026-04-281-1/+1
| | | | | This is needed because we don't have !3926 in main yet. It will produce a semantic conflict when that merges.
* tor-netdoc: Gate vote-related incomplete code with "incomplete" (fmt)Ian Jackson2026-04-281-4/+1
|
* tor-netdoc: Gate vote-related incomplete code with "incomplete" (tidy)Ian Jackson2026-04-281-4/+5
|
* tor-netdoc: Gate vote-related incomplete code with "incomplete"Ian Jackson2026-04-285-11/+11
| | | | | | | | | | | Change "ns-vote" gates to "incomplete": * `vote` modules, and in the variety macro. (And make a TODO more likely to be found.) Change "parse2" gates to "incomplete": * VoteAuthoritySection
* tor-netdoc: Un-gate test2 moduleIan Jackson2026-04-281-1/+1
| | | | Everything that this needs is un-gated now.
* tor-netdoc: Un-gate RouterStatusMdDigestsVote and SoftwareVersionIan Jackson2026-04-282-2/+0
| | | | | These are complete. Un-gate the RouterStatusMdDigestsVote implementation, and the export of both.
* tor-netdoc: Un-gate "plain-consensus" cargo featureIan Jackson2026-04-288-30/+13
| | | | As per #2492.
* tor-netdoc: Un-gate "routerdesc" cargo featureIan Jackson2026-04-285-23/+4
| | | | As per #2492.
* tor-netdoc: Un-gate top-level NetdocBuilderIan Jackson2026-04-281-2/+0
| | | | | This is only used for hsdescs right now. But it doesn't need to be gated behind encode.
* tor-netdoc: Un-gate parse2 and encode loose impls under doc/netstatus (tidy)Ian Jackson2026-04-284-21/+10
|
* tor-netdoc: Un-gate parse2 and encode loose impls under doc/netstatusIan Jackson2026-04-285-29/+21
| | | | | | | | | | | | | | | This stabilises the parse2 and encode impls of consensus tyepe: * {plain, md}::{Preamble, RouterStatus, RouterStatusIntroItem} It also un-gates the parse2 and encode impls of some vote types. * VoteAuthorityEntry - this type has been completed. * RouterStatusMdDigestsVote - whole type still gated with ns-vote Re the remaining vote types (vote::*): although each_variety.rs doesn't have a cfg itself, there is a feature gate in the variety macrology.
* tor-netdoc: Un-gate parse2 and encode loose impls in doc/netstatus.rs (rewrap)Ian Jackson2026-04-281-14/+4
|
* tor-netdoc: Un-gate parse2 and encode loose impls in doc/netstatus.rsIan Jackson2026-04-281-12/+12
| | | | | | | | | | | This stabilises the parse2 and encode impls of * Lifetime * ConsensusMethods * SharedRandStatus * ConsensusAuthorityEntry All of these are complete.
* tor-netdoc: Un-gate features impls in doc/netstatus/dir_source.rs (rewrap)Ian Jackson2026-04-281-4/+1
|
* tor-netdoc: Un-gate features impls in doc/netstatus/dir_source.rsIan Jackson2026-04-281-8/+4
| | | | There are no outstanding TODOs here.
* tor-netdoc: Un-gate parse2 and encode mods in doc/netstatus.rs (fmt)Ian Jackson2026-04-281-12/+12
|
* tor-netdoc: Un-gate parse2 and encode mods in doc/netstatus.rs (tidy)Ian Jackson2026-04-281-19/+7
| | | | | | Tidy the imports, and remove some now-unneeded { }. We'll run rustfmt in a moment to sort and reindent.
* tor-netdoc: Un-gate parse2 and encode mods in doc/netstatus.rsIan Jackson2026-04-281-16/+5
| | | | | | | | | | | | | | | | | | | | | | This stabilises the parse2 and encode impls of * NetParams<i32> * ProtoStatuses It also stabilises the parse2 impls of the following types which do not currently have any encode impls: * RelayWeight * rs::SoftwareVersion * IgnoredPublicationTimeSp As for TODOs and incomplete code: the things we're stabilising here are very simple, or fully formed. Implementing encoding for IgnoredPublicationTimeSp looks impossible, but we can cross that bridge when we come to it. We un-cfg-gate the parse2 and encode imports too.
* tor-netdoc: Upgrade a TODO re NetworkStatusUnverifiedVoteIan Jackson2026-04-281-1/+1
|
* tor-netdoc: Un-gate features in doc/microdesc.rs (fmt)Ian Jackson2026-04-281-3/+1
|
* tor-netdoc: Un-gate features in doc/microdesc.rsIan Jackson2026-04-281-16/+10
| | | | | | These are all parse2, and there are no blocking TODOs. We're leaving `build_docs` alone.
* tor-netdoc: Un-gate parse2 in doc/routerdesc.rsIan Jackson2026-04-281-1/+0
| | | | This is just one cfg, for RelayPlatform.
* tor-netdoc: Un-gate parse2 and encode in types/relay_flags.rsIan Jackson2026-04-281-6/+0
| | | | There is one irrelevant TODO.
* tor-netdoc: Un-gate features in types/policy/addrpolicy.rsIan Jackson2026-04-281-3/+0
| | | | There is only one TODO in this file and it's not really relevant.
* tor-netdoc: Un-gate features in types/family.rsIan Jackson2026-04-281-4/+3
| | | | | There is one TODO DIRMIRROR but it's a possible API change. I think it doesn't mean we can't un-gate this now.
* tor-netdoc: Un-gate features in types/policy/portpolicy.rs (fmt)Ian Jackson2026-04-281-16/+15
|
* tor-netdoc: Un-gate features in types/policy/portpolicy.rs (tidy)Ian Jackson2026-04-281-6/+0
|
* tor-netdoc: Un-gate features in types/policy/portpolicy.rsIan Jackson2026-04-281-9/+2
| | | | These are all parse2, and there are no blocking TODOs.
* tor-netdoc: Un-gate features in types/policy.rs (fmt)Ian Jackson2026-04-281-10/+10
|
* tor-netdoc: Un-gate features in types/policy.rs (tidy)Ian Jackson2026-04-281-5/+2
| | | | | | Remove a now-pointless pair of { }. We'll reindent this in a moment.
* tor-netdoc: Un-gate features in types/policy.rsIan Jackson2026-04-281-3/+1
| | | | These are all parse2, and there are no blocking TODOs.
* Merge branch 'ns-auth-entry' into 'main'Clara Engler2026-04-2710-195/+543
|\ | | | | | | | | tor-netdoc: Parsing and encoding for netstatus authority sections See merge request tpo/core/arti!3892
| * tor-netdoc: Remove two now-otiose use'sIan Jackson2026-04-271-2/+2
| |
| * tor-netdoc: ConsensusAuthorityEntry: discuss vote-digestIan Jackson2026-04-271-0/+4
| |
| * tor-netdoc: semver.md: remove a trailing spaceIan Jackson2026-04-271-1/+1
| |
| * tor-netdoc: consensus authority section: document addition in semver.mdIan Jackson2026-04-271-0/+1
| |
| * tor-netdoc: consensus authority section: ConsensusAuthoritySectionIan Jackson2026-04-274-91/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace poc code with new ConsensusAuthoritySection. This is an entirely new parsing approach. Key differences: * We parse the arguments to dir-source, which poc didn't. * We don't clone the input and fully parse the first item; instead, we dismantle the dir-source line ad-hoc to determine the item type. * Rather than a Vec of Enums, we parse into two Vecs of the different entry types. The few lines that aren't rewritten show up as moved in git show --color-moved --color-moved-ws=allow-indentation-change but I suggest reviewing the new implementation de novo.
| * tor-netdoc: consensus authority section: SupersededAuthorityKeyIan Jackson2026-04-272-2/+119
| | | | | | | | | | This is the type corresponding to a "superseded authority key entry", which is a single dir-source line with a weird nickname.
| * tor-netdoc: DirSource: move to new dir_source moduleIan Jackson2026-04-272-42/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | This is going to handle the bizarre `-legacy` nickname encoding for superseded authority keys. That's going to be a fair amount of code, some derived from DirSource. Make a module for it all. We're going to take a different approach that in poc. So there's going to be all-new code and then the poc version will be deleted. They don't resemble each other very much. In this commit: just code motion, and the creation of the new module with associated doc comment. Review with --color-moved.
| * tor-netdoc: VoteAuthoritySection: derive ConstructorIan Jackson2026-04-272-4/+18
| |
| * tor-netdoc: VoteAuthoritySection: add a blank lineIan Jackson2026-04-271-0/+1
| |
| * tor-netdoc: VoteAuthoritySection: implement encodingIan Jackson2026-04-271-0/+15
| | | | | | | | | | We must add to our ad-hoc derive, since the normal derive can't do the encoding either.