summaryrefslogtreecommitdiff
path: root/crates/tor-hsservice
Commit message (Collapse)AuthorAgeFilesLines
...
* tor-hsservice: Bump log level of main termination messageIan Jackson2023-10-191-2/+2
|
* tor-hsservice: impl HasKind for ChooseIptErrorIan Jackson2023-10-191-1/+14
| | | | We want to pass one of these to info_report!, which demands HasKind.
* tor-hsservice: Declare an IPT that fails during Establishing to be FaultyIan Jackson2023-10-191-1/+5
| | | | If we don't do this then the manager won't ever select a replacement.
* tor-hsservice: Do not claim a completely broken IPT wants to retireIan Jackson2023-10-191-1/+6
|
* HSS: Add many must_use annotationsIan Jackson2023-10-191-0/+1
|
* Merge branch 'hs-fixes-2' into 'main'Alexander Færøy2023-10-191-21/+30
|\ | | | | | | | | tor-hsservice: ipt_mgr: Track notional estab started for faulty IPTs See merge request tpo/core/arti!1686
| * tor-hsservice: ipt_mgr: Track notional estab started for faulty IPTs (fmt)Ian Jackson2023-10-181-8/+10
| |
| * tor-hsservice: ipt_mgr: Track notional estab started for faulty IPTsIan Jackson2023-10-181-12/+19
| | | | | | | | An IPT can go from Faulty to Good.
| * tor-hsservice: ipt_mgr: Prepare for TS::Faulty to contain dataIan Jackson2023-10-181-4/+4
| |
* | ipt_establish: Try to make note_open work.Nick Mathewson2023-10-191-6/+28
| |
* | tor-hsservice: Fix cargo doc warnings.Gabriela Moldovan2023-10-191-3/+3
| |
* | tor-hsservice: Rename KeyMetadata to KeyDenotator (fmt).Gabriela Moldovan2023-10-191-1/+2
| |
* | tor-hsservice: Rename KeyMetadata to KeyDenotator.Gabriela Moldovan2023-10-195-40/+43
| |
* | tor-keymgr: Rename KeyPathError to ArtiPathUnavailableError (fmt).Gabriela Moldovan2023-10-191-1/+1
| |
* | tor-keymgr: Rename KeyPathError to ArtiPathUnavailableError.Gabriela Moldovan2023-10-191-5/+6
| |
* | tor-keymgr: Remove From<ArtiPathError> impl for KeyPathError.Gabriela Moldovan2023-10-191-4/+6
| |
* | tor-hsservice: Add some TODOs about error handling.Gabriela Moldovan2023-10-192-0/+10
| |
* | tor-hsservice: Add TODO about putting keymgr in the immutable state.Gabriela Moldovan2023-10-191-0/+1
| |
* | tor-hsservice: Add TODO about ArtiPath underscore ambiguity.Gabriela Moldovan2023-10-191-0/+2
| |
* | tor-hsservice: Replace placeholder subcredentials with values from the keystore.Gabriela Moldovan2023-10-192-9/+101
| |
* | tor-hsservice: Add HsSvcKeySpecifier::arti_pattern helper.Gabriela Moldovan2023-10-191-1/+9
| |
* | tor-hsservice: Include the TP offset in the key metadata (fmt).Gabriela Moldovan2023-10-191-1/+6
| |
* | tor-hsservice: Include the TP offset in the key metadata.Gabriela Moldovan2023-10-191-2/+2
| | | | | | | | | | The offset is needed because we want to be able to convert this metadata back to `TimePeriod`.
* | tor-hsservice: Pass the service nickname to IptEstablisher.Gabriela Moldovan2023-10-191-1/+7
| |
* | tor-hsservice: Pass the service nickname to IptEstablisher (fmt).Gabriela Moldovan2023-10-192-1/+3
| | | | | | | | The nickname is needed for retrieving keys from the keystore.
* | tor-hsservice: Give IptManager a KeyMgr.Gabriela Moldovan2023-10-193-4/+73
| |
* | tor-hsservice: Hoist the key metadata out of HsSvcKeyRole (fmt).Gabriela Moldovan2023-10-194-12/+24
| |
* | tor-hsservice: Hoist the key metadata out of HsSvcKeyRole.Gabriela Moldovan2023-10-196-85/+180
| | | | | | | | | | We will need the string rerpresentation (minus the TimePeriod or any other metadata) of `HsSvcKeyRole`s for building `KeyPathPattern`s.
* | tor-keymgr: Use ArtiPathError for invalid ArtiPaths.Gabriela Moldovan2023-10-191-3/+7
| |
* | Merge branch 'terminate_pending_stream' into 'main'gabi-2502023-10-181-1/+1
|\ \ | |/ |/| | | | | proto: Make StreamTarget::close() misuse less likely. See merge request tpo/core/arti!1678
| * proto: Make StreamTarget::close() misuse less likely.Nick Mathewson2023-10-171-1/+1
| | | | | | | | | | | | | | | | | | It turns out that we can make `IncomingStream::reject()` consume self, thus making it impossible to hit the double-close error from outside the `tor-proto` crate. Also, we rename `StreamTarget::close()` to `close_pending()` to better reflect its limited applicability.
* | dirclient: Seal the Requestable trait and hide most of its members.Nick Mathewson2023-10-171-2/+2
|/ | | | | | | | Since none of these methods were invoked from outside `tor-dirclient` (except for debugging), and since we have had a fair amount of churn on what we actually want them to be, it seems like a good idea to use this trick to hide them. This will let us make other changes to the actual behavior of Requestable in the future.
* tor-hsservice: timeout track: Worsify formattingIan Jackson2023-10-161-4/+6
| | | | | | | | Simply running `rustfmt` makes a mess. This new formatting is less nice but repo policy requires that the layout is a fixed point under rustfmt and this is the least bad fixed point I found.
* tor-hsservice: timeout track: Add some discussionIan Jackson2023-10-161-4/+36
|
* tor-hsservice: timeout track: Add an example doctestIan Jackson2023-10-162-0/+74
|
* tor-hsservice: timeout track: Add a rustdoc allowIan Jackson2023-10-161-0/+4
| | | | Suppresses some erroneous warnings.
* tor-hsservice: timeout_track: Add a TODO re explanationsIan Jackson2023-10-161-0/+3
|
* tor-hsservice: ipt_mgr: Tolerate complexity warning for nowIan Jackson2023-10-161-0/+1
| | | | And add a TODO HSS for improving it.
* tor-hsservice: Apply mandatory code formatting worseningIan Jackson2023-10-162-21/+49
|
* tor-hsservice: timeout_track: tests: Introduce secs() aliasIan Jackson2023-10-161-11/+14
| | | | I wish we could `use Duration::from_secs as secs`.
* tor-hsservice: ipt_mgr: Add a test caseIan Jackson2023-10-162-0/+171
| | | | | This doesn't test all the code paths, but it does test the main path of execution (and detected a couple of bugs).
* tor-hsservice: ipt_mgr: Adjust API for mock RNGIan Jackson2023-10-161-4/+4
| | | | | We're want to be able to return a mutable borrow of a field in the mock state. This means we must make `Rng` a GAT.
* tor-hsservice: Narrow some dead code allowsIan Jackson2023-10-166-2/+7
|
* tor-hsservice: timeout_track: Change semantics to do what's neededIan Jackson2023-10-161-32/+68
| | | | | | | | | | | | | | | | | The key point is this: +//! I.e., the timeout tracker tells you when (in the future) +//! any of the comparisons you have made, might produce different answers. +//! So, that can be used to know how long to sleep for when waiting for timeout(s). That's how the code in ipt_mgr.rs uses this. Without this change, things go wrong in the following case: we've got at least one good IPT, but not quite enough, and the others are taking too long. Ie, the timeout for "we should publish" is in the past. We decide to publish (correctly) but this *past* timeout should be disregarded. Disregarding past timeouts is correct if the code which is making the comparisons acts on the timeout when it occurs.
* tor-hsservice: timeout_track: Provided shortest() for all trackersIan Jackson2023-10-161-0/+25
|
* tor-hsservice: timeout_track: Mark some unused variablesIan Jackson2023-10-161-2/+2
|
* tor-hsservice: timeout_track: Add a dead code allowIan Jackson2023-10-161-0/+1
| | | | For the same reason as the allow(unreachable_pub).
* tor-hsservice: ipt_mgr: Improve waiting publish messageIan Jackson2023-10-161-10/+18
| | | | | | This involves plumbing the duration through. Also it involved breaking out the multiplication by two into an addition, since if we were to change the factor we'd want to print the scaled value.
* tor-hsservice: ipt_mgr: Add several debug/trace messagesIan Jackson2023-10-161-4/+22
| | | | | We're going to improve the "establishing_very_recently" one in a moment.
* tor-hsservice: ipt_mgr: Fix a message styleIan Jackson2023-10-161-1/+2
| | | | | Add a colon. This is going to be the style for our trace and debug output.