| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This fixes a bug where the publisher wasn't preserving the
`DescriptorStatus` of its `HsDirs` when handling consensus changes.
The bug is described in more detailed in the TODO removed by this commit.
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | | |
This is actually a `TimePeriodContext`.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
arti: add ntor-v3 handshake experimental feature
Closes #1084
See merge request tpo/core/arti!1766
|
| | | | | | |
|
| | | | | | |
|
| | | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
An encoded set of extensions in the ntorv3 handshake includes a header
with the number of extensions. This change adds that header.
It also changes `write_many_onto` to take a slice instead of an
iterator, since we need to know the number of extensions up-front. In
principle we could take a clonable iterator instead and use
Iterator::count, but it's probably not worth the extra complexity.
|
| |\ \ \ \
| |_|/ /
|/| | |
| | | |
| | | | |
hsclient: Clean up some TODOs about parallelism.
See merge request tpo/core/arti!1795
|
| | | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | | |
* Be a little more specific about what is being parallelized.
* Remove TODOs about specs, in favor of torspec#244.
* Note some other issues surrounding some of the cases.
(See discussions of points 3-6 at #913)
|
| |\ \ \
| |_|/
|/| |
| | |
| | |
| | |
| | | |
Improve KeySpecifier, errors, IptKeySpecifier impl, etc.
Closes #1116 and #1148
See merge request tpo/core/arti!1796
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
This makes this like the list for ArtiPath.
|
| | | |
| | |
| | |
| | | |
That would allow construction of invalid paths.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Test that the FromStr and TryFrom impls give the same answers as
new().
These tests dodn't even compile before
Properly validate in FromStr
because the derive-more generated version has a wrong error type.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
As pointed out in
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1796#note_2974513
derive-more just parses like the inner type, so an unvalidated String.
That is wrong.
|
| | | |
| | |
| | |
| | | |
Now ArtiPath too is TryFrom<String> and AsRef<str>.
|
| | | |
| | |
| | |
| | | |
This makes it more like ArtiPathComponent and will allow more unification
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | | |
Rename VALID_ARTI_PATH_COMPONENTS from _PATHS. These are tested for
validity as components. I want to add a test for a multi-component
path, so make a place to put it.
|
| | | |
| | |
| | |
| | | |
Rebinding inner locally like this confused me.
|
| | | | |
|
| | | |
| | |
| | |
| | | |
These don't seem critical to me.
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
The previous name was ambiguous, and confusable with KeyPathError
(of which it is, basically, a variant).
|
| | | | |
|
| | | |
| | |
| | |
| | | |
Fix docs link breakage.
|
| | | |
| | |
| | |
| | | |
Minimal changes to still compile and pass tests.
|
| | | |
| | |
| | |
| | |
| | |
| | | |
Normally as_... is a cheap and non-consuming (reference to reference)
conversion. to_ is better here since we don't consume, but we do
allocate.
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
The macro is going to want to be able to do a back-conversion from an
ArtiPath, so there has to be an owned version.
|
| | | |
| | |
| | |
| | |
| | | |
Now they are in the order they appear in the ArtiPath, which is a bit
clearer.
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
And implement serde that way, using SerdeStringOrTransparent.
|
| | | |
| | |
| | |
| | |
| | | |
And make it useable elsewhere by not expecting the particular error
type.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This allows a principled implentation via Display. The alternative
would be to have runtime panics whenever someone uses
KeySpecifierComponentViaDisplayFromStr but the Display impl can
produce wrong syntax (that doesn't fit in an ArtiPathComponent).
Bug seems like the right error since implemnting KeySpecifierComponent
implies that every value is representable in an ArtiPathComponent.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is a variant in KeyPathError, which contains the actual wrong
value, and the key name. But it is also a unit struct to return from
the trait impl.
This replaces ArtiPathError::InvalidDenotator.
|
| | | |
| | |
| | |
| | |
| | | |
Save the ArtiPathComponent in a variable and separate out the Ok(tp)
for clarity. No functional change.
|
| | | |
| | |
| | |
| | |
| | | |
Call sites are shortly going to need the component on the error path,
so this function ought probably not to consume it.
|
| | | |
| | |
| | |
| | |
| | |
| | | |
This is a hostage to fortune.
(In a previous version of !1796 I wanted to make it untrue.)
|
| | | |
| | |
| | |
| | | |
Make it possible for the role to be a field.
|
| | | |
| | |
| | |
| | | |
This saves on some stringify! and improves error checking.
|