aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-hsservice/src
Commit message (Collapse)AuthorAgeFilesLines
...
* tor-hsservice: Report a clearer error message for UploadError::Circuit.Gabriela Moldovan2024-02-191-1/+1
| | | | | | | | | | | | This errors such as ``` DEBUG tor_hsservice::svc::publish::backoff: failed to upload a hidden service descriptor: circuit failed attempt=2 can_retry=true ``` into ``` DEBUG tor_hsservice::svc::publish::backoff: failed to upload a hidden service descriptor: could not build circuit to HsDir attempt=2 can_retry=true ```
* tor-hsservice: Run cargo fmt.Gabriela Moldovan2024-02-191-3/+7
|
* tor-hsservice: Report IPT errors from all the IPTs we are maintaining.Gabriela Moldovan2024-02-191-1/+1
| | | | | | | We should be reporting all IPT errors, not just the ones coming from the IPTs that are "current". Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1966#note_2996978
* tor-hsservice: Replace placeholder IptError with the real IptError type.Gabriela Moldovan2024-02-193-18/+34
|
* tor-hsservice: Include the IptError in IptStatusStatus::Faulty.Gabriela Moldovan2024-02-192-22/+27
| | | | | | This will enable the `IptManager` to more accurately report its status. Part of #1083
* tor-hsservice: Move certain IptEstablisherErrors to a separate enum (fmt).Gabriela Moldovan2024-02-191-3/+7
|
* tor-hsservice: Move certain IptEstablisherErrors to a separate enum.Gabriela Moldovan2024-02-191-28/+44
| | | | | | | | | | The new `IptError` type represents an IPT error that is definitely caused by a bad IPT. `IptError` will be made public and exposed through a variant of the `Problem` enum used for status reporting. Part of #1083
* tor-hsservice: Rename IptError to IptEstablisherError.Gabriela Moldovan2024-02-191-19/+19
| | | | | | We are about to add a new `IptError` type that is only for errors that are the IPT's fault (the ones `IptEstablisherError::is_ipt_failure()` returns `true` for).
* tor-hsservice: Clarify what State::Recovering means.Gabriela Moldovan2024-02-191-10/+9
|
* tor-hsservice: Expand on State::Broken reachability notes.Gabriela Moldovan2024-02-191-1/+1
|
* tor-hsservice: Expand on reachability notes.Ian Jackson2024-02-191-2/+2
|
* tor-hsservice: Remove TODO about setting IptManager status.Gabriela Moldovan2024-02-191-2/+0
| | | | Closes #1083
* tor-hsservice: Set the IptManager state to Bootstrapping on startup.Gabriela Moldovan2024-02-191-0/+3
| | | | Part of #1083
* tor-hsservice: Include the IptManager errors in the onion service status.Gabriela Moldovan2024-02-191-1/+22
| | | | | | | | | | | | | The `IptManager` now reports its status as `Recovering` (with the `latest_error` set to `IptError::FaultyIpt`) if it doesn't have enough good IPTs to publish. Its status is `Degraded` if it has published some IPTs, but needs to establish more. Note: unconditionally setting `latest_error` to `IptError::FaultyIpt` is not entirely correct. We will need to get the actual errors, if any, from the `IptEstablisher`. Part of #1083
* tor-hsservice: Add an IptError type for status reporting.Gabriela Moldovan2024-02-193-1/+15
| | | | | | | The `OnionServiceStatus` API can now report errors coming from `IptManager`. Part of #1083
* tor-hsservice: Document the `State`s in which the service is reachable.Gabriela Moldovan2024-02-191-0/+30
| | | | Part of #1083
* tor-hsservice: Add a Degraded onion service status.Gabriela Moldovan2024-02-191-0/+14
| | | | | | | `State::Degraded` means we've successfully published a number of introduction points, but we would like to have more. Part of #1083
* tor-hsservice: Rename note_<status> to send_<status>.Gabriela Moldovan2024-02-193-12/+12
| | | | | Since these are `*StatusSender` APIs, it seems more idiomatic to call them `send*`.
* tor-hsservice: Remove extraneous blank line.Gabriela Moldovan2024-02-191-1/+0
| | | | | We don't have blank lines between the other variants, so let's remove this one too for consistency.
* tor-keymgr: Include ArtiPath in InvalidArtiPath (fmt).Gabriela Moldovan2024-02-191-2/+6
|
* tor-keymgr: Include ArtiPath in InvalidArtiPath.Gabriela Moldovan2024-02-191-1/+1
| | | | Part of #1115
* tor-keymgr: Include the ArtiPath in InvalidKeyPathComponentValue.Gabriela Moldovan2024-02-191-0/+1
| | | | | | The offending `ArtiPath` should be included in the error. Part of #1115
* tor-keymgr: Rename {to,from}_component to {to,from}_slug.Gabriela Moldovan2024-02-191-3/+3
| | | | | | | | | Originally, these functions converted to and from `ArtiPathComponent`. In !1931, we replaced `ArtiPathComponent` with `Slug` without renaming the conversion functions. Since we're converting to and from `Slug` now, I think it makes sense to rename them too. Part of #1115
* tor-keymgr: Replace KeyMgr::get_with_type with KeyMgr::get_entry.Gabriela Moldovan2024-02-191-2/+1
| | | | Part of #1271
* tor-keymgr: Rename KeyMgr::remove_with_type to KeyMgr::remove_entry.Gabriela Moldovan2024-02-192-2/+2
| | | | Part of #1271
* tor-keymgr: Make KeyMgr::remove_with_type take a KeystoreEntry.Gabriela Moldovan2024-02-192-11/+2
| | | | | | | NB: `KeyMgr::remove_with_type` will need to be renamed to `KeyMgr::remove_entry`. Part of #1271
* tor-keymgr: Make KeyMgr::list_matching return `KeystoreEntry`s.Gabriela Moldovan2024-02-193-7/+12
| | | | Part of #1271
* Merge branch 'expire-ipts-bis' into 'main'Nick Mathewson2024-02-155-101/+129
|\ | | | | | | | | Code cleanup for IPT external state expiry See merge request tpo/core/arti!1982
| * tor-hsservice: ipt mgr: Remove/downgrade two allowsIan Jackson2024-02-131-2/+1
| |
| * tor-hsservice: ipt mgr: expiry: Add some commentsIan Jackson2024-02-131-0/+4
| |
| * tor-hsservice: ipt mgr: expiry: Break out all_ipts (fmt)Ian Jackson2024-02-131-4/+1
| |
| * tor-hsservice: ipt mgr: expiry: Break out all_iptsIan Jackson2024-02-131-8/+15
| | | | | | | | And clarify docs for the *current* ipt functions.
| * tor-hsservice: ipt mgr: expiry: rename a variableIan Jackson2024-02-131-3/+3
| | | | | | | | | | "current" has a special meaning here: it means an IPT that we haven't replaced with another at the same relay due to number of requests.
| * tor-hsservice: replay: Fix an error message slightlyIan Jackson2024-02-131-1/+1
| | | | | | | | | | On Windows filenames are WTF-16, not bytes, so a weird filename fails to be UTF-16 rather than failing to be UTF-8.
| * tor-hsservice: ipt mgr: Move/rename to StateExpiryError (fmt)Ian Jackson2024-02-131-3/+1
| |
| * tor-hsservice: ipt mgr: Move/rename to StateExpiryError (followup)Ian Jackson2024-02-131-4/+4
| |
| * tor-hsservice: ipt mgr: Move/rename to StateExpiryErrorIan Jackson2024-02-132-39/+41
| | | | | | | | | | The private ExpiryError type is now err::StateExpiryError. We'll fix up the local alias in the HasKind impl in a moment.
| * tor-hsservice: replay: Move replay filename knowledge into replay.rs (fmt)Ian Jackson2024-02-131-10/+5
| |
| * tor-hsservice: replay: Move replay filename knowledge into replay.rsIan Jackson2024-02-132-41/+58
| |
| * tor-hsservice: tests: Greak out mk_state_instance helperIan Jackson2024-02-131-3/+12
| |
| * tor-hsservice: Expose HsNickname::newIan Jackson2024-02-131-1/+1
| | | | | | | | | | The non-visibility of this method seems like it must have been an oversight.
* | tor-hsservice: The publisher should process all upload results.Gabriela Moldovan2024-02-141-1/+2
|/ | | | | | If one of the upload results is for an HsDir that went away, the publisher should continue processing the remaining ones, not disregard them entirely.
* Merge branch 'expire-ipts' into 'main'Ian Jackson2024-02-131-22/+259
|\ | | | | | | | | tor-hsservice: Expire old on-disk IPT state See merge request tpo/core/arti!1977
| * tor-hsservice: ipt mgr: Temporarily suppress a lintIan Jackson2024-02-131-0/+1
| |
| * tor-hsservice: ipt mgr: Check that file expiry happens precisely when wantedIan Jackson2024-02-131-4/+20
| | | | | | | | | | This test detects the bug mentioned here https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1977#note_2995265
| * tor-hsservice: ipt mgr: Add a test hook for expiryIan Jackson2024-02-131-0/+24
| |
| * tor-hsservice: ipt mgr: Do old IPT file cleanup on startup tooIan Jackson2024-02-131-0/+4
| | | | | | | | This isn't strictly necessary, but it's better.
| * tor-hsservice: ipt mgr: Explain about the ipt_set invariantIan Jackson2024-02-131-0/+6
| | | | | | | | This seemed to warrant some discussion and a cross-reference.
| * tor-hsservice: ipt mgr: Rewrite state expiry doc commentIan Jackson2024-02-131-3/+7
| | | | | | | | | | | | Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1977#note_2994999 https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1977#note_2995000
| * tor-hsservice: ipt mgr: Abolish a foolish intermediate variableIan Jackson2024-02-131-14/+9
| | | | | | | | | | | | | | | | | | Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1977#note_2994998 Removing the intermediate variable removes the possibility that the information in it could fail to be transferred to the main mutable state, so we don't need the IEFE any more.