| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
This updates the docs (and renames the channel for rescheduling
rate-limited uploads) for clarity.
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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`
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
See thread at
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1599#note_2944510
for information about why `flatten` doesn't work here.
|
| | | | |
| | | |
| | | |
| | | | |
This matches our design.
|
| | |/ /
|/| |
| | |
| | |
| | | |
Temporarily disable descriptor encryption configuration while we
figure out how it should work (see #1028)
|
| |\| |
| | |
| | |
| | |
| | | |
tor-hsservice: Implement PartialEq for HsClientDescEncKey, Anonimity, DescEncryptionConfig
See merge request tpo/core/arti!1601
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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-hsservice: ipt mgr: Notify Establisher to start accepting
See merge request tpo/core/arti!1598
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
We're going to want to talk about this in the Mockable trait.
|
| | |
| |
| |
| |
| |
| |
| |
| | |
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`.)
|
| | |
| |
| |
| |
| |
| | |
We're going to split this function, and this will be in the 2nd half.
Code motion only.
|
| | |
| |
| |
| |
| | |
We want a separate block so we can do other things besides just making
an IptPublishSet.
|
| |\ \
| |/
|/|
| |
| | |
tor-rtmock: task: Provide advance_* to replace advance
See merge request tpo/core/arti!1594
|
| | | |
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | | |
tor-hsservice: Pass correct parameters to Establisher
See merge request tpo/core/arti!1597
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | | |
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).
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
This is the persistent IPT feature.
|
| | | |
| | |
| | |
| | | |
We must generate keys and so on before we can set up an Establisher.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |/
| |
| |
| |
| |
| |
| | |
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.
|
| |\ \
| |/
|/|
| |
| | |
tor-hsservice: Implement ipt_set
See merge request tpo/core/arti!1577
|
| | | |
|
| | |
| |
| |
| | |
Defend against rustfmt worsifying this by adding an empty comment.
|
| | |
| |
| |
| |
| |
| | |
From ..._start. The old name is confusing when you see a call site,
because the actual time passed isn't the start time, but the call site
looks like it ought to be.
|
| | |
| |
| |
| | |
This gains an almost impossible error case.
|
| | | |
|
| | |
| |
| |
| | |
This is needed since the notification channel will be an mpsc.
|
| | | |
|
| | | |
|
| |\ \
| |/
|/|
| |
| |
| |
| | |
Define a keypair type for HsSvcNtor{,Secret}Key, and use it in ipt_mgr.
Closes #1030
See merge request tpo/core/arti!1590
|
| | | |
|
| | |
| |
| |
| | |
Closes #1030.
|
| |\ \
| | |
| | |
| | |
| | | |
tor-hsservice: Implement upload_descriptor_with_retries.
See merge request tpo/core/arti!1592
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | | |
We don't really need a separate task for handling timeouts, we can just
create an `Either` future (one of the variants represents the timeout
future, while the other is the forever pending, "no timeout" option).
|