summaryrefslogtreecommitdiff
path: root/crates/tor-netdir/src/lib.rs
Commit message (Collapse)AuthorAgeFilesLines
* Change deny(clippy::all) to warn(clippy::all).Nick Mathewson2022-02-141-1/+1
| | | | Closes #338.
* extend lints to include 'clippy::all'Daniel Eades2021-12-281-0/+1
|
* Make override_net_params take effect sooner.Nick Mathewson2021-12-071-0/+18
| | | | | This is still not as soon as I'd like: a real change here will require refactoring DirMgr::notify().
* Tests for new family-related functions.Nick Mathewson2021-12-061-0/+35
|
* Move the "real families" code into tor-netdir.Nick Mathewson2021-12-061-6/+25
| | | | | | | | | | | | | | Just as `in_same_family` is a member of Relay, so the function for getting all the real family members of a relay should belong in the same crate. This change also removes the `family()` accessor: it gives the _claimed_ family rather than the _acknlowedged_ family, and is therefore a bit dangerous. There's still a hole in this logic; I've noted it in the Limitations section. If we get a microdescriptor for a relay in between creating and using the guard restriction, it might be omitted from the family list.
* Implement guard family restriction codeNeel Chauhan2021-12-061-0/+6
|
* add semicolons if nothing returnedDaniel Eades2021-11-251-0/+1
|
* deglob some enums, use concise iteration syntaxDaniel Eades2021-11-251-2/+2
|
* Fix a few typos.Nick Mathewson2021-11-241-1/+1
| | | | Also fix some commonwealth spellings that had slipped in.
* Document (and allow) behavior for weird values of subnet masks.Nick Mathewson2021-11-181-2/+10
| | | | Chutney needs this, to avoid putting every relay in the same family.
* Flatten enforce_distance into path_rules.Nick Mathewson2021-11-181-5/+13
| | | | Also use the path_rules name consistently throughout the code.
* Fix typosDimitris Apostolou2021-11-121-1/+1
|
* Run "cargo fix --edition-idioms=2018".Nick Mathewson2021-10-221-1/+1
|
* Fix a documentation link error.Nick Mathewson2021-10-131-4/+2
|
* Add a function to look up a Relay by ChanTarget.Nick Mathewson2021-10-111-0/+8
|
* enable checked_conversions lint.Nick Mathewson2021-10-091-0/+1
|
* Initial backend implementation for guard node manager.Nick Mathewson2021-10-071-7/+16
| | | | | | | There are some missing parts here (like persistence and tests) and some incorrect parts (I am 90% sure that the "exploratory circuit" flag is bogus). Also it is not integrated with the circuit manager code.
* Update total_weight to use UncheckedRelay.Nick Mathewson2021-10-071-3/+7
|
* Make UncheckedRelay public in tor-netdir.Nick Mathewson2021-10-071-4/+4
| | | | This will let us provide a couple of better APIs for use in tor-guardmgr
* 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-291-0/+128
| | | | | I'm not thrilled with this code, but I think it's needed to implement guards correctly.
* 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.
* 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.)
* Fix/suppress a few more clippy lints in tests.Nick Mathewson2021-09-081-0/+1
| | | | | I'm alright with allowing cognitive-complexity violations in the tests.
* Merge remote-tracking branch 'origin/mr/71'Nick Mathewson2021-09-081-2/+3
|\
| * fix/silence clippy lints in test modulesDaniel Eades2021-09-081-2/+3
| |
* | Replace weighted-choice code with rand::seq::SliceRandom.Nick Mathewson2021-09-081-10/+100
|/ | | | | | | | 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-271-0/+1038
This will cause some pain for now, but now is really the best time to do this kind of thing.