| 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.
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
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).
|
| | |/
| |
| |
| | |
Needed to implement `PartialEq` for `AuthorizedClientConfig`.
|
| |\ \
| |/
|/|
| |
| | |
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
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
This will change the ordering in the docs.
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| | |
We might loop, sleeping for zero. In real life this wouldn't last
long, but with the mock executor it can busy loop.
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| | |
We should encourage the use of this, rather than Spawn::spawn()
|
| |\ \
| | |
| | |
| | |
| | | |
tor-hsservice: Pass correct parameters to Establisher
See merge request tpo/core/arti!1597
|
| | | | |
|
| | | |
| | |
| | |
| | | |
This was missing the conventional spaces. Noticed in passing.
|
| | | |
| | |
| | |
| | |
| | |
| | | |
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.
|