summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | 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
|/
* Merge branch 'fast_and_stable' into 'main'Nick Mathewson2024-02-2014-42/+264
|\ | | | | | | | | | | | | Require the Fast and Stable flags as appropriate. Closes #1100 See merge request tpo/core/arti!1976
| * PathConfigBuilder: Actually provide the long_lived_ports settersIan Jackson2024-02-201-0/+6
| |
| * Use list_builder and sub-builder pattern for long_lived_ports.Nick Mathewson2024-02-201-6/+18
| |
| * Note a calculation we can clean up after doing spec work.Nick Mathewson2024-02-201-1/+3
| |
| * Add caveats on is_flagged_guard, and note possible deprecationNick Mathewson2024-02-201-1/+15
| |
| * Add and use "UncheckedRelay::is_suitable_as_guard"Nick Mathewson2024-02-202-1/+6
| |
| * Teach *CircUsage structs about stability.Nick Mathewson2024-02-205-29/+122
| | | | | | | | | | | | | | | | | | | | | | This lets us check long_lived_ports only when we are constructing a TargetCircUsage, and lets us remember whether or not the circuit we've built is suitable for non-long-lived ports. It also lets us decide whether existing circuits are compatible with new requests. Closes #1100.
| * Add a couple of TODOs about Stable-based path selection.Nick Mathewson2024-02-202-0/+6
| |
| * When building paths, require the Stable flag as appropriateNick Mathewson2024-02-202-2/+33
| | | | | | | | | | | | | | | | | | | | | | | | The Stable flag means that circuits build through a given relay are not likely to get closed precipitously. (Currently, the authorities guess this by looking at the relay's mean time between failures.) Generally speaking, paths must be Stable if: * They are going to get used for a rendezvous point. * They are going to get used for an introduction point. * They are going to get used for exiting to a member of long_lived_ports.
| * Add a configuration option for long_lived_ports.Nick Mathewson2024-02-203-0/+21
| |
| * Require the Fast flag on all randomly selected relays.Nick Mathewson2024-02-201-9/+16
| | | | | | | | | | | | This matches the behavior of C tor. Part of #1100.
| * Only pick Fast-flagged relays as directory cachesNick Mathewson2024-02-201-1/+3
| | | | | | | | | | | | Matches the behavior of C tor. Part of #1100.
| * Only pick Fast relays as introduction points.Nick Mathewson2024-02-201-1/+1
| | | | | | | | This matches the behavior of C tor. Part of #1100.
| * Require that guards are Fast and Stable.Nick Mathewson2024-02-204-4/+12
| | | | | | | | | | | | This matches the behavior of C tor. Part of #1100.
| * netdir: Add Relay::is_flagged_{fast,stable} methods.Nick Mathewson2024-02-122-0/+15
| |
* | 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-194-1/+16
| | | | | | | | | | | | | | 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: Pick a better name for error variable.Ian Jackson2024-02-191-1/+1
| |
* | tor-keymgr: Add more context to errors returned from HsId::from_slug.Gabriela Moldovan2024-02-191-5/+4
| | | | | | | | | | `InvalidKeyPathComponentValue::Slug` now has to wrap a `String`, because we can't get `HsIdParse` errors as static strings.
* | tor-keymgr: Add more context to InvalidKeyPathComponentValue errors (fmt).Gabriela Moldovan2024-02-191-5/+11
| |
* | tor-keymgr: Add more context to InvalidKeyPathComponentValue errors.Gabriela Moldovan2024-02-191-9/+7
| |
* | tor-keymgr: Document what context to add to invalid slug errors.Gabriela Moldovan2024-02-191-0/+7
| | | | | | | | Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1960#note_2994317
* | tor-keymgr: Downgrade a documentation TODO.Gabriela Moldovan2024-02-191-1/+1
| | | | | | | | | | The tor-keymgr crate *is* documented, but could use a better README and some examples and/or usage guides.
* | tor-keymgr: Reword the README.Gabriela Moldovan2024-02-191-24/+30
| | | | | | | | | | | | This rewords the docs for clarity. Part of #1115
* | tor-keymgr: Remove vestigial comment.Gabriela Moldovan2024-02-191-2/+0
| | | | | | | | This removes a remnant of a now-gone TODO.
* | tor-keymgr: Make InvalidKeyPathComponentValue public.Gabriela Moldovan2024-02-192-3/+5
| | | | | | | | | | It appears within the public API (it is the error type returned from `KeySpecifierComponent`), so let's make it public.
* | tor-keymgr: Make InvalidKeyPathComponentValue an enum.Gabriela Moldovan2024-02-191-11/+20
| | | | | | | | | | | | | | | | | | Previously, `InvalidKeyPathComponentValue` was a single error type, with the error message hard-coded to "invalid key denotator". This was wrong, because this error is used for other types of invalid components too (not just for invalid denotators). Part of #1115