| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | | | |
|
| | | | |
| | | |
| | | |
| | | | |
Pending an official value from the spec.
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
Prompted by
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/586#note_2813565
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | | |
But padding is still not enabled by default.
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | | |
Nothing geenrates config updates yet.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The main copy of the (global) configuration for the client's channels
is going to have to live here, inside this mutex. So this really
needs to become a struct with names fields.
|
| | | | |
| | | |
| | | |
| | | | |
Nothing calls this yet.
|
| | | | |
| | | |
| | | |
| | | | |
It turns out that we are going to want this.
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
We're about to split the main new() function off so write a separate
test for new_disabled().
|
| | | | |
| | | |
| | | |
| | | | |
chanmgr is going to want to make one of these from a NetDir.
|
| |/ / /
| | |
| | |
| | |
| | | |
This avoids confusing bugs where you try to modify the result and
nothing happens!
|
| | | | |
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
Updated the warning message providing additional information about the type of the proxy port.
See merge request tpo/core/arti!596
|
| |/ / /
| | |
| | |
| | | |
of the proxy port.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
Enforce no-ring-in-arti/full (and make it true)
See merge request tpo/core/arti!592
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | | |
See arti#493.
|
| | | | |
| | | |
| | | |
| | | | |
This is another consequence of the `ring` license issue; see #493.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Implement support for reachable_addrs
Closes #491 and #93
See merge request tpo/core/arti!583
|
| | | | | |
| | | | |
| | | | |
| | | | | |
Also, improve its documentation.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Now the primary exposed function is `pick_guard` again.
This commit is just function renaming.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
At the site of modify_hop, we now have a comment explaining the
internal-error issue.
To make the internal error less likely, we lower the modify_hop call
in lib.rs into GuardSet, where it can make sure it's looking at the
same filter as was used to select the guard.
The function name "pick_guard_ext" is not permanent; I'm going to
rename it in the next commit.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Previously, the API said "you need to call this in a loop till it
returns false". We did that in one place, but not another.
With the introduction of filters, forgetting to loop here becomes a
bug: so instead, change the behavior of extend_sample_as_needed so
it handles looping itself.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
These all say, in one form or another, "there is no guard filtering;
there is only one selection". That's now false.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The fake network we construct for these tests is small in ways that
can sometimes cause weird behavior with guard filters. We fix this
by adjusting the parameters of the guard selection algorithm
accordingly in the tests.
With these new parameters, #491 no longer occurs.
This commit also adds comments to explain why the parameters are set
as they are.
Closes #491.
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
(This doesn't do anything yet.)
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
I'm using serde_with here to just re-use the Display and FromStr
implementations, since those are what has proven easier to type in
the past.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
guard-spec.txt specifies that we have multiple separate samples of
guards that we can use depending on whether the filter is
restrictive or not. Here we implement the rules for switching
between samples.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Convert its argument type to Option<&NetDir> to better match the
rest of the API.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
When we're filtering guards, we have to check whether the filter is
"restrictive": if it forbids most of the guards (by bandwidth), we
keep its guards separated from the main set. If it is
super-restrictive, we also warn.
This functionality is specified in guard-spec.txt.
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Since a guard can have a bunch of addresses, and the guard is
permitted if any one of those addresses is permitted, then we might
decide to use a guard with some non-permitted addresses. Thus, we
need to filter those addresses before returning the view of the
guard as a FirstHop.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We don't need to restrict based on bits in the key id any longer,
since we have a real filter.
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The guard filter is now a set of restrictions that can be placed on
allowable guards.
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Use impl_standard_builder more and remove manual Default/builder impls
See merge request tpo/core/arti!594
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|