aboutsummaryrefslogtreecommitdiff
path: root/tor-dirmgr/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Avoid unwrap() in dirmgr.Nick Mathewson2021-03-042-3/+7
|
* Avoid unwrap() in dirmgrNick Mathewson2021-03-042-11/+22
|
* Make first-level directory retry logic configurable.Nick Mathewson2021-02-173-20/+57
|
* Make our initial bootstrap retry schedule configurarableNick Mathewson2021-02-174-11/+94
|
* tor-dirmgr: simplify config.rs a bit.Nick Mathewson2021-02-161-52/+14
|
* Add support to override network parameters in the configuration.Nick Mathewson2021-02-163-2/+24
|
* Apply "deny_unknown_fields" to configuration types.Nick Mathewson2021-02-122-0/+5
|
* Remove fallback to .arti/cache for cache directoryNick Mathewson2021-02-121-5/+1
|
* Make authorities and fallbacks configurable.Nick Mathewson2021-02-114-153/+44
| | | | | | | | | | This commit adds configuration options for these values, with the right defaults, and uses those options instead of built-in functions to set them. We also remove the function to extract information from chutney directories: now that arti is configurable, it can be chutney's job to make its own network configurations.
* Check declared post-digest on consensus diffs.Nick Mathewson2021-01-251-5/+6
|
* Don't give up easily on initial bootstrap attempts.Nick Mathewson2021-01-251-7/+14
|
* Resolve a few more XXX-A1 comments in dirmgr.Nick Mathewson2021-01-251-18/+29
|
* Remove some not-necessary XXX-A1s in sqlite.rsNick Mathewson2021-01-251-3/+0
|
* dirmgr: fix usage and meaning of `pending`.Nick Mathewson2021-01-252-14/+34
| | | | | The documentation and implementation diverged; the documentation was correct.
* Detect consensuses that are signed by the wrong authorities.Nick Mathewson2021-01-253-13/+57
| | | | | | | | | | | | With this patch we don't consider a consensus to be even potentially well-signed if the authorities that are listed as signing it don't contain enough authorities we believe in. Otherwise, we'd just try fetching certs for them and failing forever. (I found this by switching from a chutney network to the main network without cleaning out my cache.) Closes #44
* dirmgr: Extra explanatory comments.Nick Mathewson2021-01-251-3/+23
| | | | Also replace some "disk" with "cache" in log messages
* dirmgr: Handle another error in download_mds().George Kadianakis2020-12-231-8/+12
| | | | Co-authored-by: David Goulet <[email protected]>
* dirmgr: Handle some errors in download_mds().George Kadianakis2020-12-231-3/+8
| | | | Co-authored-by: David Goulet <[email protected]>
* Fix a few clippy warningsNick Mathewson2020-12-171-2/+5
|
* Download and use consensus diffs.Nick Mathewson2020-12-172-18/+103
| | | | | Had to refactor a few methods for database access, and fix a bug where we were storing valid_until times with the wrong information.
* dirmgr: Refactor so it has no unusable state.Nick Mathewson2020-12-152-25/+57
| | | | | | With this new API, if you have a DirMgr, it has a NetDir that was bootstrapped, and was live at least once during your program's execution.
* Add a "RetryError" to capture the idea of multiple failed attempts.Nick Mathewson2020-12-121-16/+10
| | | | | | When we try to do something a few times and it fails each time, it can be a good idea to remember why the individual failures happened.
* Document a problem on network transitionNick Mathewson2020-12-081-0/+11
|
* De-parameterize ChanMgr and everything that wraps it.Nick Mathewson2020-12-082-77/+32
| | | | | | | | | | | | | | This makes a whole lot of our code simpler, and makes it so that CircMgr and DirMgr no longer need to have anything parameterized over transports, either. Instead of boxing Transport inside of ChanMgr, I've made a new Connection trait that goes from a ChanTarget* straight to a Channel. This lets us avoid having to box the intermediate TLS object. [*] Actually, a copy of the information from a ChanTarget. Ick, but I had to make a copy to avoid parameterizing Connecter::build_channel.
* Fix a logic bug in the --chutney-dir option.Nick Mathewson2020-12-071-4/+6
| | | | | | | It was recording the dirport for each chutney authority as though it were an orport. That obviously won't work. Closes arti#45.
* Mark some XXXX issues as XXXX-A1.Nick Mathewson2020-12-072-19/+22
|
* Fix grammar in a log messageNick Mathewson2020-12-071-1/+1
|
* Add a few log messages about download timing.Nick Mathewson2020-12-072-2/+12
|
* Teach updater to download microdescriptors for usable directory.Nick Mathewson2020-12-073-43/+121
| | | | | | | | | | This follows a three-phase process: We are either fetching microdescriptors, waiting for the time to download the next consensus, or fetching the next consensus and making it usable. We can stop fetching microdescriptors for two reasons: by having no more mds that we need to download, or by running out of time in which the current consensus is usable.
* Reuse microdescriptors from previous consensusNick Mathewson2020-12-061-10/+16
| | | | | Previously, we'd re-parse them from the database every time we got a new consensus.
* Enforce that the periods in a consensus lifetime are nonempty.Nick Mathewson2020-12-041-1/+2
| | | | | To be valid, a lifetime must have valid_after < fresh_until < valid_until.
* Update a few comments.Nick Mathewson2020-12-041-3/+16
|
* Dirmgr: Add a feature to keep the directory up-to-date.Nick Mathewson2020-12-042-27/+231
| | | | | This required me to move the sqlite connection from a rwlock into mutex, since it isn't actually Sync.
* Abandon directory circuits on most kinds of directory failure.Nick Mathewson2020-12-021-3/+14
| | | | | (There are more cases that this _doesn't_ handle, but it's a start for now.)
* tor-dirmgr: retry up to 3 times on download failure.Nick Mathewson2020-12-012-4/+118
|
* Make mmap usage optional.Nick Mathewson2020-12-011-8/+12
|
* tor-dirmgr: tests for storage.rsNick Mathewson2020-12-011-0/+38
|
* Add a decorrelated-jitter implementation.Nick Mathewson2020-11-302-0/+147
| | | | | This is the algorithm we use on download failure to back off before we retry.
* only expire dorectory info on a successful bootstrap.Nick Mathewson2020-11-302-2/+3
|
* Add tests for blob_fname failing casesNick Mathewson2020-11-301-0/+17
|
* More tests for sqlite.rsNick Mathewson2020-11-301-3/+46
|
* Initial tests for authcert storageNick Mathewson2020-11-302-4/+31
|
* tor-dirmgr: Refactor storage not to take AuthCert type.Nick Mathewson2020-11-303-11/+63
| | | | Add a new AuthCertMeta type to make it easier to test.
* tor-dirmgr: Refactor storage not to take Microdesc type.Nick Mathewson2020-11-303-8/+13
| | | | | Since all it needs is an MDDigest, that's what it should take. This will make it easier to test.
* Add a test for sha3_dualNick Mathewson2020-11-301-4/+26
|
* Fetch microdescriptors in parallel.Nick Mathewson2020-11-241-27/+51
|
* A little better logging on bootstrap.Nick Mathewson2020-11-242-3/+13
|
* Make legacy-store code disabled by default.Nick Mathewson2020-11-242-2/+4
| | | | In the long run we might not want it at all.
* Turn client-demo into a mostly-good client.Nick Mathewson2020-11-241-2/+5
|
* Add a function to load a directory from cache.Nick Mathewson2020-11-241-1/+65
|