| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
This feature has been removed from nightly, in favor of doc_cfg.
|
| |
|
|
|
| |
I've added these in places that are useful for the debugging that I've
been doing.
|
| |\
| |
| |
| |
| | |
smol: Implement smol in tor-rtcompat
See merge request tpo/core/arti!2986
|
| | | |
|
| |/
|
|
| |
See #1977, #2122.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
First, run
```
git grep -l "^edition =" |
xargs perl -i -pe 's/^edition *=.*/edition = "2024"/;'
```
Second, manually verify that all Cargo.toml files have changed,
and nothing else has changed.
Third, run cargo fmt again.
|
| |\
| |
| |
| |
| | |
Fix Windows compile warnings
See merge request tpo/core/arti!3114
|
| | |
| |
| |
| |
| | |
Use unix-specific crates only if needed and suppress clippy warnings of
unused variables if their usage is unix-specific.
|
| |/ |
|
| |
|
|
| |
Made with https://crates.io/crates/typos-cli
|
| |
|
|
| |
These only serve as a compile-time check.
|
| |
|
|
| |
See #2060.
|
| | |
|
| |
|
|
|
| |
Explain that you don't need to .await the returned future,
and say what happens when you drop it.
|
| |
|
|
|
|
|
|
|
|
| |
futures-rustls provides and re-exports rustls and thus the rustls
dependency is redundant.
Additionally, this removes `aws-lc-rs` and its inherent dependencies
from `Cargo.lock` and the entire project since they've been included
because the rustls dependency did not use `default-features = false`
and rustls by default now depends on `aws-lc-rs` as its crypto engine.
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
The `IoError::other` function is an easier way to say
`IoError::new(IoErrorKind::Other, ...)`. It's been around since
1.74, but clippy started warning about the more verbose version in
1.87.
|
| |\
| |
| |
| |
| |
| |
| | |
Forbid fork, except very carefully before exec
Closes #1897
See merge request tpo/core/arti!2925
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Relax bounds on BlockOn::reenter_block_on
Closes #1933
See merge request tpo/core/arti!2934
|
| | |/
| |
| |
| | |
The future no longer needs to be `Send + 'static`.
|
| |/
|
|
|
| |
This comes up on OSX; I hadn't seen it before, so I assume it is new
with Rust 1.86.
|
| |
|
|
|
|
| |
We change `NoUnixAddressSupport` to `NoAfUnixSocketSupport` because it
doesn't make much sense to talk about support for the addresses
separately from support for the sockets.
|
| | |
|
| |\
| |
| |
| |
| |
| |
| | |
Switch from x509-signature to rustls-webpki when using rustls.
Closes #1824 and #1854
See merge request tpo/core/arti!2816
|
| | |
| |
| |
| |
| | |
We do this so that we can make sure there's a provider installed
when we run the tests.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The x509-signature crate is archived, and won't see any more
releases. Using it is tying us to ring 0.16 internally,
which means we depend on two ring versions.
Fortunately, rustls-webpki relaxes some of the earlier restrictions
from the vanilla webpki crate, which means that its certificate parser
now accepts C tor's oddball x509 certificates as valid.
With this change, we can delegate to rustls's built-in
signature-checking code, and we only have to override its
certificate validation. (We still override it with a pile of
comments about how we don't validate link certificates much.)
I've had to include a few certificates: two are for tests,
but one is needed as a placeholder, since we can't construct
a rustls certificate validator without a root cert,
even if we'll never use it.
Closes #1824.
Closes #1854.
|
| | |
| |
| |
| | |
(We had added this rename when rustls renamed it originally.)
|
| | |
| |
| |
| |
| | |
As per
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2810#note_3168425
|
| | |
| |
| |
| | |
Let's use Tokio terminology here.
|
| | |
| |
| |
| |
| | |
As requested
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2810#note_3167979
|
| | |
| |
| |
| |
| | |
As per
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2810#note_3167978
|
| | |
| |
| |
| |
| | |
As per
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2810#note_3167977
|
| | |
| |
| |
| |
| | |
Prompted by
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2810#note_3167976
|
| | |
| |
| |
| |
| |
| |
| | |
Prompted by
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2810#note_3167975
Also allow ourselves the option of changing this in the future.
|
| | |
| |
| |
| |
| | |
Prompted by and partially taken from
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2810#note_3167973
|
| | |
| |
| |
| |
| | |
As per
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2810#note_3167972
|
| | |
| |
| |
| |
| | |
As per
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2810#note_3167970
|
| | |
| |
| |
| |
| | |
See
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2810#note_3167969
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
The: table entry for `spawn_thread` was wrong. We use AsyncExecutors'
spawn_blocking which uses tokio::task::spawn_blocking.
This has implications for the semantics, as per
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2810#note_3167967
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2810#note_3167968
|
| | |
| |
| |
| |
| | |
As per
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2810#note_3167966
|
| | |
| |
| |
| |
| | |
As suggested
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2810#note_3167965
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
rustfmt.
|
| | |
| |
| |
| |
| |
| | |
This member is the principal one which implemnets Spawn, Blocking and
perhaps ToplevelBlockOn. It doesn't appear that we actually need to
split this into multiple members.
|
| | |
| |
| |
| |
| |
| |
| |
| | |
Introduce ToplevelRuntime as an alias, and use it in the top-level
programs.
Now none of the principal protocol implementation code has access to
the executor's toplevel entrypoint, and can't call it by mistake.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
This was referenced and explained from the docs, but didn't exist yet.
Here it is.
Everyone except the Tokio glue, and the CompoundRuntime, just use the
default implementation in terms of spawn_thread. spawn_thread has a
more relaxed contract, so this is correct.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Forbid re-entering the executor using ToplevelBlockOn::block_on.
This was always forbidden in the case of MockExecutor, but that meant
that tests using MockExecutor would malfunction if the code under test
needed to re-enter the executor from sync code (since the code under test
would have to use block_on, which wrong). See #1835.
Provide a function which *can* do this, reenter_block_on. The
MockExecutor needs to know the difference, and other runtimes may too.
They are conceptually quite different operations.
Introduce ToplevelRuntime as a convenience alias.
|