aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-dirmgr/src
Commit message (Collapse)AuthorAgeFilesLines
...
* bridge desc mgr: Honour specified dormancyIan Jackson2022-11-231-6/+13
| | | | Fixes #630
* bridge desc mgr: Introduce effective_parallelism helperIan Jackson2022-11-231-5/+12
|
* bridge desc mgr: Move set_dormancy to impl that is for mock tooIan Jackson2022-11-231-6/+6
|
* BridgeConfig: Replace all Arc<BridgeConfig> with BridgeConfigIan Jackson2022-11-222-5/+4
| | | | BridgeConfig is itself an Arc now, so these are redundant.
* Fix a couple of rustdoc issues.Nick Mathewson2022-11-181-1/+2
| | | | These slipped in while nightly was broken.
* Fix a bunch of "needless borrow" warnings on nightlyNick Mathewson2022-11-182-3/+3
| | | | | It looks like, despite a few false starts, they've got this warning right; there weren't any false positives.
* dirmgr Store: Have constructors take DirMgrStoreIan Jackson2022-11-141-6/+13
| | | | | | | Now the Store is constructed by arti_client, solving the problem described here https://gitlab.torproject.org/tpo/core/arti/-/issues/631#note_2853665 but in a different way.
* dirmgr Store: Introduce DirMgrStore and use for BridgeDescMgr (fmt)Ian Jackson2022-11-141-8/+1
| | | | rustfmt only, broken out to ease review.
* dirmgr Store: Introduce DirMgrStore and use for BridgeDescMgrIan Jackson2022-11-142-6/+33
| | | | We are going to change DirMgr's constructors to also take a DirMgrStore.
* dirmgr Store: Abolish redundant trait implIan Jackson2022-11-142-109/+1
|
* dirmgr Store: Use `**` syntax and deref to trait objectsIan Jackson2022-11-142-34/+20
| | | | This will allow us to get rid of a needless trait impl.
* dirmgr Store: Move Send and 'static bounds to Store traitIan Jackson2022-11-141-2/+2
| | | | | | | | This seems tidier to me. (It saved a lot of typing when I was trying to make some complicated pub supertrait with sealed private supertrait, but apparently not now.)
* bridge descriptor dormancy: Accept the dormancy valueIan Jackson2022-11-112-1/+11
| | | | But right now, don't do anything with it. That will come in a future MR.
* bridge descriptor dormancy: Add a TODO for this enumIan Jackson2022-11-111-0/+2
|
* bridge descriptor dormancy: Define an enum and semanticsIan Jackson2022-11-101-0/+39
| | | | This is part of #630.
* Merge branch 'bridge-error' into 'main'Nick Mathewson2022-11-101-3/+2
|\ | | | | | | | | Use ErrorKind::TorAccessFailed for misbehaving bridges See merge request tpo/core/arti!842
| * Use ErrorKind::TorAccessFailed for misbehaving bridgesIan Jackson2022-11-081-3/+2
| | | | | | | | (Use semantic linefeed for the doc comment.)
* | Merge branch 'bdm-process-doc-test' into 'main'Nick Mathewson2022-11-102-2/+100
|\ \ | | | | | | | | | | | | bridge descs: Add tests for process_document See merge request tpo/core/arti!841
| * | bridge descs: Add tests for process_documentIan Jackson2022-11-082-2/+100
| |/
* | Merge branch 'bdm-params' into 'main'Nick Mathewson2022-11-101-1/+0
|\ \ | | | | | | | | | | | | Remove TODO re BridgeDescDownloadConfig defaults See merge request tpo/core/arti!839
| * | Remove TODO re BridgeDescDownloadConfig defaultsIan Jackson2022-11-081-1/+0
| |/
* | bridge desc: Drop a done TODOIan Jackson2022-11-081-1/+0
| | | | | | | | | | We have a separate BridgeDescMgr, rather than reusing DirMgr, so we will not be implementing BridgeDescProvider for DirMgr.
* | bridge desc: todo re config: weaken and reference a new ticketIan Jackson2022-11-081-3/+2
|/
* Merge branch 'store' into 'main'Nick Mathewson2022-11-084-41/+463
|\ | | | | | | | | | | | | Persistently cache bridge descriptors Closes #619 See merge request tpo/core/arti!831
| * bridge descs: Rename BridgeDescMgr from BridgeDescManagerIan Jackson2022-11-082-15/+15
| | | | | | | | | | | | This is more consistent with our naming elsewhere. Suggested-by: Nick Mathewson <[email protected]>
| * bridge descs: Apply sensitive() to bridge identity in error log msgIan Jackson2022-11-081-1/+2
| |
| * sqlite cache: Document reasoning about timestampsIan Jackson2022-11-081-2/+9
| | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/831#note_2851764
| * bridge desc tests: Test caching and if-modified-sinceIan Jackson2022-11-041-2/+121
| |
| * bridge desc tests: Break out queues_are_empty helperIan Jackson2022-11-041-2/+6
| |
| * bridge desc tests: Provide a sqlite connectionIan Jackson2022-11-041-2/+5
| | | | | | | | The current test case doesn't use this.
| * bridge desc: Implement storage functions at the DB layerIan Jackson2022-11-041-8/+67
| |
| * bridge desc: Make Downloaded be DebugIan Jackson2022-11-041-0/+1
| |
| * bridge desc: Implement cache reuse logic and if-modified-sinceIan Jackson2022-11-043-9/+195
| | | | | | | | | | | | | | | | | | | | | | | | This introduces the new API functions to Store. But currently they are all no-ops. So all this machinery doesn't actually do anything. Also, it changes the API to the mockable downloader, to allow it to support if-modified-since. So this isn't used either. But it is more convenient to do this all at once in BridgeDescManager, since care needs to be taken about the intraction between if-modified-since and the persistent cache.
| * bridge desc: Rename one more variable to textIan Jackson2022-11-041-1/+1
| |
| * bridge desc: Catch panics in the download functionalityIan Jackson2022-11-041-1/+8
| |
| * bridge desc: Provide a Store to the bridge desc managerIan Jackson2022-11-043-16/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We use the one in the dirmgr. That means that our constructor now has to take a dirmgr. And, the dirmgr must have a circmgr. This is all rather odd, TBH. Add .. to the binding of the return values from setup, as future-proofing. The tests now need to provide a Store too. Make the sqlite::new_empty function pub(crate) so we can use it. We must retain the _db_tmp_dir, since when it goes away the tmp directory is deleted and the db goes readonly.
| * bridge desc tests: Apply tracing_test::traced_testIan Jackson2022-11-041-0/+2
| | | | | | | | This lets us see the log messages. They look fine, as it happens.
* | Merge branch 'store-yak-misc' into 'main'eta2022-11-083-11/+34
|\| | | | | | | | | Small misc yaks for bridge descriptor persistence See merge request tpo/core/arti!828
| * tor-dirmgr: impl AsRef<dyn Error> for ErrorIan Jackson2022-11-041-0/+7
| | | | | | | | This allows use with tor_error::Report.
| * dirmgr: Make store be in an ArcIan Jackson2022-11-041-2/+2
| | | | | | | | | | This will let us share it with the bridge descriptor manager. (As discussed with Nick.)
| * dirmgr sqlite store: Improve schema updatesIan Jackson2022-11-041-9/+25
| | | | | | | | | | | | | | | | | | * Centralise applying the schema updates, in a closure * Make the schema update SQL texts be in an array so we can loop * Make the version update statement generic, not cloned-and-hacked This will make it possible to add another schema version without error-prone conditions etc.
* | Fix typosDimitris Apostolou2022-11-061-1/+1
|/
* bridgedesc: Rename "text" from "output"Ian Jackson2022-11-031-5/+5
| | | | | | This was confusing, because it's the output of the donwload, but nowhere near the output of the whole process. And it's going to become even less so.
* bridgedesc: Make process_document into a free functionIan Jackson2022-11-031-53/+67
| | | | It deserves this treatment, I think.
* bridgedesc: Introduce DownloadedIan Jackson2022-11-031-13/+17
| | | | | This gives names to things and makes things clearer, and this will be even more true in a moemnt.
* bridgedesc: download: Break out process_documentIan Jackson2022-11-031-47/+54
| | | | We're going to want to reuse this for handling cached stuff.
* bridgedesc: Prepare Mockable trait for if-modified-sinceIan Jackson2022-11-032-6/+15
|
* Run add_warnings.Nick Mathewson2022-11-031-0/+1
|
* bridge descriptors tests: Fix flaky testIan Jackson2022-11-031-1/+11
|
* bridge descriptors tests: Test set_bridges more thoroughly (fix)Ian Jackson2022-11-031-1/+1
| | | | | | The RetryDelays are being triggered for the 2nd time here, so their timeouts can be longer. We must bump the sleep to make sure we don't have a flaky test.