summaryrefslogtreecommitdiff
path: root/crates/tor-hsservice
Commit message (Collapse)AuthorAgeFilesLines
...
* | tor-hsservice: Log newly generated HsIds.Gabriela Moldovan2023-10-191-2/+16
|/
* tor-hsservice: Print error sources for descriptor upload errorsIan Jackson2023-10-191-1/+3
|
* tor-hsservice: Fix downcastIan Jackson2023-10-191-1/+1
| | | | | | | Downcasting is tricksy. We need to try the downcast on a type-erased &IptEstablisher, not &Box<dyn Any>, and if we don't dereference nothing tells us it's wrong since &Box<dyn Any> also implements and we end up with &Box<dyn Any> as &dyn Any.
* tor-hsservice: Add a TODO for logging HS statusIan Jackson2023-10-191-0/+6
|
* tor-hsservice: Adjust log level of IPT relay choice failureIan Jackson2023-10-191-6/+15
| | | | | | If it's due to lack of useable netdir, that's normal during startup, so don't log it. Hopefully something else somewhere will log if a consensus can't be obtained.
* 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
|