summaryrefslogtreecommitdiff
path: root/crates/tor-hsservice
Commit message (Collapse)AuthorAgeFilesLines
...
| * tor-keymgr: Replace assert_key_specifier_rountrip macro with functionIan Jackson2023-12-071-13/+8
| | | | | | | | The new function checks both directions. The (misspelled) macro didn't.
| * tor-keymgr: provide KeySpecifierComponentViaDisplayFromStr and use itIan Jackson2023-12-071-13/+2
| | | | | | | | Now the only manual impl is TimePeriod, which is indeed special.
| * ArtiPaths: derive FromStr for ArtiPath ArtiPathComponent HsNickname (fmt)Ian Jackson2023-12-071-2/+13
| | | | | | | | Mandatory horrible formatting.
| * ArtiPaths: derive FromStr for ArtiPath ArtiPathComponent HsNicknameIan Jackson2023-12-071-0/+1
| |
* | Add a "Shutdown" status, and clarify places where status should change.Nick Mathewson2023-12-074-5/+19
| |
* | Add a status API to OnionService.Nick Mathewson2023-12-073-11/+168
|/ | | | | | (This doesn't yet send any status events.) Begins work on arti#1083.
* tor-hsservice: Add more info to an internal error (fmt).Gabriela Moldovan2023-12-051-6/+7
|
* tor-hsservice: Add more info to an internal error.Gabriela Moldovan2023-12-051-1/+9
| | | | | Logging the current time and the start of the time period might help us debug #1143 (we'll at least know how far off `now` is from `start`).
* tor-hsservice: Fix clippy warning.Gabriela Moldovan2023-12-051-1/+1
|
* tor-hsservice: Wrap some long lines in a helper macro.Gabriela Moldovan2023-12-051-4/+11
|
* tor-hsservice: Add a cross-reference to KeystoreSweeper.Gabriela Moldovan2023-12-051-0/+7
|
* tor-keymgr: Abolish the KeyDenotator trait in favour of KeyPathComponent (fmt).Gabriela Moldovan2023-12-051-2/+6
|
* tor-keymgr: Abolish the KeyDenotator trait in favour of KeyPathComponent.Gabriela Moldovan2023-12-051-2/+4
|
* tor-hsservice: Stop the KeystoreSweeper task when the service exits (fmt).Gabriela Moldovan2023-12-053-57/+62
|
* tor-hsservice: Stop the KeystoreSweeper task when the service exits.Gabriela Moldovan2023-12-052-7/+30
|
* tor-hsservice: Make shutdown a broadcast channel.Gabriela Moldovan2023-12-052-11/+13
| | | | | We will soon need another component to be able to subscribe to the shutdown signal.
* tor-hsservice: Move remove_if_expired macro inside task (fmt).Gabriela Moldovan2023-12-051-9/+3
|
* tor-hsservice: Move remove_if_expired macro inside task.Gabriela Moldovan2023-12-051-37/+22
|
* tor-keymgr: Update key summary strings to be less verbose.Gabriela Moldovan2023-12-051-5/+5
|
* tor-hsservice: Test the TryFrom<&KeyPath> KeySpecifier impl.Gabriela Moldovan2023-12-052-1/+8
|
* tor-hsservice: Add some useful derives for the key specifiers.Gabriela Moldovan2023-12-051-5/+5
|
* tor-hsservice: Add a helper for removing expired keys.Gabriela Moldovan2023-12-052-3/+154
| | | | Closes #1043
* tor-hsservice: Make the KeySpecifier fields crate-public.Gabriela Moldovan2023-12-051-7/+7
| | | | We're about to use them.
* tor-keymgr: Store an owned type instead.Gabriela Moldovan2023-12-056-43/+52
| | | | | | We need this because the key specifier types will soon be owned types too (they will soon grow a From<&KeyPath> impl). We _could_ make them store `Cow`s instead, but I think that's a premature optimization.
* tor-keymgr: Make all arguments of arti_pattern optional.Gabriela Moldovan2023-12-051-1/+1
| | | | | We're going to need this soon (to match all hidden service keys, regardless of nickname, for example).
* tor-keymgr: Introduce a KeySpecifierComponent trait.Gabriela Moldovan2023-12-051-1/+19
| | | | | | | | | Now the fields of a `DefaultKeySpecifier` no longer have to implement `Display` (they need to implement `KeySpecifierComponent`). See https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1733#note_2966400 Closes #1127
* tor-keymgr: Change KeyDenotator error type to KeyPathError.Gabriela Moldovan2023-12-051-2/+2
| | | | | This is a separate class of errors that deserves its own error type. We will soon use `KeyPathError` in other contexts as well.
* tor-hsservice: IptKeySpecifier: add a TODO HSSIan Jackson2023-12-041-0/+2
|
* tor-hsservice: ipt_set: Remove a blocking TODOIan Jackson2023-12-041-1/+0
| | | | This function became non-dead in some earlier commit.
* tor-hsservice tests: Add some TODOs re IPT accepting stateIan Jackson2023-12-041-0/+8
|
* tor-hsservice tests: Check that restart gives us the same IPTs (fmt)Ian Jackson2023-12-041-11/+18
| | | | Mandatory formatting degradation.
* tor-hsservice tests: Check that restart gives us the same IPTsIan Jackson2023-12-041-2/+24
| | | | | | Store the IptParameters in the MockEstabState, and provide a function to list what the IPTs are. Then we can check the IPTs are reloaded and restored after restart.
* tor-hsservice tests: Test restarting the IPT managerIan Jackson2023-12-041-0/+9
| | | | | This is supposed to reload the state. In the next commit we'll check at least some of the things.
* 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.