| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | | | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
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.
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
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
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
Let's not ask users to refer to the Constructor derive macro docs.
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
The compiler doesn't notice this, but it's odd.
|
| | | | | | |
|
| | |/ / /
| | | |
| | | |
| | | | |
This doesn't actually work of course.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
cargo: Bump futures-copy
See merge request tpo/core/arti!3580
|
| | | |/ /
| |/| |
| | | |
| | | |
| | | | |
The dependencies of futures-copy got bumped in arti!3570, leading to a
change in futures-copy, hence why we bump the patch version.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
cargo: Update equix and hashx bench
See merge request tpo/core/arti!3579
|
| | |/ / /
| | | |
| | | |
| | | | |
This commit runs `cargo update` on the respective crates.
|
| |/ / / |
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
Bump dependencies for 1.9.0
See merge request tpo/core/arti!3570
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This only includes retry-error which had a few functional additions in
December, thereby rasing the minor version as new features were added to
the public API.
Done using the following:
* Find all non arti, non tor crates.
* `ls -1 crates/ | grep -v "^tor-\|^arti"`
* Exclude the ones without changes.
* `maint/changed_crates -v "arti-v$LAST_VERSION" 2>&1 >/dev/null | grep -i "no change"`
* Look into each with changes.
* In this case only retry-error.
* Bump the minor because it had non-trivial changes.
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Done using the following:
```bash
for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do
cargo set-version -p $crate 0.38.0
done
```
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Fixes bug introduced in 0cc367b9fef37c0f7d7f04d54c4687b27ef251d0.
Without this fix, RPC's get_proxy_info command wouldn't work.
|
| | |/ /
|/| |
| | |
| | |
| | |
| | |
| | | |
This should never have been retained when we refactored our channels
for reporting responses into a single channel.
The bug became apparent when quicktest became derived from debug.
|
| |\ \ \
| |/ /
|/| |
| | |
| | | |
cargo: Run fixup-features for release
See merge request tpo/core/arti!3569
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
Executed command:
```
cargo run -p fixup-features -- --exclude examples/ --exclude maint/ Cargo.toml
```
|
| |/ / |
|