| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
| |
Unlike generational-arena, slotmap is maintained.
Unlike slotmap, slotmap-careful should never be able to reuse the
same key for two different objects.
Closes #1282.
|
| |\
| |
| |
| |
| | |
New `slotmap-careful` crate to use when we mustn't re-use keys.
See merge request tpo/core/arti!2298
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This crate works as a drop-in replacement for
the generational arena types
`slotmap::{SlotMap, DenseSlotMap, HopSlotMap}`,
and is implemented a set of wrappers around those types.
The wrappers guarantee that slot versions numbers can never wrap
around by marking as unusable any slot whose version number
would otherwise get too high. (We add some leeway between our max
allowed version number and the largest possible version number,
so that we can detect bugs.)
The code relies on the serde encoding of slotmap key versions.
For notes on stability and (surprisingly good) performance,
see the comments.
Test coverage is around 98% for the lib.rs file; it's lower in
key_data.rs, since the error cases are unreachable given
slotmap's current behavior.
Open questions:
* What further testing is a good idea?
* Will slotmap ever upstream something like this?
See "# Limitations" comment for the parts of slotmap that are not
implemented; I hope that we don't need them.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Nightly rust doesn't like it when you have a `match` arm that can
never be reached because of an uninhabited type. As such,
we can't say stuff like:
```
let x: Option<Void> = ...;
match x {
Some(_) => unreachable!(),
None => ...
}
```
|
| |\ \
| | |
| | |
| | |
| | | |
RPC: Method to expose a list of RPC methods.
See merge request tpo/core/arti!2332
|
| | |/ |
|
| |\ \
| |/
|/|
| |
| |
| |
| | |
Use std::backtrace instead of backtrace crate
Closes #1144
See merge request tpo/core/arti!2301
|
| | |
| |
| |
| |
| | |
Removes resolve_backtraces from rtmock since it is no longer needed as
stdlib's backtraces automatically lazily resolve without needing a &mut.
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | | |
Version bumps for Arti 1.2.6
See merge request tpo/core/arti!2303
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Done with
```
cargo set-version --bump patch -p arti
```
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is the result of:
```
for crate in $( ./maint/list_crates |grep '^\(tor\|arti-\)' ); do
cargo set-version -p $crate 0.21.0
done
```
|
| | |/
| |
| |
| |
| |
| |
| |
| | |
No updates on their dependents, because:
fslock-guard (only tests have changed)
equix (only change is removal of a private constant)
fs-mistrust (documentation, formatting, and use of Path::try_exists in tests)
|
| | |
| |
| |
| |
| |
| |
| | |
The previous commit added a pinned dep on cc 1.0.93, which we don't
want.
See also !2231
|
| | |
| |
| |
| |
| |
| | |
Roughly the same as 32a45edb84a210eb9fa692f7f339b2a0b20cb1c6.
Add the line to arti's Cargo.toml for convenience for next time.
|
| |/ |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
This only covers the absolute minimal API in order to launch a
connection and run simple requests, and it doesn't document anything
nearly well enough. Nonetheless I think it's good enough for an
initial review, to make sure that we've got the basics right (as
well as a general consensus on the error handling API, naming, and
so forth).
|
| | |
|
| |
|
|
| |
Closes #1250
|
| |
|
|
|
|
| |
I'm not particularly pleased with this name. We need names for both
the type, and the trait we'll almost certainly want to introduce in
the future.
|
| |
|
|
|
|
| |
The "complex" test here is fairly involved, since it tries to detect
deadlocks and race conditions by using multiple threads and
answering requests out of order.
|
| | |
|
| |
|
|
| |
See RUSTSEC-2024-0357.
|
| |\
| |
| |
| |
| | |
Lower and middle levels of Arti rpc core, version 4.
See merge request tpo/core/arti!2270
|
| | | |
|
| | | |
|
| |\ \
| |/
|/|
| |
| | |
A bit more test coverage in tor-rpcbase
See merge request tpo/core/arti!2264
|
| | | |
|
| |/
|
|
|
| |
Version 1.6.0 has been yanked. We don't use the affected API,
but our dependencies may.
|
| | |
|
| |
|
|
|
| |
This removes the deprecated syntaxes. Updating now will prevent us
re-introducing the old syntaxes, which we updated in arti!2209.
|
| |
|
|
| |
cargo set-version --offline -p arti 1.2.5
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
nailing-cargo -uE set-version -p arti-client 0.20.0
nailing-cargo -uE set-version -p arti-relay 0.20.0
nailing-cargo -uE set-version -p arti-rpcserver 0.20.0
nailing-cargo -uE set-version -p tor-async-utils 0.20.0
nailing-cargo -uE set-version -p tor-basic-utils 0.20.0
nailing-cargo -uE set-version -p tor-bytes 0.20.0
nailing-cargo -uE set-version -p tor-cell 0.20.0
nailing-cargo -uE set-version -p tor-cert 0.20.0
nailing-cargo -uE set-version -p tor-chanmgr 0.20.0
nailing-cargo -uE set-version -p tor-checkable 0.20.0
nailing-cargo -uE set-version -p tor-circmgr 0.20.0
nailing-cargo -uE set-version -p tor-config 0.20.0
nailing-cargo -uE set-version -p tor-consdiff 0.20.0
nailing-cargo -uE set-version -p tor-dirclient 0.20.0
nailing-cargo -uE set-version -p tor-dirmgr 0.20.0
nailing-cargo -uE set-version -p tor-error 0.20.0
nailing-cargo -uE set-version -p tor-geoip 0.20.0
nailing-cargo -uE set-version -p tor-guardmgr 0.20.0
nailing-cargo -uE set-version -p tor-hsclient 0.20.0
nailing-cargo -uE set-version -p tor-hscrypto 0.20.0
nailing-cargo -uE set-version -p tor-hsrproxy 0.20.0
nailing-cargo -uE set-version -p tor-hsservice 0.20.0
nailing-cargo -uE set-version -p tor-keymgr 0.20.0
nailing-cargo -uE set-version -p tor-linkspec 0.20.0
nailing-cargo -uE set-version -p tor-llcrypto 0.20.0
nailing-cargo -uE set-version -p tor-log-ratelim 0.20.0
nailing-cargo -uE set-version -p tor-memquota 0.20.0
nailing-cargo -uE set-version -p tor-netdir 0.20.0
nailing-cargo -uE set-version -p tor-netdoc 0.20.0
nailing-cargo -uE set-version -p tor-persist 0.20.0
nailing-cargo -uE set-version -p tor-proto 0.20.0
nailing-cargo -uE set-version -p tor-protover 0.20.0
nailing-cargo -uE set-version -p tor-ptmgr 0.20.0
nailing-cargo -uE set-version -p tor-relay-selection 0.20.0
nailing-cargo -uE set-version -p tor-rpcbase 0.20.0
nailing-cargo -uE set-version -p tor-rtcompat 0.20.0
nailing-cargo -uE set-version -p tor-rtmock 0.20.0
nailing-cargo -uE set-version -p tor-socksproto 0.20.0
nailing-cargo -uE set-version -p tor-units 0.20.0
Each of which runs a rune like
cargo set-version --offline -p tor-units 0.20.0
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As proposed in
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2231#note_3043322
I made this commit by:
* Taking the hunk to add `cc = "1.0.93"` from !2231.
* Running `cargo fetch`
* Staging everything except the additions of cc
to `Cargo.toml` and `Cargo.lock`
Here is the output I got from cargo:
Updating crates.io index
Locking 5 packages to latest compatible versions
Downgrading addr2line v0.22.0 -> v0.21.0 (latest: v0.23.0)
Downgrading backtrace v0.3.73 -> v0.3.71 (latest: v0.3.73)
Downgrading cc v1.0.100 -> v1.0.93 (latest: v1.0.101)
Downgrading gimli v0.29.0 -> v0.28.1 (latest: v0.30.0)
Downgrading object v0.36.0 -> v0.32.2 (latest: v0.36.0)
Downloaded cc v1.0.93
Downloaded derive-deftly v0.13.1
Downloaded 2 crates (149.8 KB) in 1.52s
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This fixes build breakage in the build-repro test.
derive-deftly 0.13.0 has an MSRV violation, due to a breach by cargo
of the Rust stability guarantee: d-d 0.13.0 works with Rust 1.56 but
not 1.76.
References:
https://gitlab.torproject.org/Diziet/rust-derive-deftly/-/issues/103
https://github.com/rust-lang/cargo/issues/14147#issuecomment-2189915460
|
| |
|
|
|
|
| |
This has been obsolete for a very long time.
We have already published a version with a "won't be updated" warning.
|
| | |
|
| |
|
|
|
|
|
| |
No code changes needed.
Precisely
nailing-cargo -Eu upgrade --incompatible -p base32
|
| |
|
|
|
|
|
| |
No code changes needed.
Precisely
nailing-cargo -Eu upgrade --incompatible -p statrs
|
| |
|
|
|
|
|
| |
No code changes needed.
Precisely
nailing-cargo -Eu upgrade --incompatible -p itertools
|
| |
|
|
|
|
|
| |
No code changes needed.
Precisely
nailing-cargo -Eu upgrade --incompatible -p derive-deftly
|
| |
|
|
|
| |
Precisely
cargo update
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit adds a parameter to TorClientBuilder that control how long
we should retry constructing a TorClient if we get a
LocalResourceInUse error. When this parameter is not set, we
default to 500 milliseconds for async entry points and 0
milliseconds for sync entry points.
(`LocalResourceInUse` usually means that a lockfile is held by
somebody else; but when the resource is some other type, we
typically want the same behavior anyway.)
(I really don't want to introduce delays by default for the
create_unbootstrapped case, since it previously had no delay at
all.)
There is now also an async entry point to create an unbootstrapped
TorClient.
Closes #1464.
|
| |
|
|
|
|
|
| |
These tests should give us *some* assurance that the upcoming
`HsVanguardPathBuilder` refactoring doesn't break anything.
Part of #1459
|
| |
|
|
|
|
|
|
|
| |
This updates our `curve25519-dalek` dependency to 4.1.3, which doesn't
have the issues described in RUSTSEC-2024-0344.
Closes TROVE-2024-007 and #1468
Fixes the failing cargo-audit job.
|
| |\
| |
| |
| |
| |
| |
| | |
tls: Support export keying material (RFC 5705)
Closes #1432
See merge request tpo/core/arti!2185
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add a function to get the keying material as detailed by RFC 5705.
Because native-tls doesn't have such support, there is a place holder
panic!() for now.
This means that for the forseable future, relay would only work with
rustls until we figure out a solution for native-tls.
Closes #1432
Signed-off-by: David Goulet <[email protected]>
|
| |\ \
| |/
|/|
| |
| |
| |
| | |
dirmgr::storage: Treat a missing blob file as an absent object.
Closes #1466
See merge request tpo/core/arti!2200
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch removes files from dir_blobs if they are not referenced
from the database, or if their filenames are not valid UTF-8.
(If they were not valid UTF-8, we wouldn't have put them in our
database.)
To ensure that there can't be any race conditions, we only do this
when the file is a bit old.
|