summaryrefslogtreecommitdiff
path: root/Cargo.lock
Commit message (Collapse)AuthorAgeFilesLines
...
* | Switch to shellexpand-fork version of shellexpandIan Jackson2022-03-021-4/+4
|/ | | | | Apropos discussion in https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/274
* Bump all crates to 0.1.0arti-v0.1.0Nick Mathewson2022-03-011-31/+31
|
* Final "cargo update" before relase.Nick Mathewson2022-03-011-6/+6
|
* arti-hyper: Provide TLS connector and make space for TLS streamIan Jackson2022-02-281-7/+200
| | | | | | | | | | Add tls_conn field to ArtiHttpConnector (and argument to constructor). Introduce MaybeHttpsStream and use it in ArtiHttpConnection. Have the example program pass the native TLS connector. Currently the TLS connector and the HTTPS variant are not used, but this commit is very noisy and fomrulaic, so I have split out the code to use them into a separate commit for easier preparation and review.
* Run "cargo upgrade" in preparation for 0.1.0.Nick Mathewson2022-02-251-168/+204
| | | | | | (It's good to do this a couple of days in advance in case it turns up any bugs. That's how we caught the panic bug in simple_asn1 0.6.0)
* Upgrade to newer version of config crate.Nick Mathewson2022-02-251-26/+21
|
* Upgrade dependency to new version of rlimit.Nick Mathewson2022-02-251-2/+2
|
* arti-hyper: impl HasKind for ConnectionErrorIan Jackson2022-02-231-0/+1
|
* arti-hyper: Introduce new ConnectionError typeIan Jackson2022-02-231-0/+1
| | | | | We need this not to use anyhow because we don't want our libraries to expose anyhow, and this is about to go into the library.
* arti-hyper: Move hyper example from arti-clientIan Jackson2022-02-231-1/+5
| | | | Code motion and consequential dependency adjustments.
* arti-hyper: empty crate skeletonIan Jackson2022-02-231-0/+8
|
* Provide error reporter and use it in the arti binaryIan Jackson2022-02-181-0/+1
|
* Merge branch 'remaining-errors'Nick Mathewson2022-02-171-0/+2
|\
| * dirmgr: Remember where netdocs came from.Nick Mathewson2022-02-161-0/+1
| | | | | | | | | | This isn't complete (see TODO), but it's enough to let us report the right ErrorKind if something fails to parse.
| * Implement HasKind for tor_dirclient::ErrorNick Mathewson2022-02-161-0/+1
| |
* | Merge branch 'eta/lazy-init' into 'main'eta2022-02-161-0/+1
|\ \ | |/ |/| | | | | | | | | arti-client: add ability to automatically bootstrap Closes #278 See merge request tpo/core/arti!322
| * arti-client: add ability to automatically bootstrapeta2022-02-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge branch 'cell-proto-error' into 'main'Nick Mathewson2022-02-161-0/+2
|\ \ | |/ |/| | | | | tor-cell and tor-proto: provide HasKind. See merge request tpo/core/arti!304
| * tor-proto: use InternalError for internal errors.Nick Mathewson2022-02-151-0/+1
| |
| * tor-cell: provide HasKind.Nick Mathewson2022-02-151-0/+1
| | | | | | | | | | | | | | | | | | Additionally, refactor the IoError out of tor_cell::Error: nothing in TorCell created this; it was only used by tor_proto. This required refactoring in tor_proto to use a new error type. Here I decided to use a new CodecError for now, though we may refactor that away soon too.
* | Merge branch 'doc-errors' into 'main'Nick Mathewson2022-02-151-0/+2
|\ \ | |/ |/| | | | | Refactor errors in tor-netdoc See merge request tpo/core/arti!314
| * Refactor tor_netdoc::ErrorNick Mathewson2022-02-141-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This error type doesn't impement HasKind, since the kind will depend on context. However, the existing implementation was pretty messy and inconsistent: Some errors had positions, some didn't. Some took messages as str, some as String. Some had internal errors that were somewhat orthogonal to their actual types. This commit refactors tor_netdoc::Error to use a ParseErrorKind, and adds a set of convenience functions to add positions and messages to the errors that need them.
* | Simplify wait_for_bootstrap to use a Mutex.Nick Mathewson2022-02-141-1/+0
|/ | | | | | | | 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.
* Merge branch 'eta/unbootstrapped-clients' into 'main'Nick Mathewson2022-02-111-0/+2
|\ | | | | | | | | | | | | Allow creating unbootstrapped `TorClient`s (and `DirMgr`s) Closes #293 See merge request tpo/core/arti!298
| * Allow creating unbootstrapped `TorClient`s (and `DirMgr`s)eta2022-02-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | tor-socksproto: Implement HasKindNick Mathewson2022-02-111-0/+1
| | | | | | | | | | (This error isn't yet wrapped in TorError, but it will be eventually when we implement socks proxy and PT support.)
* | tor-bytes: Use InternalError.Nick Mathewson2022-02-091-0/+1
| | | | | | | | | | | | This crate's Error type is too low-level to have an ErrorKind, but it does make sense to use InternalError for the internal errors here.
* | tor-config: Add HasKind support.Nick Mathewson2022-02-091-0/+1
|/ | | | This required a few new ErrorKinds.
* Expire channels that have been unused for too longYuan Lyu2022-02-041-0/+1
|
* spawn errors: impl HasKind for futures::SpawnErrorIan Jackson2022-02-041-0/+3
| | | | | | | | | This needs two kinds. We have decided to treat a non-shutdown SpawnError as "unexplained" rather than as an InternalError. There are many crates whose From<futures::task::SpawnError> for Error erroneously treat it as an internal error. We will fix them in a moment.
* tor-error: Add as a ddpendency to many cratesIan Jackson2022-02-041-0/+5
| | | | Doing this here makes it easier when I rebase/reorder things
* tor-error: Introduce InternalError as a type and a kindIan Jackson2022-02-041-0/+46
| | | | This can contain a backtrace, which will be printed.
* tor-error: Skeleton for new crateIan Jackson2022-02-041-0/+7
| | | | | | As per doc/Errors.md. Currently there are no error kinds. Some will be added as we go along.
* Reload configuration when our configuration files change.Nick Mathewson2022-02-011-47/+269
| | | | Closes #270
* Bump tor-netdir and tor-guardmgr versionsarti-v0.0.4Nick Mathewson2022-01-311-2/+2
| | | | | | | | tor-netdir needs to bump because tor-netdoc bumped, even though there were no other changes in tor-netdir. Whoops. tor-guardmgr needs to bump because it already published, with the older tor-netdir.
* Bump the patch version of every crate that changed since 0.0.3Nick Mathewson2022-01-311-14/+14
|
* Run "cargo update" in preparation for monday's release.Nick Mathewson2022-01-281-88/+103
|
* arti: be more careful to use the user-selected runtimeNick Mathewson2022-01-261-0/+1
|
* Refactor native_tls usage into its own moduleNick Mathewson2022-01-251-11/+0
| | | | | This change uses the async-native-tls crate for everything, and deletes some duplicated code.
* tor-rtcompat: Add support for rustls.Nick Mathewson2022-01-251-0/+78
| | | | | | | | | | | | | | | | | | | This is based on @janimo's approach in !74, but diverges in a few important ways. 1. It assumes that something like !251 will merge, so that we can have separate implementations for native_tls and rustls compiled at the same time. 2. It assumes that we can implement this for the futures::io traits only with no real penalty. 3. It uses the `x509-signature` crate to work around the pickiness of the `webpki` crate. If webpki eventually solves their [bug 219](https://github.com/briansmith/webpki/issues/219), we can remove a lot of that workaround. Closes #86.
* Refactor Runtimes to use separate TLS implementations internally.Nick Mathewson2022-01-191-1/+0
| | | | | This will make it easier to implement them using some other TLS provider as well, without having to duplicate all of our code.
* Merge branch 'bootstrap_reporting'Nick Mathewson2022-01-191-0/+10
|\
| * tor-chanmgr: Add bootstrap/status reporting.Nick Mathewson2022-01-181-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The information is pretty basic here: we use "have we been able to connect/TLS-handshake/Tor-handshake" as a proxy for "are we on the internet? Are we on a reasonably unfiltered part of the internet?" Eventually we'll want to make the information gathered and exported more detailed: I've noted a few places in the code. For now, however, this is about as good as C Tor does today, and it should be a good starting point. This uses a slightly different design from tor-dirmgr. Instead of exporting an entire state structure via `postage::watch`, it exports only the parts of that structure which the user is supposed to read. I think that's more reasonable in this case because most of the possible internal transitions in the tor-chanmgr state don't cause a change in the exposed status.
| * tor-dirmgr: Create a bootstrap-status exporting mechanism.Nick Mathewson2022-01-181-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The interface is similar to the one exposed by `arti-client`: it internally uses postage::watch to give a series of events showing when a bootstrap status is changing. Thanks to the existing state/driver separation in the DirMgr design we don't need much new logic: each download state needs to expose (internally) how far along it is in its download, which the bootstrap code passes to the DirMgr if it has changed. I believe that in the long run, we'll probably want to expose more (or different) information here, and we'll want to process it differently. With that in mind, I've made the API for `DirBootstrapStatus` deliberately narrow, so that we can change its of its internal later on without breaking code that depends on it. (The information exposed by this commit is not yet summarized in `arti-client`.) Part of #96.
* | Merge branch 'eta/292-1' into 'main'eta2022-01-141-0/+8
|\ \ | |/ |/| | | | | arti-bench: add support for multiple samples & averaging See merge request tpo/core/arti!240
| * arti-bench: add support for multiple samples & averagingeta2022-01-141-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We now do multiple samples (configurable; default 3) per type of `arti-bench` benchmark run, and take a mean and median average of all data collected, in order to hopefully be a bit more resilient to random outliers / variation. This uses some `futures::stream::Stream` hacks, which might result in more connections being made than required (and might impact the TTFB metrics somewhat, at least for downloading). Results now get collected into a `BenchmarkResults` struct per type of benchmark, which will be in turn placed into a `BenchmarkSummary` in a later commit; this will also add the ability to serialize the latter struct out to disk, for future reference. part of arti#292
* | Implement the basics of a bootstrap-status API.Nick Mathewson2022-01-131-0/+2
|/ | | | | | | | | | | | The purpose of a this API is to tell the user how far along Arti is in getting bootstrapped, and if it's stuck, what it's stuck on. This API doesn't yet expose any useful information: by the time it's observable to a client, it's always "100% bootstrapped." But I'm putting it in a MR now so that we can review the basic idea, and to avoid conflicts with later work on tickets like #293 and #278. This is part of #96.
* guardmgr::..::sample_test: Fix intermittent failure.Nick Mathewson2022-01-111-0/+1
| | | | | | | | | | | | | | This test should only fail very rarely (around 1/2.4e8) when guards are chosen from a list of 20 with uniform probability. But that wasn't what we were doing on the mock test network: we were choosing from a list of 10 viable guards, with nonuniform probability. As a fix, we change the test network probabilities so that the guards _are_ chosen with a uniform probability for this test, and we use a modified version of the test network where there are indeed 20 Guard-flagged relays with the required DirCache=2 protocol. Closes #276.
* Bump all crate versions to 0.0.3.Nick Mathewson2022-01-111-29/+29
|
* Run "cargo update".Nick Mathewson2022-01-111-147/+153
|