summaryrefslogtreecommitdiff
path: root/tor-netdir/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Migrate from lazy_static to once_cell.Nick Mathewson2020-12-221-6/+4
|
* Check ipv6 exit policies when trying to connect to an ipv6 port specificallyNick Mathewson2020-12-221-2/+5
|
* Simplification: Every relay is in the same family as itself.Nick Mathewson2020-12-171-0/+5
|
* Make sure that a circuit doesn't use relays in the same familyLunar2020-12-161-0/+8
| | | | | | | | | | | | | We implement `Relay::in_same_family` which is in turn used by `ExitPathBuilder::pick_path` to avoid picking relays in the same family. Compared to the original C implementation, we are missing support for options EnforceDistinctSubnets and NodeFamilySets. This has only been very lightly tested so far. Closes: #43
* Write a few misc unit testsNick Mathewson2020-12-151-0/+33
|
* Remember the actual usable ports for an exit after we've built a circuitNick Mathewson2020-12-141-0/+11
| | | | | | | | Previously we'd just remember the port that we _wanted_ a circuit for, and forget all the ports that it _could_ support. This is part of a bigger circmgr revision/refactoring pass; there should be cleanups before I merge this.
* Fix some rustdoc warnings.Nick Mathewson2020-12-091-1/+1
|
* Use uniform weight all measured weights are zero.Nick Mathewson2020-12-071-9/+13
|
* Mark some XXXX issues as XXXX-A1.Nick Mathewson2020-12-073-3/+3
|
* Add a missing documentation comment.Nick Mathewson2020-12-071-0/+1
|
* Reuse microdescriptors from previous consensusNick Mathewson2020-12-061-1/+4
| | | | | Previously, we'd re-parse them from the database every time we got a new consensus.
* Refactor NetDir a little for space savings and updatingNick Mathewson2020-12-061-19/+96
| | | | | | | Rather than having the NetDir own its microdescs and consensus, give it Arc<>s for them. This way, we can do a shallow copy of a NetDir to work around mutability issues that would otherwise make it hard to add microdescs to a netdir on the fly.
* A few more tests for role-based weightingNick Mathewson2020-12-021-0/+36
|
* Use bwweightscale to avoid miscalculating weights for v2dir relaysNick Mathewson2020-12-021-16/+32
|
* More tests for weight.rs; find a bug.Nick Mathewson2020-12-021-1/+44
|
* Add a few easy tests in weights.rsNick Mathewson2020-12-021-1/+55
|
* a little more refactoring for testabilityNick Mathewson2020-12-021-7/+13
|
* Clarify DFLT_WEIGHT in weights.rsNick Mathewson2020-12-021-1/+4
|
* Resolve a couple of TODOs in weight.rsNick Mathewson2020-12-021-3/+4
| | | | (Thanks to Mike Perry for answers here.)
* weights: refactor a couple of functions to be more testable.Nick Mathewson2020-12-021-5/+14
|
* Use a slightly prettier syntax in max_weightNick Mathewson2020-12-021-1/+2
|
* Fix a few comments in weight.rsNick Mathewson2020-12-021-12/+17
|
* Use a better calculation for deciding if we have enough paths.Nick Mathewson2020-12-021-11/+30
|
* Implement correct (?) weighting for path selection.Nick Mathewson2020-12-022-66/+379
|
* Add a function to load a directory from cache.Nick Mathewson2020-11-241-0/+5
|
* When a consensus has enough descriptors, mark it non-pending.Nick Mathewson2020-11-241-0/+5
|
* Remove a couple of #[allow]s.Nick Mathewson2020-11-201-1/+0
|
* Move storage and config logic from netdir to dirmgr.Nick Mathewson2020-11-207-1191/+0
|
* NetDirConfig: Learn fallback directories from chutney configurations tooNick Mathewson2020-11-202-3/+66
|
* Missing file: whoopsNick Mathewson2020-11-201-0/+223
|
* Use a builder pattern for NetDir.Nick Mathewson2020-11-201-7/+1
|
* Move NetDirConfig into its own module.Nick Mathewson2020-11-201-142/+2
|
* Move some netdir code into submodules.Nick Mathewson2020-11-203-145/+164
| | | | | The Authority type gets its own module; so does the ability to load from legacy storage.
* Initial pass on directory-manager code.Nick Mathewson2020-11-194-54/+125
| | | | | | | | This code can now bootstrap from the network, cache the results, and reload from cache. There's lots more work to do here, including a big pile of tidying and refactoring and testing and documentation.
* Add support for using fallback directories in path constructionNick Mathewson2020-11-192-9/+61
| | | | | | This is mainly a refactoring commit, with a little new code. It also adds #[derive(Copy,Clone)] for a few types.
* Netdir: improve representationNick Mathewson2020-11-171-48/+76
| | | | | Now a netdir no longer holds unwanted microdescs, and it always holds a weight function.
* Netdir: add functions to add mds, and list missing mdsNick Mathewson2020-11-171-0/+25
|
* Netdir: only expose a netdir object if we have enough directory infoNick Mathewson2020-11-172-12/+60
| | | | | The calculation isn't completely right here, but it's a fair stopgap.
* Include a list of fallback directories in tor-netdirNick Mathewson2020-11-163-0/+879
|
* Checkpoint work on a sqlite backend.Nick Mathewson2020-11-166-37/+644
| | | | | | | | | | | Among other stuff, revert parts of previous commit that introduced a ReadableStore abstraction: there isn't a good abstraction hat covers both Tor legacy stores and sqlite stores-- or if there is, I'll have to find it organizally. This isn't a final version: it probably has bugs, and it needs documentation and more tests. But before I do those, I want to sanity-check the API by drafting the next layer up on the stack.
* Have the consensus-parsing code expose the signed piece of the consensus.Nick Mathewson2020-11-161-1/+2
|
* Checkpoint work on making storage backend genericNick Mathewson2020-11-144-53/+187
| | | | Also uses mmap for loading stuff.
* netdir: remove interior mutability.Nick Mathewson2020-11-041-15/+17
|
* Add a new circuit-manager crate and move path selection there.Nick Mathewson2020-11-021-1/+12
|
* Remove a bunch of dbg! calls.Nick Mathewson2020-10-261-3/+0
|
* More documentation in tor-netdoc.Nick Mathewson2020-10-261-1/+3
|
* netdir: don't use relays with NoEdConsensus flag set.Nick Mathewson2020-10-191-1/+1
|
* Improvements to Relay type in tor-netdir.Nick Mathewson2020-10-191-28/+39
| | | | | | | | | | | Now, a Relay is always valid. This required some changes to the API: all_relays() has to return a new UncheckedRelay type that might or might not be valid, and the functions on Relay and ChanTarget that return ed25519 identities need to return an Ed25519Identity, not an ed25519::PublicKey. This change required some new encoding/decoding/conversion functions on Ed25519Identity.
* Cleanup from prop315 implementation.Nick Mathewson2020-10-161-1/+1
| | | | | | | | Most of the fixes here are just removing comments that said "this isn't technically required but I'm going to pretend it is". I also made the "protocols" field in microdescs out of its Option<>, since we're now requiring that.
* Use Ed25519Identity in microdescriptors.Nick Mathewson2020-10-151-2/+9
|