aboutsummaryrefslogtreecommitdiff
path: root/tor-dirmgr/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Resolve clippy warnings from Rust 1.52.Nick Mathewson2021-05-071-15/+13
| | | | | | | | | | Rust 1.52 just came out, and there are new clippy lints to deal with: * It spots more cases when we could use Option::map * It spots more cases when we could use Iterator::flatten * When we build a struct instance, it wants us to list the fields in the same order that the struct declares them.
* Fix documentation warnings.Nick Mathewson2021-05-053-3/+3
|
* A few easy tests in tor-dirmgr.Nick Mathewson2021-05-044-10/+115
|
* Repair multiprocess collaborative directory download.Nick Mathewson2021-05-033-5/+7
|
* dirmgr: a couple of tiny testsNick Mathewson2021-05-032-6/+31
|
* Add trait_duplication_in_bounds warning.Nick Mathewson2021-05-031-0/+1
|
* Add unseparated_literal_suffix lint, and fix it.Nick Mathewson2021-05-031-0/+1
|
* Add a few more clippy warningsNick Mathewson2021-05-031-0/+5
|
* tweak semantics of routerdesc docidNick Mathewson2021-05-031-1/+2
|
* Add some more clippy warnings to our list.Nick Mathewson2021-04-271-1/+6
|
* Enforce (and obey) clippy lints about exhaustive enums, structs.Nick Mathewson2021-04-271-0/+3
| | | | | | | | These lints force us to declare our exported enums and exhaustive-looking structs as non-exhaustive (so that we can add to them in the future without breaking our API) or to explicitly disable the warning for a given enum/struct (to say that we _intend_ for additions to be a breaking change).
* Fix some broken rustdoc links.Nick Mathewson2021-04-182-4/+4
|
* Move timer functions into an extension trait.Nick Mathewson2021-04-172-7/+5
|
* Move around the public modules in tor_rtcompat.Nick Mathewson2021-04-173-3/+3
|
* Remove all non-runtime methods in tor_rtcompat.Nick Mathewson2021-04-162-20/+39
|
* Add a "Runtime" parameter to all the manager types.Nick Mathewson2021-04-163-21/+30
| | | | | This is a big change, but it is a step towards our goal of removing tor_rtcompat:: calls directly.
* Move the "sleep()" function from task to timer.Nick Mathewson2021-04-161-2/+2
|
* Fix a compilation problem with async_std.Nick Mathewson2021-04-131-1/+1
| | | | Thank you, CI!
* Merge branch 'dirstate'Nick Mathewson2021-04-138-1152/+1403
|\
| * Major revision on DirMgr logic -- almost a complete rewrite.Nick Mathewson2021-04-138-1137/+1283
| | | | | | | | | | | | | | | | The big idea of this revision is to separate the code that knows about doing downloads from the code that decides what to download. Later, we can make a similar change for database access. With these changes together, we can make our code much more testable, and eventually enable more download types in parallel.
| * DocQuery: sort requests before splitting.Nick Mathewson2021-04-091-4/+13
| |
| * Start moving responsibility for building requests into dirmgrNick Mathewson2021-04-093-40/+136
| | | | | | | | This will help with my planned "directory state" refactoring.
* | fallbackdir: New list from April 2021David Goulet2021-04-121-410/+1374
|/ | | | Signed-off-by: David Goulet <[email protected]>
* Upgrade rusqlite; remove needless usage.Nick Mathewson2021-04-051-21/+15
|
* DirMgr::netdir() is no longer asyncNick Mathewson2021-04-022-12/+9
| | | | | | | | Since we moved to a non-async mutex(*), we no longer need to worry that this function might need to suspend. (*) This is _not_ safe in general, but it's okay in this case, since we never suspend while holding that mutex: see shared_ref.rs.
* missing file.Nick Mathewson2021-04-021-0/+78
|
* Turn the shared network directory reference into its own typeNick Mathewson2021-04-021-27/+13
| | | | | | Doing this will make it easier to use it from other parts of the crate, and will make it more obvious that it's safe to use a regular (not async) rwlock here.
* Make ConsensusRequest take a flavor.Nick Mathewson2021-04-011-1/+2
|
* 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.