summaryrefslogtreecommitdiff
path: root/crates/tor-netdir
Commit message (Collapse)AuthorAgeFilesLines
* Bump every crate by one patch version.Nick Mathewson2021-11-291-9/+9
|
* add semicolons if nothing returnedDaniel Eades2021-11-253-2/+3
|
* deglob some enums, use concise iteration syntaxDaniel Eades2021-11-251-2/+2
|
* More typo fixes that I forgot to save :(Nick Mathewson2021-11-242-3/+3
|
* Fix a few typos.Nick Mathewson2021-11-241-1/+1
| | | | Also fix some commonwealth spellings that had slipped in.
* Make every Config type implement Eq.Nick Mathewson2021-11-211-1/+1
| | | | | Doing this is necessary for reconfiguration support, and will help a lot with testing, too.
* 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.
* Use named fields for the elements of ConfigBuildErrorNick Mathewson2021-11-181-4/+4
|
* Flatten enforce_distance into path_rules.Nick Mathewson2021-11-181-5/+13
| | | | Also use the path_rules name consistently throughout the code.
* Move top-level configuration downwards from `arti` to `arti-config`.Nick Mathewson2021-11-182-3/+8
| | | | | | | | To do this at all neatly, I had to split out `tor-config` from `arti-config` again, and putting the lower level stuff (paths, builder errors) into tor-config. I also changed our use of derive_builder to always use a common error type, to avoid error type proliferation.
* Fix typosDimitris Apostolou2021-11-121-1/+1
|
* Document that the "experimental-api" feature is not semver-covered.Nick Mathewson2021-11-111-0/+5
|
* Document that the "testing" feature is not semver-covered.Nick Mathewson2021-11-111-0/+3
|
* Bump all crate versions to 0.0.1Nick Mathewson2021-10-291-8/+8
|
* Run "cargo fix --edition-idioms=2018".Nick Mathewson2021-10-221-1/+1
|
* Replace references to arti-client in the documentation.Nick Mathewson2021-10-211-1/+1
|
* Allow type of timeout estimator to change at runtime.Nick Mathewson2021-10-201-0/+9
| | | | | | This is a big change, but it does simplify the type of Builder a little, and isolates locking across different (potential) timeout estimator types.
* 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
|
* Re-export configuration types from tor-client.Nick Mathewson2021-10-091-0/+5
|
* enable checked_conversions lint.Nick Mathewson2021-10-091-0/+1
|
* Initial backend implementation for guard node manager.Nick Mathewson2021-10-072-11/+30
| | | | | | | 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-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.