summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | 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.
| * | | tor-hsservice: Fill out some todo!()s with info from the config.Gabriela Moldovan2023-09-191-2/+12
| | | |
| * | | tor-hsservice: Remove descriptor builder from publisher (fmt).Gabriela Moldovan2023-09-191-57/+57
| | | |
| * | | tor-hsservice: Remove descriptor builder from publisher.Gabriela Moldovan2023-09-192-71/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't actually need an intermediate `Descriptor` struct (and keeping a builder around doesn't make much sense either): * the information from the onion service config can just be read from the `config` field of the `Inner` (mutable) reactor state * the IPT information is retrieved right before building the descriptor * any key information will (eventually) be read from the `KeyMgr`
| * | | tor-hsservice: Remove unnecessary allow annotations.Gabriela Moldovan2023-09-191-2/+0
| | | |
* | | | Merge branch 'no-x86' into 'main'Nick Mathewson2023-09-191-18/+0
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | CI: Remove amd64 tags See merge request tpo/core/arti!1600
| * | | | CI: Remove amd64 tagsIan Jackson2023-09-181-18/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have a new runner, and apparently to use it better we want to remove these tags. TBH this seems rather unprincipled. In theory, shouldn't we tag with `amd64` all the jobs that we definitely want to run on that arch, and the others can run on whatever is the default? Then in the glorious distant RISCV future everything will run on riscv64 by default? But maybe we wouldn't want to switch that as part of the infrastructure anyway? Anyway, for discussion see https://gitlab.torproject.org/tpo/tpa/team/-/issues/41295#note_2943129
* | | | | Merge branch 'hss_config2_v2' into 'main'Nick Mathewson2023-09-195-106/+228
|\ \ \ \ \ | |_|_|/ / |/| | | | | | | | | | | | | | HSS: Finish most of our configuration work See merge request tpo/core/arti!1599
| * | | | hss: Flatten limit and pow fields into main configNick Mathewson2023-09-191-46/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See thread at https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1599#note_2944510 for information about why `flatten` doesn't work here.
| * | | | hsrproxy: rename Direct => Simple.Nick Mathewson2023-09-191-21/+24
| | | | |
| * | | | hss: make config subbuilders get flattened.Nick Mathewson2023-09-191-0/+2
| | | | | | | | | | | | | | | | | | | | This matches our design.
| * | | | hss: Rename ProxyTarget to ProxyAction.Nick Mathewson2023-09-191-16/+16
| | | | |
| * | | | hsproxy: Revise configuration based on discussionNick Mathewson2023-09-191-41/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We now have a single ProxyTarget action for the case where we accept a request and forward it: `Forward`. It takes an encapsulation method (currently only "direct") and a target address which can be inet or unix.
| * | | | hsrproxy: test actual outputs of builder.Nick Mathewson2023-09-191-1/+10
| | | | |
| * | | | hsproxy: reject configurations with unreachable patterns.Nick Mathewson2023-09-193-3/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This implementation uses rangemap to detect _all_ unreachable patterns, which might be a little overkill, but it's actually simpler to write it this way than to use an O(N^2) search to make sure that no pattern is covered by a _single_ previous pattern.
| * | | | hss: Make the config builders serde.Nick Mathewson2023-09-192-9/+18
| | | | | | | | | | | | | | | | | | | | | | | | | Temporarily disable descriptor encryption configuration while we figure out how it should work (see #1028)
| * | | | hsrproxy: Say "one", not "single" to avoid confusion.Nick Mathewson2023-09-191-1/+1
| | | | |
| * | | | hss: Wrap Cargo.toml.Nick Mathewson2023-09-191-1/+16
|/ / / /
* | | | Merge branch 'partial-eqs' into 'main'Alexander Færøy2023-09-193-3/+9
|\ \ \ \ | | |/ / | |/| | | | | | | | | | tor-hsservice: Implement PartialEq for HsClientDescEncKey, Anonimity, DescEncryptionConfig See merge request tpo/core/arti!1601
| * | | tor-hsservice: Derive PartialEq for Anonimity and DescEncryptionConfig.Gabriela Moldovan2023-09-182-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will enable the descriptor publisher to tell whether it needs to update the descriptor. When the publisher is notified of an `OnionServiceConfig` change, it checks whether the `anonimity` or `encrypt_descriptor` fields have changed. If they have, it rebuilds and republishes the descriptor using the new values (note: the publisher changes will be implemented in a future commit).
| * | | tor-hscrypto: Implement PartialEq for HsClientDescEncKey.Gabriela Moldovan2023-09-181-0/+6
| | |/ | |/| | | | | | | Needed to implement `PartialEq` for `AuthorizedClientConfig`.
* | | Merge branch 'ipt-accepting' into 'main'Nick Mathewson2023-09-181-29/+58
|\ \ \ | |/ / |/| | | | | | | | tor-hsservice: ipt mgr: Notify Establisher to start accepting See merge request tpo/core/arti!1598
| * | tor-hsservice: ipt mgr: Apply deferred rustfmt churnIan Jackson2023-09-181-3/+1
| | |
| * | tor-hsservice: ipt mgr: Remove some allowsIan Jackson2023-09-181-4/+0
| | |
| * | tor-hsservice: ipt mgr: Instruct Establisher to start acceptingIan Jackson2023-09-181-1/+12
| | |
| * | tor-hsservice: ipt mgr: Introduce ErasedIptEstablisher aliasIan Jackson2023-09-181-4/+7
| | | | | | | | | | | | We're going to want to talk about this in the Mockable trait.
| * | tor-hsservice: ipt mgr: Break apart publish_setIan Jackson2023-09-181-10/+26
| | | | | | | | | | | | | | | | | | | | | | | | The call site is going to want to do something other with the selected IPTs than just publish them. (This seems better than putting the Establisher notification in a function called `publish_set`.)
| * | tor-hsservice: ipt mgr: Move `expires` bindingIan Jackson2023-09-181-8/+8
| | | | | | | | | | | | | | | | | | We're going to split this function, and this will be in the 2nd half. Code motion only.
| * | tor-hsservice: ipt mgr: Split out publish None handlingIan Jackson2023-09-181-4/+9
| |/ | | | | | | | | We want a separate block so we can do other things besides just making an IptPublishSet.
* | Merge branch 'mock-advance' into 'main'Ian Jackson2023-09-185-6/+304
|\ \ | |/ |/| | | | | tor-rtmock: task: Provide advance_* to replace advance See merge request tpo/core/arti!1594
| * tor-hsservice: publish backoff tests: Add an allowIan Jackson2023-09-181-0/+1
| |
| * tor-rtmock: MockRuntime: Work around borrowck in Rust 1.65Ian Jackson2023-09-181-0/+2
| |
| * tor-rtmock: MockRuntime: Move deprecated advance to end of impl blockIan Jackson2023-09-181-17/+17
| | | | | | | | This will change the ordering in the docs.
| * tor-hsservice: timeout_track test: Use advance_byIan Jackson2023-09-181-1/+2
| |
| * tor-hsclient: expiry tests: Use advance_byIan Jackson2023-09-181-1/+1
| |
| * tor-hsclient: expiry: Fix a boundary error in time calculationIan Jackson2023-09-181-1/+4
| | | | | | | | | | We might loop, sleeping for zero. In real life this wouldn't last long, but with the mock executor it can busy loop.
| * tor-rtmock: MockRuntime: Add tests for advance_*Ian Jackson2023-09-181-0/+177
| |
| * tor-rtmock: MockRuntime: Provide advance_by() etc. and deprecate .advance()Ian Jackson2023-09-182-1/+102
| | | | | | | | | | | | | | | | advance_by can be used in a more natural way, rather than having to manually advance the clock in chunks to avoid triggering only the first sleep. It can also detects some "timeout triggered precisely" edge case bugs.
| * tor-rtmock: MockRuntime: Provide spawn_identified() wrapperIan Jackson2023-09-181-0/+13
| | | | | | | | We should encourage the use of this, rather than Spawn::spawn()
* | Merge branch 'ipt-misc' into 'main'Nick Mathewson2023-09-185-54/+45
|\ \ | | | | | | | | | | | | tor-hsservice: Pass correct parameters to Establisher See merge request tpo/core/arti!1597
| * | tor-hsservice: Apply deferred rustfmt churnIan Jackson2023-09-181-5/+1
| | |
| * | tor-crypto: Fix some derive formattingIan Jackson2023-09-181-1/+1
| | | | | | | | | | | | This was missing the conventional spaces. Noticed in passing.
| * | tor-hsservice: ipt mgr: Drop Mockable::new_intro_pointsIan Jackson2023-09-181-5/+0
| | | | | | | | | | | | | | | | | | We don't need this because the manager takes an IptsManagerView which can be connected to something other than a real publisher (and is pretty good at passing on the info).
| * | tor-hsservice: Pass correct parameters to EstablisherIan Jackson2023-09-181-5/+4
| | |
| * | tor-hsservice: Wrap k_hs_ipt_sid in an ArcIan Jackson2023-09-182-6/+12
| | |
| * | tor-hsservice: TODO HSS-IPT-PERSIST: make a new specific todoIan Jackson2023-09-181-6/+6
| | | | | | | | | | | | This is the persistent IPT feature.
| * | tor-hsservice: ipt mgr: Code motion needed to actually make iptIan Jackson2023-09-181-10/+10
| | | | | | | | | | | | We must generate keys and so on before we can set up an Establisher.
| * | tor-hsservice: Unify ids as IptLocalId replacing IntroPointIdIan Jackson2023-09-184-20/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | IntroPointId was RelayIds but that's wrong, because there can be different IPTs at the same relay - but also because an established IPT might change its RelayIds. Use IptLocalId instead, which I think is the type we decided to use for this, and which is, conveniently, Copy. And change the variable names to match, everywhere. Specifically: in places where an intro point is implied (ipt_mgr.rs, ipt_establish.rs) use the name `lid` everywhere, like in ipt_mgr.rs. Elsewhere, use `ipt_lid`. (We could use a longer name, but in that case it should be changed in ipt_mgr.rs too.) No actual functional change in this commit.
| * | tor-hsservice: Use correct name for k_hs_ipt_sid variableIan Jackson2023-09-182-7/+8
| |/ | | | | | | | | | | | | Local variables can have contextually implied elements omitted. In this case that's `hs` and `ipt`, leaving `k_sid` as in ipt_mgr.rs. Put the full name in the doc comment.