aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-hsservice/src
Commit message (Collapse)AuthorAgeFilesLines
...
* | tor-hsservice: ipt mgr: Handle ipt relay selection failureIan Jackson2023-09-111-4/+34
| | | | | | | | Without panicking.
* | tor-hsservice: ipt_mgr: Document expiry NoneIan Jackson2023-09-071-0/+2
| | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1578#note_2940673
* | tor-hsservice: ipt_mgr: Explain more about expiry time data flowIan Jackson2023-09-072-0/+16
| | | | | | | | | | Apropos https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1578#note_2940676
* | tor-hsservice: ipt_mgr: Add a TODO about the joinIan Jackson2023-09-071-0/+4
| | | | | | | | | | Apropos https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1578#note_2940675
* | tor-hsservice: ipt_mgr: Explicitly drop publish_setIan Jackson2023-09-071-0/+2
| | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1578#note_2940674
* | tor-hsservice: ipt_mgr: Actually send ipts to publisherIan Jackson2023-09-071-4/+2
| |
* | tor-hsservice: ipt_mgr: Fix output expiry time handling (fmt)Ian Jackson2023-09-071-2/+2
| |
* | tor-hsservice: ipt_mgr: Fix output expiry time handlingIan Jackson2023-09-071-10/+9
| | | | | | | | | | | | | | For the expiry times for descriptors we are intending to publish, copy out of our data structure. We don't need to actually update it to account for (possible) imminent publication; the publisher will do that.
* | tor-hsservice: ipt_mgr: Import updated expiry timesIan Jackson2023-09-071-0/+38
| |
* | tor-hsservice: ipt_mgr: Call borrow_for_update()Ian Jackson2023-09-071-5/+11
| | | | | | | | | | | | And plumb the reference through to places that will need it. We don't actually do anything with the results yet.
* | tor-hsservice: ipt_mgr: Call borrow_for_update() (pre fmt)Ian Jackson2023-09-071-3/+10
| |
* | tor-hsservice: ipt_mgr: Reorganise main loop a bitIan Jackson2023-09-071-9/+13
| | | | | | | | | | We are going to need to hold the ipt_set lock while we loop around making changes to our data structures etc.
* | tor-hsservice: ipt_mgr: Document further data structure stabilityIan Jackson2023-09-071-0/+7
| |
* | tor-hsservice: ipt_mgr: Fix last_descriptor_expiry_including_slop (fmt)Ian Jackson2023-09-071-4/+5
| |
* | tor-hsservice: ipt_mgr: Fix last_descriptor_expiry_including_slopIan Jackson2023-09-071-4/+7
| | | | | | | | This should be an Option, to correspond to what's in IptSet.
* | tor-hsservice: ipt_set: Add a missing Debug deriveIan Jackson2023-09-071-0/+1
| |
* | tor-hsservice: ipt_set: Add an IptLocalId fieldIan Jackson2023-09-072-0/+9
| |
* | tor-hsservice: Move IptLocalId into crate toplevelIan Jackson2023-09-072-14/+14
| |
* | Merge branch 'hss_config' into 'main'Nick Mathewson2023-09-074-29/+280
|\ \ | |/ |/| | | | | Begin working on configuration logic for onion services See merge request tpo/core/arti!1557
| * Allow max_concurrent_streams_per_circuit to be impossibly high.Nick Mathewson2023-09-071-1/+1
| |
| * hss: clarify and document deserialization for AnonymityNick Mathewson2023-09-071-5/+14
| | | | | | | | | | Don't make people say "Dangerous!" in the configuration, document the formats, and make the strings case-insensitive.
| * hsservice: add TODO about authorized client pluginsNick Mathewson2023-09-071-0/+5
| |
| * add a TODO about rate limits and their relationship.Nick Mathewson2023-09-071-0/+4
| |
| * hsservice: Make configs members pub(crate).Nick Mathewson2023-09-071-5/+5
| |
| * HSS: Parser/encoder for AuthorizedClientConfigNick Mathewson2023-09-071-2/+54
| |
| * HSS: Start making builders for config structs.Nick Mathewson2023-09-072-12/+51
| | | | | | | | Note a few issues encountered while doing so.
| * HSS: adjust two options.Nick Mathewson2023-09-071-4/+1
| | | | | | | | | | | | | | | | | | For rate-limiting, we make it optional. If it isn't set, we don't tell the intro to rate-limit. We condense our two max-streams options into one. We had two options here because we were looking for feature parity with C, but I think I had misunderstood what C provides.
| * hss: Move Anonymity to module and make it serde.Nick Mathewson2023-09-072-15/+77
| |
| * hss: Add configuration fields for onion services.Nick Mathewson2023-08-282-5/+88
| |
* | tor-hsservice: Remove unused Event struct (fmt).Gabriela Moldovan2023-09-062-3/+3
| |
* | tor-hsservice: Remove unused Event struct.Gabriela Moldovan2023-09-062-68/+4
| | | | | | | | | | | | | | | | | | | | The reactor events are no longer received on the same channel, so we don't need the `Event` enum or the old `Publisher` APIs any more. Svc config changes are received on a wseparate `postage::watch` channel, whereas IPT changes are detected through the `IptsPublisherView`. The publisher will (eventually) be informed of keystore changes through another `postage::watch` channel.
* | tor-hsservice: Use a postage::watch channel to watch for config changes.Gabriela Moldovan2023-09-062-1/+13
| | | | | | | | | | If multiple config changes happen in quick succession, we don't want the publisher to publish a new descriptor for every single one.
* | tor-hsservice: Use the new IPT change notifier API (fmt).Gabriela Moldovan2023-09-062-4/+12
| |
* | tor-hsservice: Use the new IPT change notifier API.Gabriela Moldovan2023-09-062-3/+19
| | | | | | | | | | | | | | | | This makes the publisher watch for IPT changes using the `IptsPublisherView` added in arti#1023 (instead of waiting for an `Event::NewIntroPoints`. The `Event` enum will soon be replaced by multiple `postage::watch` channels, one for every type of change it needs to react to).
* | tor-hsservice: Add PublisherError::Bug variant.Gabriela Moldovan2023-09-061-0/+4
| |
* | tor-hsservice: ipt_set: Define the APIIan Jackson2023-09-061-1/+90
| |
* | tor-hsservice: ipt_set: Define the shared data structureIan Jackson2023-09-063-2/+50
| | | | | | | | | | | | | | | | | | Put a last_descriptor_expiry_including_slop into the IptSet. Define who is responsible for which data. The code at the sites that interacts with this needs to be bodged, to make it still compile. That code is wrong, and the new API for sharing the state doesn't exist yet.
* | tor-hsservice: Move PublishIptSet and its pieces into a new module (fmt)Ian Jackson2023-09-061-1/+1
| |
* | tor-hsservice: Move PublishIptSet and its pieces into a new moduleIan Jackson2023-09-066-48/+54
| | | | | | | | | | This is going to be complicated enough we probably want it split out of the publisher.
* | tor-hsservice: Update our list of relevant TPs whenever the consensus changes.Gabriela Moldovan2023-09-061-3/+3
| |
* | tor-hsservice: Update outdated docs.Gabriela Moldovan2023-09-061-1/+1
| |
* | tor-hsservice: Remove outdated TODO.Gabriela Moldovan2023-09-061-2/+0
| |
* | tor-hsservice: Replace {current,previous}_period with a list of time periods.Gabriela Moldovan2023-09-061-43/+42
| | | | | | | | | | | | | | | | The descriptor publisher reactor was (incorrectly) only keeping track of the "current" and "previous" time periods. The reactor now maintains a list of all relevant time periods (obtained from `Netdir::hs_all_time_periods`).
* | tor-hsservice: Only build the Descriptor once.Gabriela Moldovan2023-09-061-25/+32
| | | | | | | | | | We don't need to build the `Descriptor` for each time period (it contains TP-agnostic information).
* | tor-hsservice: Remove unnecessary time period change handler.Gabriela Moldovan2023-09-061-37/+0
| | | | | | | | | | | | | | | | | | | | This was based on the incorrect assumption there would be an external source notifying the reactor of time period changes. Time period changes will be handled in the consensus change handler of the reactor. Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1545#note_2935668
* | tor-hsservice: De-linkify a docs link to a private itemIan Jackson2023-09-051-1/+1
| | | | | | | | | | | | | | | | | | | | Weirdly, rustdoc says 189 | /// TODO HSS surely this should be [`tor_proto::crypto::handshake::ntor::NtorSecretKey`] ? | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `crypto` in module `tor_proto` when it should probably complain the item is private. Anyway, we can't link to it, so don't.
* | Merge branch 'doc-fixes' into 'main'Nick Mathewson2023-09-052-3/+3
|\ \ | | | | | | | | | | | | tor-hsservice: Fix broken doc links. See merge request tpo/core/arti!1565
| * | tor-hsservice: Fix IPT establisher broken doc link.Gabriela Moldovan2023-09-051-1/+1
| | |
| * | tor-hsservice: Fix broken publisher reactor broken doc link.Gabriela Moldovan2023-09-051-2/+2
| | |
* | | tor-hsservice: Add a TODO HSS re expiry timesIan Jackson2023-09-052-1/+2
| | |