summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | tor-hsservice tests: Break out shutdown_check_no_tasksIan Jackson2023-12-041-4/+7
| | | | | | | | We're going to add another call site in a moment.
* | tor-hsservice: Use keystore to store and reuse IPT keysIan Jackson2023-12-044-9/+85
| |
* | tor-hsservice: ipt_mgr: Prepare for nonfatal IPT creation errorsIan Jackson2023-12-042-5/+42
| | | | | | | | | | | | | | | | | | Previously IPT creation could only fail due to key generation failures or other kinds of internal error, which were very unlikely and treated as fatal. But with key persistence, IPT creation will be able to fail due to eg disk full.
* | tor-hsservice: Define key specifiers for IPT keysIan Jackson2023-12-042-1/+58
| |
* | tor-hsservice: ipt_set: Store publication timesIan Jackson2023-12-041-16/+101
| |
* | tor-hsservice: ipt_mgr: Save and load IPT relays etc. (fmt)Ian Jackson2023-12-041-6/+3
| |
* | tor-hsservice: ipt_mgr: Save and load IPT relays etc.Ian Jackson2023-12-042-10/+155
| | | | | | | | | | | | | | | | Store the IPT manager's data structure to the provided storage manager. Keys are not persistent yet! And we must save the publication IPT set since it can have the only record of IPT publication times.
* | tor-hsservice: ipt_set: Have various methods take a RuntimeIan Jackson2023-12-045-16/+29
| | | | | | | | | | | | | | | | Actually, a SleepProvider. We will need this for timestamp conversion during loading and saving. channel() needs it to load. note_publication_attempt needs it for saving, as does borrow_for_update.
* | tor-hsservice: ipt_set: Have various methods take a Runtime (pre-fmt)Ian Jackson2023-12-044-6/+19
| | | | | | | | Whitespace changes that make the next commit less noisy.
* | tor-hsservice: ipt_set: Provide IptManagerView::borrow_for_read()Ian Jackson2023-12-041-2/+10
| | | | | | | | | | | | | | We're about to make borrow_for_update() take a runtime parameter, which will be a bit annoying. borrow_for_read() doesn't need one. Call sites will come on a moment.
* | tor-hsservice tests: Use a real storage manager for IPT manager testsIan Jackson2023-12-041-2/+8
| |
* | tor-hsservice tests: Break out create_storage_handles_from_state_mgrIan Jackson2023-12-041-2/+9
| | | | | | | | We're going to want to reuse this.
* | tor-hsservice tests: Break out MockedIptManager state structIan Jackson2023-12-041-18/+45
| | | | | | | | | | | | | | And therefore, break out the IPT manager startup, into a MockedIptManager::start. We can have it borrow the TempDir, legitimising the _untracked call.
* | tor-hsservice tests: Use a real keystore for IPT manager testsIan Jackson2023-12-041-54/+4
| | | | | | | | | | | | IPT persistence tests will need to actually save things. We'll fix up the `.into_untracked()` wrinkle shortly.
* | tor-hsservice tests: publish: Make run_test take a runtimeIan Jackson2023-12-041-2/+3
| | | | | | | | | | We're about to need to arrange to have the same runtime earlier, so run_test needs to accept one from the caller.
* | tor-hsservice tests: test_temp_dir: Make macro not assume importIan Jackson2023-12-041-1/+1
| |
* | tor-hsservice: ipt_set: Make ::channel() fallibleIan Jackson2023-12-044-8/+10
| | | | | | | | This is going to load the state from disk.
* | tor-hsservice: Pass and record storage handlesIan Jackson2023-12-046-13/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Introduce type aliases for the Arc<dyn >. Add Send and Sync bounds. * Pass the storage manager to ipt_mgr and the per-key handle to ipt_set. * Store the handles in ipt_mgr::Immutable and IptPublishSet. * Change the ipt mgr storage key to "hs_ipts_{nickname}". This avoids use of "_" as a non-separator, and allows the possibility of other submodules using other storage keys too - and, here, we introduce one. * Provide a dummy struct for the IPT set state, which is needed to define the type alias etc. We'll populate that struct later.
* | tor-hsservice: Provide StartupError variants for failed state readsIan Jackson2023-12-041-0/+26
| |
* | tor-hsservice: Introduce IptStoreErrorIan Jackson2023-12-045-8/+72
| | | | | | | | | | | | | | | | | | | | If we can't store IPT details, we mustn't publish the corresponding IPT. But that's not fatal; maybe we can store later. So introduce a new IptStoreError type, and change the return value from some functions that are going to be able to fail that way. This introduces a new TODO HSS: we need the publisher to be able to retry after such a failure.
* | Merge branch 'publisher-bug' into 'main'gabi-2502023-12-041-28/+58
|\ \ | | | | | | | | | | | | | | | | | | tor-hsservice: Measure last_uploaded from when the upload was initiated. Closes #1142, #1130, and #1132 See merge request tpo/core/arti!1787
| * | tor-hsservice: Add more details to the last_uploaded docs.Gabriela Moldovan2023-12-041-0/+9
| | |
| * | tor-hsservice: If upload_all fails, retry after 5min.Gabriela Moldovan2023-12-041-13/+33
| | | | | | | | | | | | Fixes #1132
| * | tor-hsservice: Update a handful of publisher logs.Gabriela Moldovan2023-12-041-2/+5
| | | | | | | | | | | | This promotes some logs to `debug!` and adds some new trace-level logs.
| * | tor-hsservice: Remove unnecessary TODO HSS.Gabriela Moldovan2023-12-041-3/+0
| | | | | | | | | | | | | | | | | | | | | I don't think we need to do this (rate-limiting/debouncing the uploads in upload_all should be sufficient). Closes #1130
| * | tor-hsservice: Rename upload_rate_lim_ to reattempt_upload.Gabriela Moldovan2023-12-041-6/+6
| | | | | | | | | | | | | | | We're about to use this for retrying failed uploads too (so let's give it a more generic name).
| * | tor-hsservice: Reduce the upload rate limit threshold.Gabriela Moldovan2023-12-041-1/+1
| | |
| * | tor-hsservice: Measure last_uploaded from when the upload was initiated.Gabriela Moldovan2023-12-041-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | This also fixes an incorrect duration calculation (it should be `now.duration_since(last_uploaded)` rather than `last_uploaded.duration_since(now)`). Fixes #1142
* | | Merge branch 'dirs' into 'main'gabi-2502023-12-046-13/+27
|\ \ \ | | | | | | | | | | | | | | | | Cleanup and clarification re cache_dir and state_dir (rename in tor_dirmgr) See merge request tpo/core/arti!1789
| * | | arti config: Declare who is supposed to add path leaf componentsIan Jackson2023-12-041-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | Currently some components do this one way, and some the other. This is confusing. We should do it one way. This way is slightly better because it makes navigation with `grep` easier.
| * | | tor-dirmgr: Rename DirMgrConfig.cache_path to cache_dirIan Jackson2023-12-045-10/+11
| | | | | | | | | | | | | | | | | | | | | | | | This variable contains precisely the value of cache_dir from arti_client::config::StorageConfig and it should therefore have the same name.
| * | | arti config: Declare cache_dir /var/cache like natureIan Jackson2023-12-041-0/+5
| | | |
| * | | arti config: Declare cache_dir is not necessarily just the Tor directoryIan Jackson2023-12-041-1/+1
| | | |
| * | | arti-example-config: Do not claim that state_dir is unusedIan Jackson2023-12-041-2/+0
| |/ / | | | | | | | | | tor-ptmgr uses it, and the key manager too.
* | | Merge branch 'files' into 'main'Nick Mathewson2023-12-042-1/+13
|\ \ \ | | | | | | | | | | | | | | | | Two minor fixes relating to file handling in tor-hsservice See merge request tpo/core/arti!1792
| * | | tor-hsservice: test_temp_dir: Create the directory in .used_byIan Jackson2023-12-041-1/+10
| | | | | | | | | | | | | | | | | | | | The existing callers all use create_dir_all but new callers shouldn't ahve to, eg if they just want a single file.
| * | | tor-hsservice: Add a TODO about state_dir reconfigurationIan Jackson2023-12-041-0/+3
| |/ /
* | | Remove semver.md files.Nick Mathewson2023-12-0411-27/+0
| | |
* | | Two more patchlevel bumpsNick Mathewson2023-12-048-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | These crates both depend on tor-error. Since tor-error got a patchlevel bump, they now depend on the new version, which means by our rules that _they_ get a patchlevel bump themselves. tor-geoip tor-rpcbase
* | | Bump minor versions in preparation for releaseNick Mathewson2023-12-0432-183/+183
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This crate is new, and gets a bump to 0.1.0. tor-log-ratelim This crate had a breaking change: tor-persist tor-llcrypto had a breaking change. These crates _are_ tor-llcrypto, or (transitively) depend on it. I am assuming that they all re-expose something from it in a way that matters: tor-llcrypto tor-bytes tor-hscrypto tor-socksproto tor-checkable tor-cert tor-linkspec tor-cell tor-proto tor-netdoc tor-consdiff tor-netdir tor-chanmgr tor-ptmgr tor-guardmgr tor-circmgr tor-dirclient tor-dirmgr tor-keymgr tor-hsclient tor-hsservice tor-hsrproxy arti-client arti-rpcserver arti-hyper
* | | Bump patchlevel versions in preparation for releaseNick Mathewson2023-12-0434-97/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These crates had backward-compatible changes, and get a patchlevel bump only: fs-mistrust tor-error tor-config tor-rtcompat tor-rtmock This crate exposes no non-CLI APIs, and gets a patchlevel bump only: arti
* | | Run fixup-features in preparation for release.Nick Mathewson2023-12-043-2/+3
| | |
* | | arti cfg: suppress a warningIan Jackson2023-12-041-0/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | | | There is a TODO HSS for this. Fixes cargo check --workspace --all-targets producing warning: unused variable: `result` --> crates/arti/src/cfg.rs:1060:13 | 1060 | let result = file.resolve::<(TorClientConfig, ArtiConfig)>(); | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` | = note: `#[warn(unused_variables)]` on by default
* / Move from `trust-dns` to `hickory`Andrew2023-11-302-8/+8
|/ | | | | | This is not a change of ownership but just rebranding. Signed-off-by: Andrew <[email protected]>
* Merge branch 'hss-notes' into 'main'Ian Jackson2023-11-303-0/+118
|\ | | | | | | | | hssvc-ipt-algorithms.md: Move and fix up some text See merge request tpo/core/arti!1777
| * tor-hsclient: ipt_establisher: Fix a broken rustdoc linkIan Jackson2023-11-301-1/+1
| | | | | | | | | | | | This rune RUSTDOCFLAGS="-Dwarnings --cfg docsrs" nailing-cargo +nightly doc --all-features --document-private-items --no-deps is clean now.
| * hssvc-ipt-algorithms.md: Fix moved text syntaxIan Jackson2023-11-291-2/+2
| | | | | | | | | | Fixes a rustdoc warning. This was already wrong in the .md file but nothing checked it there.
| * hssvc-ipt-algorithms.md: Move some text to ipt_setIan Jackson2023-11-292-0/+72
| | | | | | | | | | This is describing the detailed algorithm in compute_iptsetstatus_publish. Move it there (and add an xref).
| * hssvc-ipt-algorithms.md: Move some text to ipt_mgrIan Jackson2023-11-292-0/+37
| | | | | | | | | | This is describing the detailed algorithm in idempotently_progress_things_now. Move it there (and add an xref).
| * hssvc-ipt-algorithms.md: Delete rendundant textIan Jackson2023-11-292-0/+9
| | | | | | | | | | | | | | | | This is describing our data structures and IPT states. But we have this documented elsewhere, largely. There are a few sentences here that can usefully be replaced with a bit of extra text in the data structure docs.