| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | |/ /
| |/| |
| | | |
| | | | |
This will tell the base `BackwardReactor` how to handle the cell.
|
| | | | | |
|
| |/ / /
| | |
| | |
| | |
| | |
| | |
| | | |
Without this change `arti` fails to compile with the `onion-service-cli`
and `onion-service-service` features enabled.
Closes #2347
|
| | | |
| | |
| | |
| | | |
Signed-off-by: David Goulet <[email protected]>
|
| | | |
| | |
| | |
| | | |
Signed-off-by: David Goulet <[email protected]>
|
| | | |
| | |
| | |
| | | |
Signed-off-by: David Goulet <[email protected]>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
A client can have the relay feature enabled. The presence of
"identities" is what dictates if we are a relay or not.
Signed-off-by: David Goulet <[email protected]>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Also, allow the `ChanMgr::runtime` to be unused as client don't use it
yet but might one day.
Simpler this way than feature gating it for relay only.
Signed-off-by: David Goulet <[email protected]>
|
| | | |
| | |
| | |
| | | |
Signed-off-by: David Goulet <[email protected]>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Implement the accept_from_transport() in the ChanBuilder.
This returns a `Channel` and spawns a reactor.
Signed-off-by: David Goulet <[email protected]>
|
| | | |
| | |
| | |
| | |
| | | |
This type is needed in the tor-chanmgr crate in order to decide to
verify or not the underlying relay channel.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This requires the `TlsKeyAndCert` so be passed on the TLS acceptor
settings. We assume that `RelayIdentities` has this information.
The ChanBuilder::new() was getting a bit too convoluted and feature
gated to instead we introduce new_client() and new_relay() and remove
the need for `with_identities()`.
Because of this, the ChanMgr::new() now returns a `Result<>`.
Related to #1597
Signed-off-by: David Goulet <[email protected]>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
This makes it that we can get a server TLS acceptor provider which we
need for incoming connections.
Signed-off-by: David Goulet <[email protected]>
|
| |\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Set package.metadata.docs.rs.all-features to true for all crates
Closes #2307
See merge request tpo/core/arti!3656
|
| | | | |
| | | |
| | | |
| | | | |
Makes docs.rs also document types behind optional feature flags.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
proto: Start handling EXTEND2 in the relay reactor
Closes #1447
See merge request tpo/core/arti!3648
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
See discussion at
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3648#note_3339863
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Implements this part of the spec:
```
To tear down a circuit completely, a relay or client sends a DESTROY
cell to the adjacent nodes on that circuit, using the appropriate
direction’s circID.
```
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This doesn't need to be async, as it delegates the handling to a
background task.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
To handle EXTEND2, the relay `ForwardHandler` impl spawns a background
task, which reports back the result via the `CircEvent` MPSC stream.
This stream is polled from the `ForwardReactor` main loop, and each
`CircEvent` is passed back to `ForwardHandler::handle_event()` for
handling.
|
| | | | | |
| | | | |
| | | | |
| | | | | |
These will be used by the relay code too (for circuit extension).
|
| | | | | |
| | | | |
| | | | |
| | | | | |
Users reading the log won't necessarily know what a "forward channel" is.
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This will enable us to obtain implementation-dependent asynchronous
events (such as the outcome of an extend handshake).
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This will be needed by relays, for wrapping tor_linkspec decode errors
(which can happen if the link specifiers in the EXTEND2 cell can't be
converted to a channel target).
|
| | | | | |
| | | | |
| | | | |
| | | | | |
To match the `ChannelProvider::get_or_launch()` function signature.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We need the unique_id here, because the Forward handler will soon start
using the `ChannelProvider::get_or_launch()` to launch outbound
channels, which takes the reactor unique_id as an argument.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The channel provider is relay-specific, so I am moving it to the relay
`ForwardHandler` implementation. This enables us to get rid of some of
the feature gating from the generic reactor.
|
| | | | | |
| | | | |
| | | | |
| | | | | |
This is currently very similar to its client counterpart.
|
| | | | | |
| | | | |
| | | | |
| | | | | |
We will need the ability to build one from within tor-proto.
|
| | | | | |
| | | | |
| | | | |
| | | | | |
Needed for handling the linkspecs in an EXTEND2 cell.
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
This was leftover from back when this command was only for Sendmes.
|
| | | | | |
| | | | |
| | | | |
| | | | | |
This just removes an unnecessary `async`.
|
| | | | | | |
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
proto: Make ChannelProvider::get_or_launch() synchronous
See merge request tpo/core/arti!3647
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
This just removes an unnecessary `async`.
|
| |\ \ \ \ \ \
| |_|_|/ / /
|/| | | | |
| | | | | |
| | | | | | |
Allow to set paths in CLI arguments
See merge request tpo/core/arti!3556
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
The set of allowable characters now includes colon, dot, slash, and backslash. This makes it a bit more convenient to pass in paths.
|
| | |_|/ / /
|/| | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This commit documents the retriability of `RequestFailedError`,
following an IRC conversation with nickm.
|
| | | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: David Goulet <[email protected]>
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
With specific types now for relay channels, add a function to build the
channel and run the reactor.
That function is feature gated and thus relay only.
Signed-off-by: David Goulet <[email protected]>
|
| | | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: David Goulet <[email protected]>
|
| | | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: David Goulet <[email protected]>
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Remove the use of traits, the caller will handle the specific type.
Signed-off-by: David Goulet <[email protected]>
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
No need for these types, we've replaced them with more specific types.
Signed-off-by: David Goulet <[email protected]>
|