| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
This is now implemented.
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
This is a general issue with the publisher that will need to be
addressed soon.
|
| | | |
| | |
| | |
| | | |
changes.
|
| | | |
| | |
| | |
| | |
| | | |
This `FileWatcher` is watching the `restricted_discovery.key_dirs`
directories for changes.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
Sometimes it's useful to know what files/directories are being watched.
For example, the descriptor publisher needs to know in order to figure
out if it needs to update the watcher in response to changes in the
config.
|
| | | |
| | |
| | |
| | |
| | |
| | | |
We need to know if `watch_configuration` is set in the descriptor
publisher reactor to know whether we should be watching the
`restricted_discovery.key_dirs` directories.
|
| | | | |
|
| | | |
| | |
| | |
| | | |
contents change.
|
| | | |
| | |
| | |
| | |
| | | |
This will soon be used in the `key_dirs` change handler, which will
re-read the authorized_clients list.
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously, the publisher would always publish a new descriptor if the
config changed. Now, it only republishes if the parts of the config that
changed are relevant (i.e. if they are part of
`OnionServiceConfigPublisherView`).
A future change will make it so that we trigger a republish task
whenever the restricted discovery mode authorized clients change. This
will involve looking at the contents of the configured `key_dirs`, as
well as the `OnionServiceConfigPublisherView`.
|
| | | | |
|
| | | |
| | |
| | |
| | | |
This resolves a clippy warning.
|
| | | |
| | |
| | |
| | |
| | | |
Resolves the TODO prompted by
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1603#note_2944902
|
| | | |
| | |
| | |
| | |
| | | |
Partially addresses
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1603#note_2944902
|
| | | |
| | |
| | |
| | | |
Knowing the nicknames can be useful when debugging.
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This also fixes a couple of issues with the previous implementation:
* it enables you to watch for more than just one file/extension per
directory (each directory now has a list of filters. If any of the
filters apply to the path contained in the notify::Event, the
`FilterWatcher` notifies the listeners
* it removes the list watched files from `FileWatcher`. This makes
things a lot simpler to grok: essentially, the file watcher only
ever watches directories, notifying if an "interesting" file was
changed (in our case, the interesting files are files that have a
relevant extension, such as `.auth`, or specific configuration
files, as specified by `ConfigurationSources`).
|
| | | |
| | |
| | |
| | |
| | | |
This will soon grow more complex, so I am preemptively moving it out of
`start_watching`.
|
| | | |
| | |
| | |
| | |
| | | |
We don't need this variant anymore, because sighup is now handled
separately from `FileWatcher` events.
|
| | | |
| | |
| | |
| | | |
The `FileWatcher` now uses a `postage::watch` channel under the hood.
|
| | | |
| | |
| | |
| | |
| | | |
The event handler will soon be made async, so we need a handle to the
runtime.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
For the most part, this is just code motion.
The only change here is that `prepare` is no longer a method on
`FileWatcher`. This decouples `FileWatcher` from `ConfigurationSources`,
enabling us to use it to watch files and directories that aren't
configuration.
|
| | | |
| | |
| | |
| | |
| | | |
The `FileWatcher` doesn't contain the channel for receiving events
anymore, and `FileWatcher::event_matched` was removed at some point.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
Circuit reactor: improve code comments
See merge request tpo/core/arti!2358
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
From
<https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2340#note_3062531>
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
In particular, clarify that stream-flow-control msgs don't get blocked
on circuit congestion control.
|
| |\ \ \ \
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | | |
tor-ptmgr: make managed PTs optional ('managed-pts' feature flag)
Closes #1334
See merge request tpo/core/arti!2354
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
This conditionally compiles most of the code related to managed
transports.
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Code that's related to managed transports has been moved to a new
'managed' module. This includes the PT reactor since it's not needed for
unmanaged transports.
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This is a little nicer and more type-safe to work with than
`TransportConfig`. It would have been nice to change `TransportConfig`
directly instead, but it would slightly change arti_client's public API,
and would require an extra field in the `[[bridges.transports]]` toml
table.
|
| |\ \ \ \
| |_|/ /
|/| | |
| | | |
| | | | |
Add and use `PeekableStream` and `UnobtrusivePeekableStream`
See merge request tpo/core/arti!2345
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* Update `StreamPollSet` to require that its streams implement
`PeekableStream`, and to not do its own buffering of values read from
the stream.
This avoids an extra layer of buffering for streams that already
buffer a value, and makes the interior state a little simpler and more
robust.
It does have a downside of making the API a little less convenient,
since the caller must do its own `poll_peek` call if it wants a
reference to the item.
* Update `StreamMap` to implement `PeekableStream` for
`OpenStreamEntStream`, as it must to satisfy the updated
`StreamPollSet` API. We have to somewhat constrain the
`poll_ready_streams_iter` API to no longer return both a reference to
the stream and the message. I don't see a way to return both
while satisfying the borrow checker. Luckily we don't really need both
anymore.
* Update the Circuit reactor to handle the updated
`StreamMap::poll_ready_streams_iter` API.
|
| | | |/
| |/| |
|
| |\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
llcrypto: Make `blind_keypair` build without hsv3-client.
Closes #1504
See merge request tpo/core/arti!2341
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Now it exists unconditionally so that we can have our assertion for
public key consistency happen unconditionally. (Blinding secret
keys is not remotely in the critical path, so I'm not concerned
about the critical path.)
From a suggestion from Gabi on !2341.
|