summaryrefslogtreecommitdiff
path: root/crates/tor-hsservice/src
Commit message (Collapse)AuthorAgeFilesLines
* Make test_partial_write linux-only.Nick Mathewson2024-02-291-1/+1
| | | | | | This is a temporary workaround for #1307: In `libc`, struct sigaction doesn't seem to have the same fields on all the unix platforms.
* Merge branch 'label_todo_504' into 'main'Nick Mathewson2024-02-221-0/+1
|\ | | | | | | | | Mark code with "TODO 504" and "TODO 789". See merge request tpo/core/arti!1992
| * Mark code with "TODO #504" and "TODO #789".Nick Mathewson2024-02-221-0/+1
| | | | | | | | | | | | | | | | I've done this by looking for every non-test instance of pick_relays or pick_n_relays, and for every non-test usage of any non-ID-related method on Relay or UncheckedRelay. Part of #504.
* | tor-hsservice: reconfigure: Allow changing rate_limit_at_introIan Jackson2024-02-213-5/+25
| |
* | tor-hsservice: reconfigure: Prove we've handled all the fieldsIan Jackson2024-02-211-3/+2
| |
* | tor-hsservice: config: max_concurrent_streams_per_circuit: comment out (fmt)Ian Jackson2024-02-211-1/+0
| | | | | | | | Remove a wanted blank line.
* | tor-hsservice: config: max_concurrent_streams_per_circuit: comment outIan Jackson2024-02-211-4/+6
| | | | | | | | | | This is not implemented. It is better to have it commented out than providing a knob that isn't connected to anything.
* | tor-hsservice: reconfigure: reject changing rate_limit_at_intro for nowIan Jackson2024-02-211-0/+6
| |
* | tor-hsservice: reconfigure: changing num_intro_points is fineIan Jackson2024-02-211-0/+5
| |
* | tor-hsservice: reconfigure: Formalise field handlingIan Jackson2024-02-211-8/+59
|/
* tor-hsservice: Clarify what UploadError::Stream is for.Gabriela Moldovan2024-02-201-1/+1
|
* tor-hsservice: Clarify what UploadError::Timeout is used for.Gabriela Moldovan2024-02-201-2/+2
|
* tor-hsservice: Log descriptor upload request errors.Gabriela Moldovan2024-02-191-1/+1
|
* 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.