| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
| |
Fixes
cargo clippy -p tor-hsclient --all-features --all-targets
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These are:
```
hashx
equix
tor-async-utils
tor-error
tor-config
tor-rtmock
tor-llcrypto
tor-bytes
tor-hscrypto
tor-hspow
tor-cert
tor-linkspec
tor-cell
tor-proto
tor-netdoc
tor-netdir
tor-chanmgr
tor-guardmgr
tor-dirmgr
tor-keymgr
tor-hsclient
tor-hsservice
arti-client
arti
```
|
| |\
| |
| |
| |
| | |
Upgrade a couple of dependencies for today's release.
See merge request tpo/core/arti!1566
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| | |
This removes the `Display` impl of `HopNum` and replaces its usage with
`HopNum::display`.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
This function can be used to display a more user-friendly representation
of a `HopNum`. This will print hop numbers as 1-indexed values: #1,
#2, etc..
We will soon remove HopNum's Display implementation in favour of
`.display()`.
|
| |/
|
|
|
|
|
|
|
|
| |
This makes `HopNum`s display as 1-indexed values. This will make error
messages more intuitive, because when talking about an N-hop circuit, we
generally speak in terms of hops 1..N (rather than 0..N-1).
Internally, our `HopNum` indices are still 0-based.
Closes #996
|
| |
|
|
|
|
|
|
| |
A warning is getting in my way when I run
cargo clippy -p tor-hsservice --all-features
See also
https://gitlab.torproject.org/tpo/core/arti/-/issues/1006#note_2932088
|
| | |
|
| | |
|
| | |
|
| |\
| |
| |
| |
| |
| |
| | |
proto: new ClientCirc::send_raw_msg function.
Closes #1010
See merge request tpo/core/arti!1525
|
| | | |
|
| | |
| |
| |
| | |
Closes #1010.
|
| |/
|
|
|
| |
Nightly rustdoc now warns if you have a link that isn't necessary,
and if you have a link that might refer to two different things.
|
| |
|
|
|
|
|
| |
This adds a test that checks if the reactor is shut down if it receives
an incoming stream request from an unexpected hop.
Part of #1009
|
| |
|
|
|
|
|
|
|
|
| |
For consistency with the other `ClientCirc` APIs,
`ClientCirc::allow_stream_requests` now takes a `HopNum` argument. Upon
receiving an incoming stream request, the reactor now checks if the
request came from the hop specified in `allow_stream_requests` (and if
it came from a different hop, the circuit is closed).
Part of #1009
|
| |\
| |
| |
| |
| | |
test: add a test for missing NETINFO cells
See merge request tpo/core/arti!1501
|
| | |
| |
| |
| |
| |
| | |
This commit adds a unit test to the `tor_proto::handshake` module,
which tests the behavior when no NETINFO cell is present within a
channel.
|
| |\ \
| | |
| | |
| | |
| | | |
Resolve all warnings that appear from `maint/every-crate`
See merge request tpo/core/arti!1507
|
| | | | |
|
| |/ / |
|
| |\ \
| | |
| | |
| | |
| | | |
tor-proto: remove unused import
See merge request tpo/core/arti!1493
|
| | |/
| |
| |
| |
| | |
This commit removes an unused import within the test module of the
`tor_proto::circuit` module.
|
| | | |
|
| | |
| |
| |
| | |
Closes #993
|
| | | |
|
| |/
|
|
|
|
|
|
| |
These values are computed as part of the circuit extension
handshake, and are used as MAC keys to bind `ESTABLISH_INTRO`
messages to a particular circuit so that they can't be replayed.
Part of #993.
|
| |
|
|
| |
These functions only ever return `Bug` errors.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
This commit introduces an `IncomingStreamState` enum, which indicates
whether the stream was accepted, discarded, or rejected, or if it is
still pending. The `is_rejected`/`is_accepted` boolean flags are no
longer needed.
Without this change, we'd need to introduce yet another boolean flag
when we implement `discard()` (for the "discarded" state).
|
| |\
| |
| |
| |
| | |
tor-proto: Replace IncomingStreamMsg with IncomingStreamRequest.
See merge request tpo/core/arti!1477
|
| | |
| |
| |
| |
| |
| |
| |
| | |
The two enums essentially serve the same purpose, so we don't
need both of them.
This also addresses the TODO that says we should return an error if
`accept_data` is called for a RESOLVE stream.
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
blocking.
Instead of having 2 version of `StreamTarget::close` (a blocking one and
a nonblocking one), we can just return the `oneshot::Receiver` for
receiving the reactor's response and let the caller of
`StreamTarget::close` decide whether to block.
This allows us to reduce some code duplication in the `IncomingStream`
implementation.
|
| |/ |
|
| | |
|
| |
|
|
|
| |
The behaviour of `IncomingStream::drop` is going to depend on whether
the stream was accepted or not.
|
| |
|
|
|
|
|
| |
reactor to respond.
This will be used for implementing `Drop` for `IncomingStream` (it
needs to "reject" the stream on drop).
|
| |
|
|
|
|
|
|
| |
This is a follow-up from !1451.
This commit solves a `TODO HSS` introduced when `DataCmdChecker` got an
additional constructor (`new_connected`) for creating "pre-connected"
streams. See f6745d31 for more details.
|
| |\
| |
| |
| |
| |
| |
| | |
tor-proto: allow_stream_requests now waits until the control message is received.
Closes #994
See merge request tpo/core/arti!1474
|
| | |
| |
| |
| |
| |
| |
| |
| | |
init/close.
Propagating the error means will cause the reactor to shut down (there's
not much the control message sender can do about it, so there's no point
in sending it the error).
|
| | |
| |
| |
| |
| |
| |
| |
| | |
As a result, by the time the `reject` future resolves, the stream has
been removed from the reactor's stream map and the corresponding END
cell has been sent.
Fixes #998.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
received.
`ClientCirc::allow_stream_requests` is now `async` and waits until the
`AwaitIncomingStream` control message is processed by the reactor.
This guarantees that by the time the `allow_stream_requests` future
resolves, the reactor is ready to process BEGIN/BEGIN_DIR/RESOLVE cells.
Previously, the client tasks from allow_stream_requests tests had to
sleep before sending the BEGIN cell to give the reactor time to process
the `AwaitIncomingStream` control message (which tells the reactor to
expect incoming BEGIN/BEGIN_DIR/RESOLVE cells on the circuit).
Fixes #994
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The implementation here is perhaps excessively simple: we put
a `oneshot::Sender` in the `Reactor` object, and a
`Shared<oneshot::Receiver>` in the circuit or channel. When
the reactor is dropped, any copy of the `Shared<Receiver>` will
yield `Err(Cancelled)`.
I'm marking these methods as experimental because I'm not sure I've
thought of all the implications here, and we might want to change
things around.
Down the road, these methods might want to yield a `Result<>`
indicating why the reactor was shut down.
This feature was inspired by a request from Saksham Mittal, and a
felt need while working on !1472.
|
| |\
| |
| |
| |
| |
| |
| | |
add_warning: Change missing_docs,unreachable_pub to warn
Closes #951
See merge request tpo/core/arti!1470
|