| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
tor-dirserver: Eliminate use of sleep in tests
Closes #2308
See merge request tpo/core/arti!3582
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This commit eliminates the use of sleep in database tests because those
can be flaky, especially when the CI scheduler is overloaded, leading to
potential timeout invariants not holding true anymore.
We now fix this by using synchronization primitives from Rust in order
for threads to communicate. Documentation has been added explaining how
these tests work in greater detail.
Fixes #2308
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Post-release steps (conflicts resolved)
See merge request tpo/core/arti!3585
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
We aren't using this, and this crate still has a 0.x version. I think
this is OK, rather than having a deprecation period.
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
SQLite does not support u64 and the new version of SQLite makes a
certain piece of tor-dirserver no longer compile due to the lack of
`ToSql` for `u64`. This commit fixes it by converting these types from
`u64` to `i64` saturatingly.
|
| | | | | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
This commit is a simple invocation of `cargo update`.
|
| |\ \ \ \ \ \
| |/ / / / /
|/| | | | |
| | | | | |
| | | | | | |
Notes about netdoc shift/reduce conflicts and authcert in netstatus
See merge request tpo/core/arti!3565
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
As per
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3565#note_3323304
https://gitlab.torproject.org/tpo/core/torspec/-/merge_requests/453#note_3323185
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
As per
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3565#note_3323305
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3565#note_3323306
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Firstly, this only applies to votes, not other kinds of nestatus.
Secondly, we wrote "netstatus" a couple of times instead of "vote"
which is very confusing.
|
| | | | | | | |
|
| | | |_|_|/
| |/| | | |
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Post-release steps (semver.md removal only)
See merge request tpo/core/arti!3589
|
| | | |_|/ /
| |/| | |
| | | | |
| | | | |
| | | | | |
Fix the conflict in tor-netdoc/semver.md by hand, including the new
entries already landed since v1.9.0.
|
| |\ \ \ \ \
| |/ / / /
|/| | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Make rpc.py script work on Windows
Closes #2305
See merge request tpo/core/arti!3576
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Previously we were using c_int unconditionally, which works
everywhere else.
Closes #2305.
Co-Authored-By: Carti
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
chanmgr: Ability for the ChanMgr to be channel type specific and launch relay channels
See merge request tpo/core/arti!3563
|
| | | | | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
They are public but avoid anyone outside implementing them.
Signed-off-by: David Goulet <[email protected]>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
To pull this off, ChannelProvider::get_or_launch() needed to change from
"&self" to "self: Arc<Self>" so we could pass self to the spawned task.
This is fine as the caller of ChannelProvider (circuit reactor) has a
Arc<ChanMgr>.
This also removes the PhantomData for the runtime as we now actually use
it.
Signed-off-by: David Goulet <[email protected]>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
Signed-off-by: David Goulet <[email protected]>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
Signed-off-by: David Goulet <[email protected]>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Instead, we'll simply use `RelayInitiator` if the identity keys
(identities) struct is set.
This avoids the problem where someone could call outbound_chan_type() of
the ChanMgrConfig and get the wrong channel type if with_identities() is
set after.
This way, a single call, `with_identities()` is what will define the
outbound channel type so no chance of errors.
This also removes the cfg_if {} around the builder creation in a much
more simplified version.
Related to #1599
Signed-off-by: David Goulet <[email protected]>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
Signed-off-by: David Goulet <[email protected]>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
Signed-off-by: David Goulet <[email protected]>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
Signed-off-by: David Goulet <[email protected]>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
Signed-off-by: David Goulet <[email protected]>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
Signed-off-by: David Goulet <[email protected]>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Remove code duplication and simplifies the code by using the new
VerifiableChannel and FinalizableChannel traits.
Signed-off-by: David Goulet <[email protected]>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Add traits that will be returned outside tor-proto allowing us to not
expose client and relay specific channels.
The goal is for the tor-chanmgr to get those objects implementing those
traits and can build and run the reactor without knowing the specific
underlying type.
This allows us to have less code duplication and less client/relay
distinction in the chanmgr.
Signed-off-by: David Goulet <[email protected]>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
First, this is not great. Lots of duplicated code but it is a starting
point that we can build on top to remove code duplication.
Future commit will address this but for now, the client and relay
mechanics are implemented.
Signed-off-by: David Goulet <[email protected]>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
Signed-off-by: David Goulet <[email protected]>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Heavy refactoring coming up for the ChanBuilder. This renames
connect_no_timeout() to be client specific and uses the client channel
builder directly instead of the generic one.
Previous commit added the outbound ChannelType to the ChanBuilder which
means that we'll soon have a relay specific function to connect using
the relay channel builder.
Refactoring will then happen for shared code in those two functions.
Signed-off-by: David Goulet <[email protected]>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
Signed-off-by: David Goulet <[email protected]>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This allows us to pass it to the ChanBuilder which will be able to use
this type for the outbound channels.
For now, we do this trick where if we have relay identities, we always
consider that all outbound channels will be RelayInitiator.
Signed-off-by: David Goulet <[email protected]>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This struct is used to pass configuration parameters to the ChanMgr when
building it.
At the moment, it holds the ChannelConfig and RelayIdentities (feature
gated) which will be used in subsequent commits.
Note that relays do require RelayIdentities to build channels.
Signed-off-by: David Goulet <[email protected]>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
We'll rely on a RelayIdentities to pass in the right keys to the ChanMgr
instead of the entire KeyMgr.
Signed-off-by: David Goulet <[email protected]>
|
| |\ \ \ \ \ \
| |/ / / / /
|/| | | | |
| | | | | |
| | | | | | |
proto: Dedupe IncomingStreamRequestHandler
See merge request tpo/core/arti!3572
|
| | | | | | | |
|
| | | | | | | |
|
| | | |/ / /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This currently duplicates the client `IncomingStreamRequestHandler`.
To deduplicate it, we need the `hop_num` to be optional (it will be
`None` for relays, and `Some(hopnum)` in the client reactor).
The next commit will fix the code duplication.
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
maint: Warn if `retain` method is used from 'weak_table' crate
See merge request tpo/core/arti!3574
|
| | |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The retain method is broken on these types. I only tested
`WeakValueHashMap` and `WeakHashSet`, but it's likely that the other
types are broken as well.
We don't use this method currently, but it would be easy to accidentally
use it in the future. Let's try to catch this bug early, and if it
happens to get fixed, then it's easy to remove this lint.
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
proto: Update outdated reference to rxs in StreamMap docs
See merge request tpo/core/arti!3573
|
| | |/ / / / |
|
| |\ \ \ \ \
| |_|_|_|/
|/| | | |
| | | | |
| | | | | |
tor-netdoc: constructor derive
See merge request tpo/core/arti!3560
|
| | | | | | |
|