| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
| |
| |
| |
| |
| |
| |
| | |
It was decided that the comparison chain was actually preferrable for
readability. So instead, we're just `allow`ing it until it stops being
a problem.
Signed-off-by: hashcatHitman <[email protected]>
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There was a comparison chain in
`tor_proto::util::poll_all::test::ResolveAfter::poll` which was causing
a clippy warning. The lint in question, `clippy::comparison_chain`, was
a `clippy::style` lint in 1.85.1 and got moved to `clippy::pedantic` in
1.87.0 (see [rust-clippy!14219]).
Since some of us (like me) develop on MSRV, I'm fixing this lint now.
Gabi didn't have any strong opinions on whether I did it like this or
with an `allow` attribute, so I decided this was better since it means
we don't have to come back later just to remove the `allow`.
It should be noted that using a match like this can sometimes be a
performance regression (see [rust-clippy#5354] and [rust-clippy!6390]).
I would expect in this case the effect will be very little, if any, but
if tests in `tor_proto::util::poll_all::test` start taking much longer
and having an impact on CI or something, this could be why.
[rust-clippy!14219]: https://github.com/rust-lang/rust-clippy/pull/14219
[rust-clippy#5354]: https://github.com/rust-lang/rust-clippy/issues/5354
[rust-clippy!6390]: https://github.com/rust-lang/rust-clippy/pull/6390
Signed-off-by: hashcatHitman <[email protected]>
|
| |\
| |
| |
| |
| | |
proto: Move flow_ctrl module under stream.
See merge request tpo/core/arti!3335
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
`StreamFlowCtrl` is no longer accessible via `tor_proto::client`, so I
had to update one of the (doc) imports with its new path
Also, I had to change a couple of imports to use `DataWriter` and
`DataStream` from `crate::client::stream` instead of
`crate::client::stream::data`, because the latter is not visible from
`flow_ctrl` anymore.
|
| | | |
|
| | |
| |
| |
| | |
This will be used by exits too, so I am moving it out of `client`.
|
| | |
| |
| |
| |
| | |
This will house the implementation-agnostic stream types and
functionality.
|
| |/
|
|
|
|
|
| |
Everybody should use create_firsthop() and extend(), and let
tor-proto decide which handshake is best.
Closes #1990.
|
| |\
| |
| |
| |
| | |
Apply maybenot padding to channels
See merge request tpo/core/arti!3314
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
With this commit we now actually generate padding when we're told to.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
We'll need it to tell the channel padder when padding is queued.
|
| | | |
|
| |/
|
|
|
|
|
|
|
|
| |
I don't think the previous comment is correct. The main flow control
checks are about receiving SENDME/XON/XOFFs, and ensuring that we don't
receive too many of them. This all happens in the reactor.
In theory the stream should be checking that we don't receive too many
DATA messages for how many stream SENDMEs we've sent. But this is broken
due to arti#2100. We do check this in the halfstream code though.
|
| |\
| |
| |
| |
| |
| |
| | |
padding: Remove post-queue blocker.
Closes #2190
See merge request tpo/core/arti!3293
|
| | |
| |
| |
| |
| |
| |
| | |
We no longer want to _ever_ block non-DATA cells, per discussion
in circuit-padding.md.
Closes #2190.
|
| | | |
|
| |\ \
| |/
|/|
| |
| |
| |
| | |
Remove check_doc_features and doc_auto_cfg.
Closes #1514
See merge request tpo/core/arti!3294
|
| | |
| |
| |
| | |
This feature has been removed from nightly, in favor of doc_cfg.
|
| |\ \
| |/
|/|
| |
| | |
Sort output events for next_circ_action.
See merge request tpo/core/arti!3292
|
| | |
| |
| |
| |
| |
| |
| |
| | |
This sort makes it so that that blocking and unblocking are always
ordered in a sensible way with respect to sending data. This might
help simplify padding machines a bit.
Prerequisite for #2190
|
| |\ \
| |/
|/|
| |
| | |
Add experimental OpenTelemetry support
See merge request tpo/core/arti!3239
|
| | |
| |
| |
| |
| | |
I've added these in places that are useful for the debugging that I've
been doing.
|
| | | |
|
| | |
| |
| |
| |
| | |
Also derives `CIRC_ACTION_COUNT` from the two other constants instead of
hard-coding the value.
|
| | |
| |
| |
| |
| | |
Besides, it's better if we use the same number for the expected number
of legs as we do in the conflux set impl.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This rewrites `next_circ_action()` yet again, using two layers of
`PollAll`:
* the inner layer drives an individual circuit leg. Each circuit
has a `PollAll` that drives its futures
* the outer layer drives the inner `PollAll`s belonging to the
circuits that form the tunnel
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| | |
We don't really need to return a `HopNum` anymore (because we work out
the join point `HopNum` unconditionally in `next_circ_action`).
|
| | |
| |
| |
| |
| |
| | |
If we poll the ready streams on the join point more than once per
reactor loop, we risk sending more than one DATA cell (which is not
good, because cc might block after the first cell is sent).
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This removes our usage of `FuturesUnordered` in
`ConfluxSet::next_circ_action()` to address two issues:
* a fairness issue, where the futures driven by `FuturesUnordered`
could be starved under some circumstances (#2180)
* a logic error, where we'd explicitly avoid reading from the input
channel if the outgoing `chan_sender` channel was blocked (#2179)
Note that the fixing the latter will cause the reactor to buffer more
into the unbounded `chan_sender` sink, but that *should* be okay,
because no input message should be able cause us to queue cells
excessively.
Closes #2179, #2180
|
| | |
| |
| |
| |
| | |
We will soon need to access this directly (rather than via a method on
`Circuit`) to work around borrow checker limitations.
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| | |
Part of #2180
Note: the code is intentionaly left misindented to make reviewing a
bit easier. A future commit will fix the indentation.
|
| | | |
|
| | | |
|
| |/
|
|
|
|
| |
This simplifies the calling code, which will, in turn, make it easier
for us to simplify the logic in ConfluxSet::next_circ_action() and
abolish the questionable use of FuturesUnordered.
|
| |\
| |
| |
| |
| |
| |
| | |
proto: Remove half-streams when they expire.
Closes #264
See merge request tpo/core/arti!3267
|
| | |
| |
| |
| | |
I want to tackle this separately, as part of #2003
|
| | | |
|