| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
We intern these in Microdesc, and should be consistent.
|
| | |
|
| |
|
|
| |
Rather than converting it to an Arc. This is the new idiom for Intern.
|
| | |
|
| | |
|
| |
|
|
| |
Removes a blocking comment and replaces it with a TODO DIRAUTH.
|
| |
|
|
| |
No functional change.
|
| |
|
|
|
| |
This commit modifies the codebase to actually return Intern<T> in
InternCache<T> and adds calls to .into() accordingly.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
This defines ordering of routerstatus items.
|
| |
|
|
| |
Now it round-trips.
|
| | |
|
| |
|
|
|
|
|
|
| |
Sorting by the applicable consensus methods set seems reasonable.
The spec doesn't state the order for this. I think that's fine.
We can't expect to repro the same consensus with different software,
and we will produce stable output.
|
| |
|
|
|
| |
Prompted by
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3991#note_3413168
|
| |
|
|
|
|
|
|
| |
For encoding, we need to represent the raw parameters.
This change is carefully arranged so that when the retain unknown feature is
disabled (ie, in clients), the per-router data structure remains the
same.
|
| |
|
|
|
| |
This is not tested yet. It will be tested when we add round-trip
tests for votes.
|
| |
|
|
|
|
|
| |
FixedB64 is the right type for these, when they are present.
This abolishes some ad-hoc boilerplate. Sadly we still need a bit of
that for Reasons.
|
| |
|
|
|
|
|
|
|
|
|
| |
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 struct is still a bit odd, and there's a todo saying we may
change it again, but at least now it's now available.
While we're here, rename the variant Tor to CTor.
|
| |
|
|
| |
(It's now done in tor_protover.)
|
| | |
|
| |
|
|
|
|
|
| |
Since we expose the relay_flags module, it makes sense to give this a
shorter name.
(It had a longer name when it was part of the netstatus module.)
|
| |
|
|
| |
The generic parser type is easy enough to name now.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
We're going to separate RelayFlag from RelayFlags.
We could continue to provide a bunch of constant values for
RelayFlags, for each individual type, but that would involve an ad-hoc
derive, and would still be a bit of an unusual API.
Instead, we're going to make ``RelayFlag` a normal enum.
In this commit, we change everyone to refer to it by its singular
name. Hopefully separating out this bulk change makes both this, and
the core commit, easier to review.
|
| |
|
|
| |
This will have space for unknown flags.
|
| |
|
|
|
| |
Provide a per-variety alias and use it for parsing; no longer impl
ItemValueParseable for RelayFlags.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Add links to torspec, and other cross-references.
Change heading fof `IgnoredPublicationTimeSp` to `publication` to
match spec and distinguish it from the `published` item in netstatus
docs.
Align several descriptions with the wording from torspec.
Remove a restatement of a fact from the spec, on the `valid_until`
field in `Lifetime`.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
This makes the Rust structure closer to the document structure.
Arguably, this makes the Rust structure worse. But: I'm really very
keen on avoiding handwritten parsing and printing code. And, in the
longer term, having this linkage will hopefully apply pressure to
avoid further protocol complexity/variation/chaos.
|
| | |
|
| |
|
|
|
| |
We don't need this since RouterStatus no longer implements any sealed
traits.
|
| | |
|
| | |
|
| |
|
|
| |
And export *RouterStatus with the macro, and *Header.
|
| |
|
|
| |
This will allow them to be shared between each_flavor and each_variety.
|
| |
|
|
|
|
| |
Now we can start actually having code to do with votes.
This feature doesn't actually contain any new API surface yet.
|
| | |
|
| |
|
|
| |
Now we only need one type.
|
| |
|
|
|
| |
Our approach to sharing code between md and plain consensuses is now
the new "variety" system, not generics.
|
| |
|
|
|
| |
This doesn't appear in a tor-netdoc rustdoc build from arti 1.4.6.
Shortly, clippy is about to start complaining that it's unreachable pub.
|
| |
|
|
|
|
| |
More code motion.
We're going to get rid of this type completely eventually.
|