aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-circmgr
Commit message (Collapse)AuthorAgeFilesLines
...
* | Re-enable clippy::ptr_arg where it had been disabled.Nick Mathewson2022-02-161-2/+2
|/ | | | | | | | | | In one of the two places, nightly no longer warns. In the other place, it's fine for nightly to warn: I just fixed the code to take a slice instead. Partial revert of 856aca879151c622512bc4b15c6307808fc83e82. Resolves part of #310.
* Move persistent state flush from client to circmgrYuan Lyu2022-02-151-1/+13
|
* Change deny(clippy::all) to warn(clippy::all).Nick Mathewson2022-02-141-1/+1
| | | | Closes #338.
* Add TODOs on uncertain points about time_since_last_trafficNick Mathewson2022-02-091-0/+1
| | | | | | This edge-case was there even before the migration of 595fe1ab881b94106649, but now it's more explicit and ought to be revisited.
* Remove the use of Mutex in channel unused_since timestampYuan Lyu2022-02-081-2/+6
|
* Tests for TargetPorts::display()Nick Mathewson2022-02-041-1/+12
|
* Make SpawnError wrappers contain a 'spawning' stringNick Mathewson2022-02-042-13/+26
| | | | | (By our convention, these errors should say what we were trying to spawn when the error occurred.)
* errors: Drop "Error" and "Failed" from various enum variantsIan Jackson2022-02-042-3/+3
|
* tor-circmgr: Introduce TargetPorts with a pretty Display implIan Jackson2022-02-042-2/+35
|
* tor-circmgr::Error: impl HasKindIan Jackson2022-02-041-0/+12
|
* tor-circmgr: Handle channel creation errors in the new styleIan Jackson2022-02-042-4/+19
|
* spawn errors: Fix arti-client, tor-chanmgr, tor-circmgrIan Jackson2022-02-041-3/+10
| | | | | | | Provide an enum variant to contain the SpawnError and a From impl. We use `#[from]` here because it doesn't really make sense to attach any context, as it's not likely to be very relevant.
* tor-error: Add as a ddpendency to many cratesIan Jackson2022-02-041-0/+1
| | | | Doing this here makes it easier when I rebase/reorder things
* tor-circmgr: impl Display for TargetPortIan Jackson2022-02-041-0/+7
| | | | This will be used for error handling, and perhaps other things.
* tor-circmgr: Turn a type annotation comment into codeIan Jackson2022-02-041-2/+1
| | | | | | | | The type annotation may not be necessary for inference, but as a comment it risks becoming false. So it should be uncommented, or deleted. Error types round here are not entirely trivial so uncomment it.
* Merge branch 'dirclient-testing' into 'main'Nick Mathewson2022-02-031-1/+1
|\ | | | | | | | | dir-client: bug fix and more tests See merge request tpo/core/arti!271
| * Upgrade required version of futures crate to 0.3.14Nick Mathewson2022-02-011-1/+1
| | | | | | | | | | Earlier versions have a bug in UnboundedReceiver that make our new dirclient tests fail.
* | Merge branch 'typos' into 'main'eta2022-02-031-1/+1
|\ \ | | | | | | | | | | | | Fix typos See merge request tpo/core/arti!285
| * | Fix typosDimitris Apostolou2022-02-021-1/+1
| |/
* | Temporarily disable some clippy lints on nightlyIan Jackson2022-02-022-1/+2
| |
* | Untangle two needless Ok(r?) into just rIan Jackson2022-02-021-1/+1
|/ | | | | | Prompted by clippy::needless_question_mark. Sometimes Ok(r?) is needed to do automatic error conversion. I assume the lint checks for that. Anyway, in these cases it's not needed.
* Bump tor-netdir and tor-guardmgr versionsarti-v0.0.4Nick Mathewson2022-01-311-4/+4
| | | | | | | | 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-10/+10
|
* Make the native-tls crate optional.Nick Mathewson2022-01-261-1/+1
| | | | | | | | | | | This commit puts the native-tls crate behind a feature. The feature is off-by-default in the tor-rtcompat crate, but can be enabled either from arti or arti-client. There is an included script that I used to test that tor-rtcompat could build and run its tests with all subsets of its features. Closes #300
* Rename FooRuntime to FooNativeTlsRuntime for consistency.Nick Mathewson2022-01-261-1/+1
|
* Merge branch 'ticket255' into 'main'eta2022-01-242-2/+1
|\ | | | | | | | | | | | | Refactor our Runtime implementations to allow replacement parts Closes #255 See merge request tpo/core/arti!251
| * Refactor Runtimes to use separate TLS implementations internally.Nick Mathewson2022-01-192-2/+1
| | | | | | | | | | This will make it easier to implement them using some other TLS provider as well, without having to duplicate all of our code.
* | StreamPrefs: rename from ConnectPrefsIan Jackson2022-01-211-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | The docs even say this is about stream. As @nickm writes in https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/252#note_2771289 we generally call end-to-end connections that are tunneled over Tor "Streams" to distinguish them from everything else in the Tor protocols that could possibly be called a "Connection". That seems to apply here too.
* | Test for PathConfig::at_least_as_permissive_as().Nick Mathewson2022-01-201-0/+29
| | | | | | | | | | | | This is totally not just an exercise to get combined test coverage for tor-circmgr over 90% because I needed something to do that wouldn't distract anybody else. :)
* | Rename PathConfig::more_permissive_than()Nick Mathewson2022-01-202-2/+4
| | | | | | | | | | | | Since it implements a "<=" type relationship, it should be called "at_least_as_permissive_as()." Since it's a crate-private function, the long name isn't too bad.
* | Remove "self" arg from PathConfig::builder()Nick Mathewson2022-01-201-1/+1
|/ | | | This was added by mistake.
* Bump all crate versions to 0.0.3.Nick Mathewson2022-01-111-17/+17
|
* Merge branch 'ticket_178' into 'main'eta2022-01-101-0/+12
|\ | | | | | | | | | | | | Fix ticket 178: Don't use a NetDir until we have microdescriptors for all of our primary guards. Closes #178 See merge request tpo/core/arti!220
| * Add API to check if primary MDs are missing.Nick Mathewson2022-01-061-0/+12
| | | | | | | | | | | | | | We need this information to know if it's okay to migrate to a new NetDir, or if we need to download more information first. Part of #178.
* | Minimize the required version for each dependency.Nick Mathewson2022-01-071-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I found these versions empirically, by using the following process: First, I used `cargo tree --depth 1 --kind all` to get a list of every immediate dependency we had. Then, I used `cargo upgrade --workspace package@version` to change each dependency to the earliest version with which (in theory) the current version is semver-compatible. IOW, if the current version was 3.2.3, I picked "3". If the current version was 0.12.8, I picked "0.12". Then, I used `cargo +nightly upgrade -Z minimal-versions` to downgrade Cargo.lock to the minimal listed version for each dependency. (I had to override a few packages; see .gitlab-ci.yml for details). Finally, I repeatedly increased the version of each of our dependencies until our code compiled and the tests passed. Here's what I found that we need: anyhow >= 1.0.5: Earlier versions break our hyper example. async-broadcast >= 0.3.2: Earlier versions fail our tests. async-compression 0.3.5: Earlier versions handled futures and tokio differently. async-trait >= 0.1.2: Earlier versions are too buggy to compile our code. clap 2.33.0: For Arg::default_value_os(). coarsetime >= 0.1.20: exposed as_ticks() function. curve25519-dalek >= 3.2: For is_identity(). generic-array 0.14.3: Earlier versions don't implement From<&[T; 32]> httparse >= 1.2: Earlier versions didn't implement Error. itertools at 0.10.1: For at_most_once. rusqlite >= 0.26.3: for backward compatibility with older rustc. serde 1.0.103: Older versions break our code. serde_json >= 1.0.50: Since we need its Value type to implement Eq. shellexpand >= 2.1: To avoid a broken dirs crate version. tokio >= 1.4: For Handle::block_on(). tracing >= 0.1.18: Previously, tracing_core and tracing had separate LevelFilter types. typenum >= 1.12: Compatibility with rust-crypto crates x25519-dalek >= 1.2.0: For was_contributory(). Closes #275.
* | Merge branch 'circ_self_by_ref'Nick Mathewson2022-01-073-34/+40
|\ \
| * | circmgr: Fix a pair of clippy warnings.Nick Mathewson2022-01-071-2/+2
| | |
| * | tor-circmgr: Remove Arc around ClientCircIan Jackson2022-01-073-15/+15
| | | | | | | | | | | | | | | | | | See the new commentary text on `ClientCirc` for the rationale. Signed-off-by: Ian Jackson <[email protected]>
| * | tor-circmgr: tests: Do fake circuit equality by idIan Jackson2022-01-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | We are going to get rid of the Arc. Happily there is an id which is always constructed uniquely and preserved by clone. (auto-deref lets us make the function take &Self instead of &Arc) Signed-off-by: Ian Jackson <[email protected]>
| * | tor-circmgr: tests: Introduce and use FakeCirc::eq()Ian Jackson2022-01-071-13/+19
| | | | | | | | | | | | | | | | | | This removes a lot of open-coded Arc::ptr_eq() calls Signed-off-by: Ian Jackson <[email protected]>
| * | tor-circmgr: Replace some Arc::clone with .clone()Ian Jackson2022-01-071-5/+5
| | | | | | | | | | | | | | | | | | This will make the code work when it's not an Arc any more. Signed-off-by: Ian Jackson <[email protected]>
| * | tor-circmgr: Require that AbstractCirc are CloneIan Jackson2022-01-071-1/+1
| | | | | | | | | | | | | | | | | | | | | We are going to get rid of a lot of Arc, so we need the underlying thing to be Clone. Signed-off-by: Ian Jackson <[email protected]>
* | | Merge branch 'remove-type-annotation' into 'main'Nick Mathewson2022-01-071-1/+1
|\ \ \ | |/ / |/| | | | | | | | tor-circmgr: Remove a type annotation in a method call See merge request tpo/core/arti!225
| * | tor-circmgr: Remove a type annotation in a method callIan Jackson2022-01-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This is a method, so the resolution is automatic. It's not clear to me why this was written out this way, given that extend_ntor is right above. Signed-off-by: Ian Jackson <[email protected]>
* | | De-Arc-ify Buildable for ClientCircNeel Chauhan2022-01-062-14/+7
|/ /
* | Merge branch 'main' into 'remove_unused_rngs'eta2022-01-062-2/+2
|\| | | | | | | # Conflicts: # crates/tor-circmgr/src/build.rs
| * Merge remote-tracking branch 'origin/mr/214'Nick Mathewson2022-01-061-0/+1
| |\
| | * extend lints to include 'clippy::all'Daniel Eades2021-12-281-0/+1
| | |
| * | tor-circmgr: Don't clone parameters in create_chantarget()Neel Chauhan2021-12-251-2/+1
| |/
* / Remove a bunch of unused RNGsNeel Chauhan2021-12-252-51/+23
|/