summaryrefslogtreecommitdiff
path: root/crates/tor-hsservice/src/svc
Commit message (Collapse)AuthorAgeFilesLines
* Fix typosDimitris Apostolou2024-01-082-5/+5
|
* KeySpecifier etc: apply deferred rustfmt import churnIan Jackson2024-01-041-1/+1
|
* KeySpecifier: Make KeySpecifierPattern a traitIan Jackson2024-01-041-0/+1
| | | | | | So now .arti_pattern() is a trait method. arti#1151 item 3.
* KeySpecifier d-a macro: Introduce SomeSpecifierPattern and use dynIan Jackson2024-01-041-2/+6
| | | | | | | | This is a better API. The implementation has less monomorphisation. arti#1151 item 2 and the patterns part of 4. Closes #1126.
* clippy nightly: For now, locally allow blocks_in_conditionsIan Jackson2024-01-021-0/+1
| | | | | | Filed https://gitlab.torproject.org/tpo/core/arti/-/issues/1176 proposing a final fix.
* Merge branch 'hs-desc-builder' into 'main'Alexander Færøy2023-12-181-6/+4
|\ | | | | | | | | | | | | tor-netdoc: Make HsDescBuilder::auth_clients take an Option. Closes #1019 See merge request tpo/core/arti!1840
| * tor-netdoc: Make HsDescBuilder::auth_clients take an Option.Gabriela Moldovan2023-12-141-6/+4
| | | | | | | | Closes #1019
* | Fix documentation that referred to RelayCell.Nick Mathewson2023-12-141-1/+1
|/
* Merge branch 'todos-hss' into 'main'Nick Mathewson2023-12-131-7/+14
|\ | | | | | | | | Clear away some misc todos in tor-hsservice. See merge request tpo/core/arti!1819
| * hss: Explain why wait_for_netdir_to_list does not need more complexity.Nick Mathewson2023-12-131-6/+11
| |
| * hss::svc::netdir: Explain why it is okay to suppress errors.Nick Mathewson2023-12-121-1/+3
| |
* | Merge branch 'publisher-do-not-retry-fatal' into 'main'gabi-2502023-12-131-16/+1
|\ \ | | | | | | | | | | | | tor-hsservice: If the error is fatal, do not retry the desc upload. See merge request tpo/core/arti!1821
| * | tor-hsservice: If the error is fatal, do not retry the desc upload.Gabriela Moldovan2023-12-131-16/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | The errors returned by `upload_all` are now all fatal, so we there is no point in retrying `upload_all` on failure. Note this will exacerbate #1155, as it will cause the seemingly transient time skew issues to become fatal (the corresponding error type is `Bug`, so in principle they ought to be fatal)
* | | tor-hsservice: Add more explanation of replay_log lockingIan Jackson2023-12-131-0/+5
| | |
* | | tor-hsservice: Add more explanation of replay_log lockingIan Jackson2023-12-131-0/+6
| | |
* | | tor-hsservice: Move ReplayLog construction to ipt_mgrIan Jackson2023-12-131-9/+12
| | |
* | | tor-hsservice: Note some TODOs relating to IPT teardownIan Jackson2023-12-131-0/+9
|/ /
* | tor-hsservice: Add TODO about removing the shutdown handling from the publisher.Gabriela Moldovan2023-12-131-0/+5
| |
* | tor-hsservice: Add TODO about possibly making UploadStatus a type alias.Gabriela Moldovan2023-12-131-0/+2
| |
* | tor-hsservice: Add TODO about possibly retrying failed uploads.Gabriela Moldovan2023-12-131-0/+6
| |
* | tor-hsservice: Remove unused ReactorError type.Gabriela Moldovan2023-12-131-84/+2
| | | | | | | | | | | | | | The publisher now returns `FatalError`s, so we don't need `ReactorError` anymore. Addresses a TODO HSS in publish/reactor.rs Part of #1129
* | tor-hsservice: Replace ReactorError with FatalError (fmt).Gabriela Moldovan2023-12-132-9/+6
| |
* | tor-hsservice: Replace ReactorError with FatalError.Gabriela Moldovan2023-12-132-30/+29
| |
* | tor-hsservice: Replace ReactorError::ShuttingDown with ShutdownStatus.Gabriela Moldovan2023-12-131-13/+33
| |
* | tor-hsservice: Make descriptor publisher wait for shutdown signal.Gabriela Moldovan2023-12-132-3/+28
| | | | | | | | | | | | | | | | The publisher logs a nice `info!` message when it receives the shutdown signal. The publisher can infer that the service is shutting down from the errors received on its various receiver channels (i.e. from the errors that suggest the sender was dropped), but listening for the shutdown signal is nicer.
* | tor-hsservice: Remove unused ReactorError variant.Gabriela Moldovan2023-12-131-5/+0
| | | | | | | | | | This moves us one step closer to removing ReactorError in favour of FatalError (see the TODO HSS above ReactorError for more details).
* | tor-hsservice: Refactor upload_descriptor_with_retries to not return an error.Gabriela Moldovan2023-12-131-67/+60
| | | | | | | | | | | | | | | | | | | | | | | | Previously, this would return `ReactorError::PublishFailure` if the upload failed. However, that error wasn't used for anything other than logging. Instead of returning the error, we now log it inside `upload_descriptor_with_retries` and return an `UploadStatus` describing the upload outcome. This will enable us to abolish `ReactorError::PublishFailure` (and eventually replace `ReactorError` with `FatalError`).
* | tor-hsservice: Abolish ReactorError::HsDescBuild.Gabriela Moldovan2023-12-132-7/+3
|/ | | | | The failure to build a descriptor out of seemingly valid parts is an internal (irrecoverable) error.
* tor-hsservice: Reformat long match statement.Gabriela Moldovan2023-12-111-1/+3
|
* tor-hsservice: Reformat a long trace! statement.Gabriela Moldovan2023-12-111-1/+3
|
* tor-hsservice: Rephrase and reformat a comment.Gabriela Moldovan2023-12-111-2/+2
| | | | This line is too long.
* tor-hsservice: Remove duplicate trace! log.Gabriela Moldovan2023-12-111-5/+0
| | | | | We already log the outcome of the HsDir upload in the function that calls this code.
* tor-hsservice: Use debug! instead of trace! to log upload outcome.Gabriela Moldovan2023-12-111-1/+1
| | | | This also wraps the line.
* tor-hsservice: Remove some TODOs that have been addressed.Gabriela Moldovan2023-12-111-11/+0
|
* tor-hsservice: Publish the IptPublishSet we called note_publication_attempt on.Gabriela Moldovan2023-12-111-50/+50
| | | | | | | | | | | | | | | | | | | | | | Previously, it was possible for the `IptPublishSet` used to generate the descriptor and the `IptPublishSet` `note_publication_attempt` to differ. Now, the publisher generates the descriptor using the same `IptPublishSet` it calls `note_publication_attempt` on. Note that as a consequence, the publisher generates a new descriptor just before _each_ HsDir upload. This means each HsDir could, in theory, receive a different descriptor (not just in terms of revision-counters, but also with a different set of IPTs). It may seem like this could lead to some HsDirs being left with an outdated descriptor, but that's not the case: after the upload completes, the publisher will be notified by the ipt_watcher of the IPT change event (if there was one to begin with), which will trigger another upload job. Previously, the publisher would only generate a single descriptor for each time period (all HsDirs in a given time period would receive the same descriptor). Closes #1097
* tor-hsservice: Move revision_counter to HsDirUploadResult.Gabriela Moldovan2023-12-111-5/+5
| | | | | | This was previously in `TimePeriodUploadResult`. We will soon have different revision_counter for each `HsDirUploadResult`, so let's preemptively move the field there.
* tor-hsservice: Make build_sign also return the revision counter used.Gabriela Moldovan2023-12-112-10/+11
|
* tor-hsservice: Derive Clone for VersionedDescriptor.Gabriela Moldovan2023-12-111-0/+1
| | | | We're going to need to clone it soon.
* tor-hsservice: Move generate_revision_counter to Immutable.Gabriela Moldovan2023-12-111-74/+75
| | | | | | | | `generate_revision_counter` and `create_ope_key` don't use anything from `self` other than `imm`, so they might as well be methods on `Immutable`. This change is needed because we're soon going to need to use `generate_revision_counter` from an associated `Reactor` function (where we don't have `self`).
* tor-hsservice: Reformat a long log line.Gabriela Moldovan2023-12-081-1/+5
|
* tor-hsservice: Add more context to the publisher logs.Gabriela Moldovan2023-12-081-10/+20
|
* tor-hsservice: Remove a publisher TODO that has been addressed.Gabriela Moldovan2023-12-081-8/+0
| | | | | | | | | | | | | | | | | The publisher doesn't reupload unless explicitly asked to do so by the `IptManager` (via `await_update()`). Also, when the consensus changes, we always trigger a reupload, but only to those HsDirs that don't already have the descriptor (the HsDirs marked as "clean" stay "clean", and any new HsDirs are marked "dirty" until they get a copy of the descriptor. See !1806). Similarly, a config change only triggers a reupload if the change means we need to generate a new descriptor (e.g. if the `anonymity` of the service changes). Note, however, that this logic is currently commented out (it depends on #1028). Closes #1131
* tor-hsservice: Remove unused lifetime.Gabriela Moldovan2023-12-071-1/+1
| | | | Fixes a clippy lint.
* tor-hsservice: Remove unused function.Gabriela Moldovan2023-12-071-16/+0
|
* tor-hsservice: Fix publisher bug causing unnecessary uploads.Gabriela Moldovan2023-12-071-27/+31
| | | | | | | This fixes a bug where the publisher wasn't preserving the `DescriptorStatus` of its `HsDirs` when handling consensus changes. The bug is described in more detailed in the TODO removed by this commit.
* tor-hsservice: Add a TODO about a publlisher bugGabriela Moldovan2023-12-071-0/+17
|
* tor-hsservice: Rename period to ctx for clarity.Gabriela Moldovan2023-12-071-2/+2
| | | | This is actually a `TimePeriodContext`.
* Merge branch 'persist-macro' into 'main'Ian Jackson2023-12-071-6/+12
|\ | | | | | | | | | | | | Improve KeySpecifier, errors, IptKeySpecifier impl, etc. Closes #1116 and #1148 See merge request tpo/core/arti!1796
| * tor-keymgr: Make KeySpecifierComponent::as_component fallibleIan Jackson2023-12-071-1/+1
| | | | | | | | | | | | | | | | | | | | This allows a principled implentation via Display. The alternative would be to have runtime panics whenever someone uses KeySpecifierComponentViaDisplayFromStr but the Display impl can produce wrong syntax (that doesn't fit in an ArtiPathComponent). Bug seems like the right error since implemnting KeySpecifierComponent implies that every value is representable in an ArtiPathComponent.
| * tor-keymgr: Introduce InvalidKeyPathComponentValue errors (fmt)Ian Jackson2023-12-071-9/+8
| |