aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-netdir
Commit message (Collapse)AuthorAgeFilesLines
...
* Add From<u64> for RelayWeight.Nick Mathewson2021-10-071-0/+6
|
* Ensure pick_n_relays returns relays in random order.Nick Mathewson2021-09-291-3/+5
| | | | (Also, fix a test)
* tor-netdir: Add RelayWeight type and accessors.Nick Mathewson2021-09-292-0/+129
| | | | | I'm not thrilled with this code, but I think it's needed to implement guards correctly.
* tor_netdir::testnet: Correct a documentation error.Nick Mathewson2021-09-291-1/+1
|
* tor-netdir: Add some accessor that guardmgr will need.Nick Mathewson2021-09-291-2/+67
| | | | | | | | We'll need `id_pair_is_listed()` to track whether a sampled guard is (or is not) listed in the consensus. We'll need `missing_descriptor_for` to see whether we've downloaded enough microdescs to use a consensus.
* Typo fix in comment.Nick Mathewson2021-09-291-1/+1
|
* tor-netdir: Add a by_id_pair() function to look up a relay by both IDs.Nick Mathewson2021-09-161-1/+21
|
* Add identity-based accessors (and indices) to NetDir.Nick Mathewson2021-09-101-36/+152
| | | | | | (Thank goodness for rust; we messed up the coherency in C here so many times, but I'm pretty sure that this time around we can't have gotten it wrong.)
* Use derive_builder for Authority and FallbackDir.Nick Mathewson2021-09-102-53/+19
|
* Suppress a cognitive-complexity lint in testsNick Mathewson2021-09-091-0/+1
|
* Add guard-related network parameters.Nick Mathewson2021-09-091-3/+118
|
* Use macros and traits to simplify the declaration of parameters.Nick Mathewson2021-09-091-135/+144
| | | | | | | | | | | | | | | | Previously, we'd have to declare the field for a parameter in one place, its default in a second, and its consensus key in a third. That's error-prone and not so fun! This patch changes the way we declare parameters so that we declare a structure once, and macros expand it to all do the right thing. This required a few new traits and implementations to ensure uniformity across the types that can go in parameters: We need every parameter type to implement TryFrom<i32> and to implement SaturatingFromInt32. Eventually we might want SaturatingFromInt32 to be a more generic SaturatingFrom, but that's not for now.
* Fix/suppress a few more clippy lints in tests.Nick Mathewson2021-09-082-0/+2
| | | | | I'm alright with allowing cognitive-complexity violations in the tests.
* Merge remote-tracking branch 'origin/mr/71'Nick Mathewson2021-09-083-3/+5
|\
| * fix/silence clippy lints in test modulesDaniel Eades2021-09-084-3/+6
| |
* | Check for correct-ish decoding of all parameters.Nick Mathewson2021-09-081-4/+77
| |
* | Add validation function to WeightSetNick Mathewson2021-09-081-1/+18
| | | | | | | | | | Our relay selection code can give wrong answers if we overflow u64::MAX, so let's make sure we never do that.
* | Replace weighted-choice code with rand::seq::SliceRandom.Nick Mathewson2021-09-083-231/+159
|/ | | | | | | | Doing this makes the code faster, lets us throw away some code, and makes it easier to add a "choose-N-disjoint relays" implementation. See large comment about plusses and minuses of new code. (Note that the old implementation wasn't constant-time either.)
* Move all crates into a `crates` subdirectory.Nick Mathewson2021-08-279-0/+2684
This will cause some pain for now, but now is really the best time to do this kind of thing.