| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit reorders the real RouterDesc items according to the spec.
Unfortunately, the names of those are not real yet, meaning that
verifying this is somewhat hard. Personally, I recommend to verify that
this commit does not add/remove lines using --color-moved. The correct
order is probably easier to verify with the next commit applied that
adds nice rustdoc comments explaining to which fields in the spec the
respective items belong. This is a bit of a chicken egg situation but
if I would have added the nice rustdoc comments first, this diff would
have been awful to review, because the hunks of reordering the nice
rustdoc comments included are awful to review, so please bear with me
for the next commit.
|
| | |
| |
| |
| |
| |
| |
| |
| | |
This commit reorders the RouterDesc struct into virtual and real items,
with real items being items that actually exist (although potentially
under a different name) in router descriptors. Virtual items on the
other hand do not exist this way in router descriptors and have to be
removed at one point or another.
|
| | |
| |
| |
| | |
Makes this much nicer to read.
|
| | |
| |
| |
| | |
The `revision` field is no longer dead code.
|
| | | |
|
| |\|
| |
| |
| |
| | |
Unknown keyword handling fixes; use a more principled type for directory signature hash algo
See merge request tpo/core/arti!3923
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
This type is now directly suitable for use in directory signatures.
While we're changing its type, rename the digest algorithm name field
from `digestname` to `digest_algo`. (The spec says `algorithm` but I
don't think we're going to reuse `direcctory-signature` for non-RSA
signatures so this is just the hash algorithm.)
|
| | |
| |
| |
| | |
Part of #2492 phase 2.
|
| |/
|
|
|
|
| |
Change all call sites.
This completes the rename.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
| |
These are complete. Un-gate the RouterStatusMdDigestsVote
implementation, and the export of both.
|
| |
|
|
| |
As per #2492.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
This stabilises the parse2 and encode impls of
* Lifetime
* ConsensusMethods
* SharedRandStatus
* ConsensusAuthorityEntry
All of these are complete.
|
| | |
|
| |
|
|
| |
There are no outstanding TODOs here.
|
| | |
|
| |
|
|
|
|
| |
Tidy the imports, and remove some now-unneeded { }.
We'll run rustfmt in a moment to sort and reindent.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
These are all parse2, and there are no blocking TODOs.
We're leaving `build_docs` alone.
|
| |
|
|
| |
This is just one cfg, for RelayPlatform.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
| |
This is the type corresponding to a "superseded authority key entry",
which is a single dir-source line with a weird nickname.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| |
|
|
|
| |
We must add to our ad-hoc derive, since the normal derive can't do the
encoding either.
|
| |
|
|
|
| |
Use deftly's field loop, rather than handcoding the two fields.
(We don't expect to add any fields, but if we did this would be more correct.)
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
Almost entirely code motion. Review with --color-moved.
This is new correct for votes, and uses the non-poc names for things.
We'll improve up a few minor things in a moment.
The cfg situation is getting very tangled. There are already various
TODOs about this. I think it is time to bite the bullet; I will do
that separately from this MR.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Deprecate the compatibility alias.
|
| |
|
|
| |
Use the terminology from the spec.
|
| | |
|
| | |
|