| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | | | |
|
| |\ \ \ \ |
|
| | | | | | |
|
| |\| | | | |
|
| | | | | | |
|
| | | | | | |
|
| |\| | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Fixed conflict in crates/arti-client/src/lib.rs as per tree
from
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/364/#note_2782166
ie 13e55b8d7c22c26e55ba75823409b477f1bce66b
|
| | | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | | |
Otherwise, it's impossible to get a static sqlite linkage without
also getting native-tls, even if you wanted rustls.
Closes #302.
|
| |/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This makes using the `PreferredRuntime` the first-class option inside
`arti-client`, freeing users who don't want to think about runtimes from
having to do so.
`TorClient::create_unbootstrapped` and `builder` now automatically
use this runtime, leaving only `builder_custom` for users who wish to
manually specify a runtime.
This lets us clean up the docs a lot: mentions of using custom runtimes
are now relegated to nearer the end of the crate-level documentation,
and we mostly just link to `tor_rtcompat`'s docs to explain more there.
Instead, we take some more time to explain how you use the builder API
to create clients synchronously.
Other doc cleanups included getting rid of the explanation of `TorAddr`
in the main crate-level doc; this is already well-documented elsewhere,
and is something users should discover organically later.
fixes arti#326
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
Upgrade a few dependencies to newer versions
See merge request tpo/core/arti!357
|
| | | | | |
|
| | | | | |
|
| |\ \ \ \
| |/ / /
|/| | |
| | | |
| | | | |
use runtime TlsProvider in tcp-hook example
See merge request tpo/core/arti!356
|
| | | | | |
|
| |\ \ \ \
| |/ / /
|/| | |
| | | |
| | | | |
TorClient: Add get_runtime() convenience method
See merge request tpo/core/arti!350
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
As per
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/350#note_2781368
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
`StateMgr` got a new `unlock()` method that does what it says on the
tin. We now call it from `bootstrap()` using the new
`util::StateMgrUnlockGuard`, which works in a manner similar to the
`BoolResetter` from `tor_dirmgr`.
(A decent small little task in future might be to unify these types in
some sort of general arti utility crate?)
closes arti#335
|
| |\ \ \ \
| |_|/ /
|/| | |
| | | |
| | | | |
Initial cut of hyper bindings as a library crate
See merge request tpo/core/arti!342
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
It auto-converts to ErrorDetail but add this for convenience of
callers which don't want to look into that unstable API.
|
| | | | |
| | | |
| | | |
| | | | |
Code motion and consequential dependency adjustments.
|
| | |/ / |
|
| | |/
|/| |
|
| |\ \
| | |
| | |
| | |
| | | |
add example of tcp hook
See merge request tpo/core/arti!341
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | | |
Try to make the `hook-tcp` example a bit easier to read by
adding/changing comments, and renaming the lifetimes for
`async_trait`-generated trait methods.
|
| | | |
| | |
| | |
| | | |
goal of the example
|
| | | | |
|
| | | |
| | |
| | |
| | | |
this required to make additional types public
|
| |\ \ \
| |_|/
|/| |
| | |
| | |
| | |
| | | |
Make a TorClientBuilder API.
Closes #350
See merge request tpo/core/arti!337
|
| | | | |
|
| | |/
| |
| |
| |
| |
| |
| |
| | |
This is a defensive API choice to protect against the possibility
that we'll want to add a bunch of other non-config options in
the future.
Closes #350
|
| |/
|
|
|
|
|
|
|
|
|
|
|
| |
This is the first one where anyhow::Error impl AsRef<dyn StdError>
We want this because we want to add error reporting functionality
which works with all kinds of errors, which means we need an
anyhow::Error which can be vieweed as a StdError.
(The alternative would be to deref at the call sites of
report_and_exit, making it less ergonomic.)
anyhow 1.0.23 is from November 2019.
|
| |\ |
|
| | | |
|
| | | |
|
| |\ \
| |/
|/|
| |
| |
| |
| | |
arti-client: add ability to automatically bootstrap
Closes #278
See merge request tpo/core/arti!322
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The new `BootstrapBehavior` enum controls whether an unbootstrapped
`TorClient` will bootstrap itself automatically (`Ondemand`) when an
attempt is made to use it, or whether the user must perform
bootstrapping themselves (`Manual`).
The `lazy-init` example shows how you could write a simple
`get_tor_client()` function that used a global `OnceCell` to share
a Tor client across an entire application with this API.
closes arti#278
|
| |/ |
|
| |\
| |
| |
| |
| |
| |
| | |
More docs for IntoTorAddr
Closes #253
See merge request tpo/core/arti!305
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Simplify wait_for_bootstrap to use a Mutex.
Closes #337
See merge request tpo/core/arti!308
|
| | |/
| |
| |
| |
| |
| |
| |
| | |
Since the only purpose of this function is to make sure that no
bootstrapping task is running, a simple futures::lock::Mutex
should do the job just fine.
Closes #337.
|
| |/
|
|
| |
Closes #338.
|
| |
|
|
| |
(Looks like this one got missed.)
|
| |\
| |
| |
| |
| |
| |
| | |
Allow creating unbootstrapped `TorClient`s (and `DirMgr`s)
Closes #293
See merge request tpo/core/arti!298
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit changes how the `TorClient` type works, enabling it to be
constructed synchronously without initiating the bootstrapping process.
Daemon tasks are still started on construction (although some of them
won't do anything if the client isn't bootstrapped).
The old bootstrap() methods are now reimplemented in terms of the new
create_unbootstrapped() and bootstrap_existing() methods.
This required refactoring how the `DirMgr` works to enable the same sort
of thing there.
closes #293
|
| |/
|
|
|
|
| |
These should explain better what you can pass as an address, and
what you should do if you _really need_ to provide a SocketAddr or
something.
|
| |
|
|
| |
This fixes a compilation error.
|
| |
|
|
|
|
|
|
| |
Instead of declaring a macro that takes vis as an argument, we now
conditionally declare a macro that applies an appropriate visibility.
There's a long comment explaining the rationale here, along with a
couple of other solutions that don't work.
|