summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | Tweak parameters in guardmgr tests to improve testnet behavior.Nick Mathewson2022-06-171-9/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | CircMgr: Enable reachable_addrs filter.Nick Mathewson2022-06-172-1/+21
| | | | |
| * | | | Add a configuration option for reachable_addrsNick Mathewson2022-06-173-0/+46
| | | | | | | | | | | | | | | | | | | | (This doesn't do anything yet.)
| * | | | NetDoc: Make AddrPortPattern implement serde traitsNick Mathewson2022-06-173-2/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | GuardMgr: Support for multiple guard setsNick Mathewson2022-06-172-33/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | Move set_filter into GuardMgrInner.Nick Mathewson2022-06-173-41/+34
| | | | | | | | | | | | | | | | | | | | | | | | | Convert its argument type to Option<&NetDir> to better match the rest of the API.
| * | | | GuardMgr: Function to tell how permissive a filter is.Nick Mathewson2022-06-171-0/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | Make AddrPortPattern and friends implement Eq and PartialEqNick Mathewson2022-06-172-2/+3
| | | | |
| * | | | GuardMgr: Also apply filters to fallback directories.Nick Mathewson2022-06-172-7/+12
| | | | |
| * | | | GuardMgr: remove disallowed addresses from returned FirstHops.Nick Mathewson2022-06-174-2/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | GuardMgr: Remove old testing filter variant.Nick Mathewson2022-06-172-21/+9
| | | | | | | | | | | | | | | | | | | | | | | | | We don't need to restrict based on bits in the key id any longer, since we have a real filter.
| * | | | GuardMgr: Add a new filter type based on reachable addresses.Nick Mathewson2022-06-172-8/+24
| | | | |
| * | | | Guardmgr: Change the GuardFilter API.Nick Mathewson2022-06-173-19/+46
| |/ / / | | | | | | | | | | | | | | | | The guard filter is now a set of restrictions that can be placed on allowable guards.
* | | | Merge branch 'config-fix2' into 'main'Nick Mathewson2022-06-168-104/+76
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | Use impl_standard_builder more and remove manual Default/builder impls See merge request tpo/core/arti!594
| * | | | tor-proto: channel: Tell clippy it's ok to print in testsIan Jackson2022-06-161-0/+1
| | | | |
| * | | | impl_standard_builder: Use for tor_dirmgr::AuthorityIan Jackson2022-06-161-10/+2
| | | | |
| * | | | impl_standard_builder: Use for tor_guardmgr::FallbackDirIan Jackson2022-06-161-6/+3
| | | | |
| * | | | impl_standard_builder: Use for tor_dirmgr::DownloadScheduleIan Jackson2022-06-161-14/+3
| | | | |
| * | | | impl_standard_builder: Use for arti::logging::LogfileConfigIan Jackson2022-06-161-7/+2
| | | | |
| * | | | impl_standard_builder: Allow for !DefaultIan Jackson2022-06-161-13/+54
| | | | |
| * | | | arti: logging config: Replace a manual Debug implIan Jackson2022-06-162-7/+5
| | | | |
| * | | | impl_standard_builder: Use for tor_dirmgr::DownloadScheduleConfigIan Jackson2022-06-161-14/+1
| | | | |
| * | | | impl_standard_builder: Use for tor_dirmgr::NetworkConfigIan Jackson2022-06-161-19/+2
| | | | |
| * | | | impl_standard_builder: Use for tor_dirmgr::DirSkewToleranceIan Jackson2022-06-161-13/+2
| | | | |
| * | | | tor-config: impl_standard_builder: handle contexts with local ResultIan Jackson2022-06-161-1/+1
| | | | |
* | | | | Merge branch 'upgrade_float_eq' into 'main'Ian Jackson2022-06-161-1/+1
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Upgrade to float_eq 1.0.0 See merge request tpo/core/arti!591
| * | | | | Upgrade to float_eq 1.0.0Nick Mathewson2022-06-161-1/+1
| | |/ / / | |/| | |
* | | | | Merge branch 'config-fix' into 'main'Ian Jackson2022-06-164-49/+92
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Config handling and logging fixes Closes #480 See merge request tpo/core/arti!589
| * | | | | arti: cfg: Remove another needless borrowIan Jackson2022-06-161-1/+1
| | | | | |
| * | | | | arti cfg tests: Remove a redundant line that shadows an earlier bindingIan Jackson2022-06-161-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prompted by review https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/589#note_2813596
| * | | | | Fix grammar erroreta2022-06-161-1/+1
| | | | | |
| * | | | | arti: Enable some pre-config loggingIan Jackson2022-06-161-2/+16
| | | | | |
| * | | | | arti: Introduce closure which will be used for pre-config loggingIan Jackson2022-06-161-31/+52
| | | | | | | | | | | | | | | | | | | | | | | | Right now this is an IEFI and therefore a no-op.
| * | | | | arti cfg tests: Test that example config works as-isIan Jackson2022-06-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | It contains only sections, but we want to detect when that is a problem!
| * | | | | arti: cfg tests: Refactor to prepare for new testIan Jackson2022-06-161-16/+23
| | |/ / / | |/| | | | | | | | | | | | | We're going to call this new closure another time.
| * | | | Add some missing `serde(default)` to uses of humantime_serde::optionIan Jackson2022-06-162-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | Without this, if the substructure is provided, these fields are mandatory within it.
* | | | | Merge branch 'main' into 'accel-features'Nick Mathewson2022-06-1629-158/+271
|\ \ \ \ \ | | |/ / / | |/| | | | | | | | # Conflicts: # crates/arti-client/Cargo.toml
| * | | | Merge branch 'high-level-features' into 'main'Nick Mathewson2022-06-1612-86/+166
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add "full" and "experimental" features to arti, arti-client, and below. Closes #499 See merge request tpo/core/arti!584
| | * | | | Remove "rustls" from "full", for license reasons.Nick Mathewson2022-06-154-5/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rustls uses ring, which uses code from BoringSSL, which derived from OpenSSL before OpenSSL changed their license. So ring is currently under 3BSD/SSLEay licenses, which aren't GPL-compatible, which may be a problem for some people. See #493.
| * | | | | Merge branch 'clippy_20220614' into 'main'Nick Mathewson2022-06-157-12/+21
| |\ \ \ \ \ | | |_|/ / / | |/| | | | | | | | | | | | | | | | Fix several clippy issues, most with nightly See merge request tpo/core/arti!588
| | * | | | Add one more "allow" to tor_netdoc::parse::macros.Nick Mathewson2022-06-151-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without this, clippy is error-free, but `cargo test` somehow gives a warning.
| | * | | | Permit eprintln in channel-padding test.Nick Mathewson2022-06-151-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is not, apparently, an eprintln equivalent for allow-dbg-in-tests.
| | * | | | Fix clippy::significant_drop_in_scrutinee warningsNick Mathewson2022-06-154-12/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is apparently a new warning from clippy nightly, documented in https://rust-lang.github.io/rust-clippy/master/index.html#significant_drop_in_scrutinee . I'm not in love with the temporary variables that this warning wants me to introduce, but it does seem like a decent way to avoid some kinds of deadlock.
| | * | | | Work around an erroneous warning from nightly clippyNick Mathewson2022-06-151-0/+3
| | | |/ / | | |/| |
| * | | | Merge branch 'unwrap' into 'main'Nick Mathewson2022-06-138-45/+15
| |\ \ \ \ | | |/ / / | |/| | | | | | | | | | | | | tor-netdir: testnet: Make construct_netdir infallible See merge request tpo/core/arti!585
| | * | | tor-netdir: testnet: Make construct_netdir infallible (rustfmt)Ian Jackson2022-06-136-30/+10
| | | | | | | | | | | | | | | | | | | | | | | | | Run rustfmt. Separate commit to make review of the substantive commit easier.
| | * | | tor-netdir: testnet: Make construct_netdir infallibleIan Jackson2022-06-138-15/+5
| | | | | | | | | | | | | | | | | | | | | | | | | This is a *lot* of unwraps. The function takes no parameters and is used only for testing. It ought to be infallible.
| * | | | Merge branch 'dormant_directory' into 'main'Nick Mathewson2022-06-137-90/+218
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use TaskSchedule to sleep in directory bootstrapping Closes #497 See merge request tpo/core/arti!571
| | * | | | DirMgr: Use scopeguard crate in place of ad hoc RAII substitutesNick Mathewson2022-06-132-68/+19
| | | | | |
| | * | | | Put the task schedule back when the dl task exits.Nick Mathewson2022-06-131-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will allow somebody else to call bootstrap() if bootstrap() fails the first time.