| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Prompted by
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1605#note_2945202
|
| | | | | | |
|
| | | | | | |
|
| | |/ / /
| | | |
| | | |
| | | |
| | | | |
This is an attempt to deal with the fact that `#[serde(flatten)]`
is weirdly broken and doesn't work with `serde_ignored`.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|
| |\ \ \ \
| |/ / /
|/| | |
| | | |
| | | | |
tor-hsservice: Descriptor publisher improvements
See merge request tpo/core/arti!1603
|
| | | | |
| | | |
| | | |
| | | | |
See https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1603#note_2944902
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
| | | | |
| | | |
| | | |
| | | | |
This also documents how updates are rescheduled.
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
Now that we've switched to `std::sync::Mutex` many publish functions no
longer need to be async.
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
`handle_ipt_change` no longer handles the new intro points: it now
handles the IPT _change_ by updating the publish state of the reactor.
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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`.
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|