summaryrefslogtreecommitdiff
path: root/tor-dirmgr/src
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
|
* When a consensus has enough descriptors, mark it non-pending.Nick Mathewson2020-11-242-6/+52
|
* When storing consensuses, index them by the sha3 of the whole file.Nick Mathewson2020-11-234-21/+52
|
* Document and de-warning the rest of tor-dirmgrNick Mathewson2020-11-236-51/+219
|
* Less copying of the authority list.Nick Mathewson2020-11-231-31/+27
|
* A little documentation in tor-dirmgrNick Mathewson2020-11-231-14/+44
|
* Make "storage" module privateNick Mathewson2020-11-201-1/+1
|
* Remove a couple of #[allow]s.Nick Mathewson2020-11-201-7/+5
|
* Teach DirMgr to use its own NetDir, if present, to bootstrap itself.Nick Mathewson2020-11-201-7/+5
|
* Add a better way to get a shared directory out of a DirMgr.Nick Mathewson2020-11-201-16/+23
|
* Remove needless Arc<> for DirStoreHandle. And DirStoreHandle itself.Nick Mathewson2020-11-201-37/+24
|
* Move a few more responsibilities into NetDirConfig.Nick Mathewson2020-11-203-62/+121
| | | | Also start a DirMgr type.
* Move storage and config logic from netdir to dirmgr.Nick Mathewson2020-11-208-4/+1223
|
* Initial pass on directory-manager code.Nick Mathewson2020-11-191-0/+422
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.