summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
| * | hss: Minor hack to avoid parameterizing RendRequestContext on RuntimeNick Mathewson2023-09-201-2/+29
| | | | | | | | | | | | | | | We need to pass around an Arc<HsCircPool<R>>, but doing so directly would force us to make RendRequestContext parameterized on R.
| * | HSS: route most necessary key material to RendRequestNick Mathewson2023-09-203-15/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | When we go to answer a RendRequest, we need to have a few objects present. This commit makes sure that they're available at the right places. We also note a significant problem with the need for a Subcredential here.
* | | Merge branch 'slow-test' into 'main'Nick Mathewson2023-09-201-1/+2
|\ \ \ | | | | | | | | | | | | | | | | tor-hsclient: state expiry test: Use MockSleepProvider advance See merge request tpo/core/arti!1609
| * | | tor-hsclient: state expiry test: Use MockSleepProvider advanceIan Jackson2023-09-201-1/+2
| | | | | | | | | | | | | | | | | | | | See https://gitlab.torproject.org/tpo/core/arti/-/issues/1040
* | | | tor-hsservice: Fix compile error, make Publisher use Arc<OnionServiceConfig>.Gabriela Moldovan2023-09-204-11/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a compile error introduced as a result of merging a couple of conflicting MRs (!1611 and !1604). This also makes the channel the publisher uses for watching for config changes receive `Arc<OnionServiceConfig>` (rather than `OnionServiceConfig`).
* | | | Merge branch 'mgr-watch' into 'main'gabi-2502023-09-201-6/+25
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-hsservice: Make config a watch receiver Closes #1041 See merge request tpo/core/arti!1611
| * | | | tor-hsservice: Handle config updates correctlyIan Jackson2023-09-201-7/+24
| | | | |
| * | | | tor-hsservice: Make config a watch receiverIan Jackson2023-09-201-3/+5
| | | | | | | | | | | | | | | | | | | | We introduce a bug here which the next commit will fix.
* | | | | Merge branch 'onionservice_part1' into 'main'Nick Mathewson2023-09-202-79/+92
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | Start to implement OnionService::new (part 1) See merge request tpo/core/arti!1604
| * | | | hss: Use tor-persist to make a StorageHandle.Nick Mathewson2023-09-202-2/+13
| | | | | | | | | | | | | | | | | | | | We'll use this to implement intro point persistence.
| * | | | tor-hsservice/Cargo.toml: wrap.Nick Mathewson2023-09-201-1/+15
| | | | |
| * | | | OnionService: start to flesh out the new() function.Nick Mathewson2023-09-201-5/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This has a lot of open questions, and won't work yet, but it starts to show us the current level of interface mismatch between our pieces.
| * | | | hss remove duplicated data from OnionService structure.Nick Mathewson2023-09-191-74/+1
| | | | | | | | | | | | | | | | | | | | This data is all duplicated in other places, or will be.
* | | | | Merge branch 'upgrades' into 'main'Nick Mathewson2023-09-203-5/+5
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | Upgrade to fixed-capacity-vec 1.0 See merge request tpo/core/arti!1606
| * | | | Update bench lockfiles for new fixed-capacity-vecNick Mathewson2023-09-202-4/+4
| | | | |
| * | | | Upgrade to fixed-capacity-vec 1.0Nick Mathewson2023-09-201-1/+1
| | |/ / | |/| |
* | | | Merge branch 'flatten' into 'main'Ian Jackson2023-09-204-0/+692
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | tor_config: Provide Flatten See merge request tpo/core/arti!1605
| * | | | tor-config: flatten: Remove a redundant allowIan Jackson2023-09-201-1/+0
| | | | | | | | | | | | | | | | | | | | At some earlier point of development this struct was pub.
| * | | | tor-config: flatten: Sort out names for field extractorIan Jackson2023-09-201-12/+12
| | | | |
| * | | | tor-config: flatten: always use field list from serdeIan Jackson2023-09-202-48/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a better trickery! Now we don't need to derive the list of field names at all. The test case becomes much simpler too, and no longer needs to compare field lists since we have only the serde field list.
| * | | | tor-config: flatten: Performance of flattenable_extract_fieldsIan Jackson2023-09-201-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | Add a performance note, and the manually-verified test case to support it.
| * | | | tor-config: flatten: Break out flattenable_extract_fieldsIan Jackson2023-09-202-25/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This involves returning the field list in the `FlattenableTesterSuccess`. This leaves the names a little off; we'll update those at the end. Export this - it's going to replace the hidden pub test function.
| * | | | tor-config: flatten: Introduce FieldList type aliasIan Jackson2023-09-201-6/+9
| | | | | | | | | | | | | | | | | | | | We're going to use this some more, even.
| * | | | tor_config: flatten: Abolish FlattenErrorIan Jackson2023-09-201-38/+9
| | | | |
| * | | | tor_config: flatten tests: Remove the obsolete todoIan Jackson2023-09-201-1/+0
| | | | |
| * | | | tor_config: Add a note about FlattenErrorIan Jackson2023-09-201-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1605#note_2945202
| * | | | tor_config: Flatten: Explain why the inner ref Flatten for serIan Jackson2023-09-201-0/+5
| | | | |
| * | | | tor_config: Flatten: Add missing tst annotationIan Jackson2023-09-201-0/+1
| | | | |
| * | | | tor_config: Provide FlattenIan Jackson2023-09-204-0/+690
| |/ / / | | | | | | | | | | | | | | | | This is an attempt to deal with the fact that `#[serde(flatten)]` is weirdly broken and doesn't work with `serde_ignored`.
* | | | tor-hsservice: Make the publisher compile again.Gabriela Moldovan2023-09-202-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The compile error happened because there was a conflict between arti!1603 and arti!1599: * the patch from !1603 uses `OnionServiceConfig::encrypt_descriptor` * !1599 removes `encrypt_descriptor` altogether
* | | | Merge branch 'publish-on-state-change' into 'main'gabi-2502023-09-202-236/+383
|\ \ \ \ | |/ / / |/| | | | | | | | | | | tor-hsservice: Descriptor publisher improvements See merge request tpo/core/arti!1603
| * | | tor-hsservice: Add TODO regarding DescriptorConfigView.Gabriela Moldovan2023-09-191-0/+4
| | | | | | | | | | | | | | | | See https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1603#note_2944902
| * | | tor-hsservice: Do not discard the runtime.spawn() Result (fmt).Gabriela Moldovan2023-09-191-18/+21
| | | |
| * | | tor-hsservice: Do not discard the runtime.spawn() Result.Gabriela Moldovan2023-09-191-16/+28
| | | |
| * | | tor-hsservice: Add an explicit Idle state for the publisher reactor.Gabriela Moldovan2023-09-191-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous code was correct too: after uploading the descriptor, the `PublishStatus` is not updated, because the reactor is still in a state where it has enough information to publish descriptors. Note that simply "being" in the `UploadScheduled` state isn't enough to trigger another upload, because `publish_status_rx.next()` (from the `select_biased!` of the main-loop), blocks until something triggers another state transition (`AwaitingIpts` -> `UploadScheduled`, or even `UploadScheduled` -> `UploadScheduled`), so while a third state is not strictly necessary, it does help with readability.
| * | | tor-hsservice: Use Instant instead of Duration for rescheduling uploads.Gabriela Moldovan2023-09-191-6/+31
| | | | | | | | | | | | | | | | This also documents how updates are rescheduled.
| * | | tor-hsservice: Remove stray doc comment.Gabriela Moldovan2023-09-191-1/+0
| | | |
| * | | tor-hsservice: Make some publisher functions synchronous.Gabriela Moldovan2023-09-191-13/+13
| | | | | | | | | | | | | | | | | | | | Now that we've switched to `std::sync::Mutex` many publish functions no longer need to be async.
| * | | tor-hsservice: Use std::sync::Mutex instead of the one from futures (fmt).Gabriela Moldovan2023-09-191-1/+4
| | | |
| * | | tor-hsservice: Use std::sync::Mutex instead of the one from futures.Gabriela Moldovan2023-09-191-10/+9
| | | |
| * | | tor-hsservice: Run cargo fmt.Gabriela Moldovan2023-09-191-69/+74
| | | |
| * | | tor-hsservice: s/handle_new_intro_points/handle_ipt_changeGabriela Moldovan2023-09-191-2/+2
| | | | | | | | | | | | | | | | | | | | `handle_ipt_change` no longer handles the new intro points: it now handles the IPT _change_ by updating the publish state of the reactor.
| * | | tor-hsservice: Borrow the IPT set from the IPT manager.Gabriela Moldovan2023-09-191-3/+13
| | | |
| * | | tor-hsservice: Discard the task handle and propagate any errors.Gabriela Moldovan2023-09-191-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't really need to keep the handles around, so let's just discard them. This also updates `upload_all` to propagate any errors coming from `build_sign`.
| * | | tor-hsservice: Republish according to IPT manager instructions.Gabriela Moldovan2023-09-191-21/+28
| | | |
| * | | tor-hsservice: Implement handle_svc_config_change.Gabriela Moldovan2023-09-191-5/+33
| | | |
| * | | tor-hsservice: Add helper for marking all descriptors dirty.Gabriela Moldovan2023-09-191-0/+17
| | | |
| * | | tor-hsservice: Use PublishState to decide when to upload the descriptor.Gabriela Moldovan2023-09-191-5/+68
| | | |
| * | | tor-hsservice: Use postage::watch to watch for pending updates.Gabriela Moldovan2023-09-191-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It doesn't make sense to use an mpsc channel for rescheduling the rate-limited uploads. If we use an mpsc channel and `upload_all` is called multiple times in a short timespan, we will end up scheduling more than 1 upload reattempt. So let's use postage::watch instead.
| * | | tor-hsservice: Update docs regarding desc upload rate-limiting.Gabriela Moldovan2023-09-191-9/+11
| | | | | | | | | | | | | | | | | | | | This updates the docs (and renames the channel for rescheduling rate-limited uploads) for clarity.