| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Implements the `TorClientThatIsntRunning` mentioned in !2314 (see also
`doc/dev/notes/keymgr-porcelain.md`), except `TorClientThatIsntRunning`
is called `InertTorClient`.
This commit is mostly code motion: I've moved the `create_keymgr`
function and the impls of `generate_service_discovery_key` and
`get_service_discovery_key` from `TorClient` to `InertTorClient`.
The `InertTorClient` advertises itself as a handle for accessing the
keystores and other persistent state, but it currently only has 2
functions (`generate_service_discovery_key` and
`get_service_discovery_key`). I expect it will grow additional
functionality in the future.
|
| |/ / /
| | |
| | |
| | |
| | | |
I am about to use `state_dir()` outside of `TorClient`, so I am
preemptively moving it to `TorClientConfig`.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
extract tor_async_utils::oneshot into ::oneshot-fused-workaround
See merge request tpo/core/arti!2371
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
Now that `oneshot-fused-workaround` is its own crate, `tor-rtmock` doesn't need
`tor-async-utils`.
|
| |/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Having this in the `tor-async-utils` crate prevents us from doing both
of the following without introducing a circular dependency:
* using it in `tor-rtmock` (which we currently do, particularly in
tests).
* using `tor-rtmock` to test things in `tor-async-utils`. We don't do
this yet, but it is generally sensible to do so. In particular we
want to move the `stream_peak` module there, which is currently tested
with `tor-rtmock`.
Moving this into its own crate avoids this circular dependency.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
RPC: Add experimental method to list SOCKS proxy addresses.
Closes #1523
See merge request tpo/core/arti!2359
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
(This is a bit trickier than I would like, but it ensures that we
never return a "not initialized yet" code.)
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We'll need this for our rpc-library code to meaningfully open SOCKS
connections.
Closes #1523.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This type exists in the `arti` crate. It wraps and delegates to
`arti_rpcserver::RpcSession`. Subsequent commits will use it to
expose information from the `arti` crate to the RPC system; right
now it does nothing.
|
| | | | | |
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
tor-hsservice: Fix publisher config watching bug
See merge request tpo/core/arti!2369
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This ensures that if a directory used as a `key_dir` is moved (e.g.
renamed), and then moved back to its original location (the one
specified in `key_dirs`), our watcher continues watching the `key_dirs`
contents.
|
| | | | | |
| | | | |
| | | | |
| | | | | |
`FileWatcher::watch_file` can be used with arbitrary paths.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This ensures that if a `key_dir` is created after we start watching it
(or if it's moved), we are still able to detect changes.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
While this means we will be recreating the watcher slightly more often
than necessary, this new approach is less error-prone than what we had
before.
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Discourage use of `tor_rtmock_test_with_*` macros
See merge request tpo/core/arti!2372
|
| | | |/ / /
| |/| | |
| | | | |
| | | | | |
New tests should usually use tor_rtmock::MockRuntime.
|
| |\ \ \ \ \
| |/ / / /
|/| | | |
| | | | |
| | | | | |
tor-proto::circuit: remove some obsolete "limitations" comments
See merge request tpo/core/arti!2366
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
There is now (sendme-style) flow control, and some fairness
(via round robin scheduling of streams).
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
There is a mutex for some of the "mutable state", but the reactor only
needs to lock it when adding a hop. It's not needed "to process a cell"
or when streams send. Probably not worth calling out here.
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
rpclib, ffi: Allow simultaneous calls to `arti_rpc_handle_wait()`
Closes #1532
See merge request tpo/core/arti!2360
|
| | | | | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Its underlying function previously took `&mut RpcHandle`,
which was an accident waiting to happen. Now it takes `&RpcHandle`
and includes a Mutex to prevent multiple threads from waiting for
updates on the same request ID at once.
As an alternative, we *could* try to update connimpl::Receiver to
allow multiple simultaneous listeners on the same request ID.
But that would (I think) require a lot more bookkeeping, and thus
would be a bit more error-prone.
Closes #1532.
|
| |\ \ \ \ \ \
| |/ / / / /
|/| | | | |
| | | | | |
| | | | | | |
Preliminaries for moving stream-peek into tor-async-utils
See merge request tpo/core/arti!2362
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| |/ / / / / |
|
| |\ \ \ \ \
| |_|/ / /
|/| | | |
| | | | |
| | | | | |
Move Qty to tor-basic-utils as ByteQty and significantly improve it
See merge request tpo/core/arti!2363
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
This finally makes this type suitable for parsing in config files.
|
| | | | | |
| | | | |
| | | | |
| | | | | |
Display can now choose appropriate units.
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
The serde ones are going to need to be conditional.
|
| | | | | |
| | | | |
| | | | |
| | | | | |
Code motion of byte_qty.rs, and minimal necessary supporting changes.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We're going to make this into a proper public type.
It's going to move into a different crate, where there's no prelude,
so give it a bespoke set of imports too.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Code motion, part 1.
Also explain in comments at the top of the new module why we are doing
this at all rather than using an existing thing.
|