summaryrefslogtreecommitdiff
path: root/tor-dirmgr/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Add accessors for members of different directory requestsNick Mathewson2021-04-011-3/+3
| | | | | | | | This will let us use these types both as client and server-side implementations. Making this change required me to change the download code to take requests by reference. (Sorry, David)
* DirMgr: add text() and texts() functions to ask for document textNick Mathewson2021-03-315-29/+317
| | | | | Also, start on a larger refactoring where we ask for documents by their ID.
* Refactor sqlite.rs to know about consensus flavors.Nick Mathewson2021-03-312-27/+56
| | | | | These were stored in the database before, but they were hardwired in the API.
* Use Arc::make_mut() to simplify the code a bitNick Mathewson2021-03-301-7/+11
| | | | | Previously we used NetDir::extend here, which used try_unwrap. But it's much simpler to use the intended object for this purpose.
* Look for RdDigest in the right locationNick Mathewson2021-03-301-1/+2
|
* small tweaks to routerdesc storage code.Nick Mathewson2021-03-301-48/+20
|
* dirmgr: Add functions to store/read/update router descriptorsDavid Goulet2021-03-301-3/+131
| | | | Signed-off-by: David Goulet <[email protected]>
* dirmgr: Add SQLite schema for router descriptorsDavid Goulet2021-03-301-9/+21
| | | | Signed-off-by: David Goulet <[email protected]>
* Make reasonable set of default fallback directoriesNick Mathewson2021-03-303-4/+759
|
* Give the authorities value a reasonable default.Nick Mathewson2021-03-302-1/+36
|
* Add a NetDirConfig::use_default_cache_path() function.Nick Mathewson2021-03-301-0/+14
|
* resolve a clippy issueNick Mathewson2021-03-301-1/+3
|
* Declare a better default for DownloadScheduleConfig.Nick Mathewson2021-03-302-3/+35
|
* Fix Rust-1.51 clippy warnings about acronyms in camel case.Nick Mathewson2021-03-294-22/+22
| | | | This is painful, but we shouldn't have to do it again.
* Rename Rsa{Identity,Signature} to fix clippy warning.Nick Mathewson2021-03-291-4/+4
|
* DirMgr: cooperative multiprocess support.Nick Mathewson2021-03-294-60/+170
| | | | | | | | | | | | | | A directory manager can now launch or run in read-only or read-write mode, depending on whether it manages to acquire a lock on the filesystem. In read-write mode, it bootstraps and stores data into the database as usual. In read-only mode, it assumes that another process will be updating the database, and so it only loads it periodically, looking for new information. However, it also tries to acquire the lock itself, so it can enter read-write mode.
* Create a DirMgr::load_or_bootstrap_from_config.Nick Mathewson2021-03-291-0/+16
|
* Add support for a lockfile to control concurrent access to a dirmgr.Nick Mathewson2021-03-292-11/+92
|
* Add DirMgr::load_once.Nick Mathewson2021-03-292-0/+29
| | | | | This function loads a current bootstrapped directory from disk, if it can.
* Use the CircMgr in the DirMgr for all our downloading needs.Nick Mathewson2021-03-292-25/+24
|
* Make CircMgr an optional element of DirMgr. Not yet used.Nick Mathewson2021-03-292-3/+18
|
* Add a compatibility layer so we can upgrade rand_core.Nick Mathewson2021-03-182-2/+2
| | | | | | dalek-crypto is stuck on rand_core 0.5.1, so we've been stuck too. This commit introduces a compatibility module so that we can wrap new rand_core instances to make them backward compatible.
* 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
|