| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |/ / /
| | |
| | |
| | | |
That's what I get for blindly trusting @nickm :p
|
| |\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Expose and rename stream timeout config.
Closes #281
See merge request tpo/core/arti!231
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Previously we kept this in an ambiguously named type,
`ClientTimeoutConfig`. But everything we do right now is client
related! So `StreamTimeoutConfig` is a better name.
Also, we'd previously neglected to expose the builder for this type
from `TorClientConfigBuilder`. Now we do.
Closes #281.
|
| |\ \ \ \
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | | |
Make the arti_client::Result type public.
Closes #280
See merge request tpo/core/arti!230
|
| |/ / /
| | |
| | |
| | | |
Closes #280.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This prevents a security-failure condition that could happen if our
directory caches don't give us these microdescriptors, but we
nevertheless decide that the directory is usable.
Closes #178
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If we don't know a current microdescriptor for a guard, we can't use it
for multihop circuits, since we don't know its onion keys.
This is part of a fix for #178.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Fix busy-loop when consensus is near expiring.
Closes #274
See merge request tpo/core/arti!223
|
| | | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When our current consensus is getting close to being invalid (but
it isn't invalid yet), we try to get a new one. So far, so good.
But we had a bug: when we went to get a new consensus, we'd see that we
had a perfectly fine not-yet-invalid consensus in our cache, reload it,
find that it was ready, and continue!
This patch fixes our behavior: If we have a usable consensus, then
when we reset the bootstrapping process, we ignore any cached consensus.
Fixes bug #274.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Minimize the required version for each dependency.
Closes #275
See merge request tpo/core/arti!228
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Previously this code was in .gitlab-ci.yml, but for the purposes of
testing my fix for #275, it turned out to be much better to have it
in a script of its own.
Also, we now need to update our "quote" second-order dependency,
since otherwise our minimal first-order dependencies won't build
correctly.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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.
|
| |\ \ \ \ \
| |/ / / /
|/| | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Use *_with_prefs() for Option<ConnectPrefs> callers in TorClient::connect
Closes #273
See merge request tpo/core/arti!229
|
| |/ / / / |
|
| |\ \ \ \ |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Previously they took Arc<Self>, and then Self, but &self is perfectly
fine here.
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
See the new commentary text on `ClientCirc` for the rationale.
Signed-off-by: Ian Jackson <[email protected]>
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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]>
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This removes a lot of open-coded Arc::ptr_eq() calls
Signed-off-by: Ian Jackson <[email protected]>
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This will make the code work when it's not an Arc any more.
Signed-off-by: Ian Jackson <[email protected]>
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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]>
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
tor-circmgr: Remove a type annotation in a method call
See merge request tpo/core/arti!225
|
| | | |/ / /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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 ClientCirc
See merge request tpo/core/arti!219
|
| |/ / / |
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
Remove a bunch of unused RNGs
See merge request tpo/core/arti!213
|
| | |\ \ \
| |/ / /
|/| | |
| | | | |
# Conflicts:
# crates/tor-circmgr/src/build.rs
|
| |\ \ \ \
| |_|/ /
|/| | |
| | | |
| | | | |
prefer 'unwrap_or_default' to manual constructor
See merge request tpo/core/arti!215
|
| | | | | |
|
| | | | | |
|
| |\ \ \ \ |
|
| | |/ / / |
|
| |\ \ \ \ |
|
| | |/ / / |
|
| |\ \ \ \ |
|
| | |/ / / |
|
| |/ / / |
|
| |/ / |
|
| |\ \
| | |
| | |
| | |
| | | |
Exclude arti-bench from coverage.
See merge request tpo/core/arti!210
|
| | | |
| | |
| | |
| | |
| | | |
This program is itself for testing; we don't strongly care how much
coverage it has on its own.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Only count timeouts when we've seen net activity recently.
Closes #256
See merge request tpo/core/arti!207
|
| | |/ /
| | |
| | |
| | |
| | |
| | |
| | | |
This closes arti#256. It makes our behavior match Tor's more closely,
though it has a simpler implementation than Tor. I think that the extra
complexity in Tor's logic is because we used to record timeouts in
the histogram as well as in the success/failure log.
|
| |\ \ \
| |/ /
|/| |
| | |
| | | |
Usability improvements to arti-bench.sh script
See merge request tpo/core/arti!209
|
| | | |
| | |
| | |
| | |
| | | |
Previously, this case would cause arti-bench to hang forever, trying
to bootstrap against one network while another network was running.
|
| | | |
| | |
| | |
| | | |
(An empty $RUST_LOG no output, and confuse the nickm^Wuser.)
|
| |/ /
| |
| |
| |
| | |
shellcheck doesn't like `export FOO="$(bar)"` as one line, since it
has the possibility of missing errors.
|