| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
| |
This gets it as far as the outbound circuit->channel mpsc queue creation.
Also, we provide an accessor for it.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
Making a channel is going to involve making a memquota Participant,
which can fail.
|
| | |
|
| | |
|
| |\
| |
| |
| |
| | |
Implement tor_memquota:HasMemory cost for a lot of types
See merge request tpo/core/arti!2459
|
| | | |
|
| |\ \
| |/
|/|
| |
| | |
tor-proto: SometimesUnboundedSink: provide as_inner accessor
See merge request tpo/core/arti!2483
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | | |
tor-proto: Introduce type aliases for some queues
See merge request tpo/core/arti!2484
|
| | | |
| | |
| | |
| | | |
This will make it a little easier to change the type later.
|
| | | | |
|
| | |/
| |
| |
| | |
This will make it easier to change their types.
|
| |\ \
| |/
|/|
| |
| | |
Provide and implement SinkCloseChannel
See merge request tpo/core/arti!2485
|
| | | |
|
| | |
| |
| |
| | |
This prepares us to change the types of these queues.
|
| | | |
|
| |/
|
|
|
|
|
| |
The memquota arranagements are going to use this.
We *don't* apply this to Channel (or to other types that aren't
already generic over SleepProvider).
|
| |\
| |
| |
| |
| | |
Suppress some dead code warnings
See merge request tpo/core/arti!2463
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixes
cargo check -p tor-chanmgr --all-features --all-targets
which otherwise prints
warning: method `reply` is never used
--> crates/tor-proto/src/crypto/handshake.rs:73:8
|
65 | pub(crate) trait AuxDataReply<H>
| ------------ method in this trait
...
73 | fn reply(&mut self, msg: &H::ClientAuxData) -> Option<H::ServerAuxData>;
| ^^^^^
|
= note: `#[warn(dead_code)]` on by default
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Per our policy, every one of these gets a minor bump.
Generated with:
```
for crate in $(./maint/list_crates | grep '^\(tor\|arti\)-' ); do
cargo set-version --bump minor -p $crate;
done
```
(Note the use of `-` at the end end of the grep pattern to prevent
matching the `arti` crate.)
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These crates are not in the tor/arti namespace,
but we have given them MSRV bumps:
```
oneshot-fused-workaround
slotmap-careful
fslock-guard
hashx
equix
caret
fs-mistrust
safelog
test-temp-dir
retry-error
```
We are counting this as a breaking change.
Since all of these crates are at 0.x.x,
we have indicated the breaking change with a minor version bump.
This commit was generated with the following script:
```
BUMPS="
oneshot-fused-workaround
slotmap-careful
fslock-guard
hashx
equix
caret
fs-mistrust
safelog
test-temp-dir
retry-error
"
for crate in $BUMPS; do
cargo set-version --bump minor -p $crate;
done
```
|
| |\
| |
| |
| |
| | |
Upgrade MSRV to 1.77 , and rusqlite to 0.32.1
See merge request tpo/core/arti!2451
|
| | |
| |
| |
| | |
This will allow us to upgrade to the latest version of rusqlite.
|
| |/
|
|
|
|
| |
The `derive_more` crate broke backward compatibility with this version,
so this change involved quite a few manual fixups.
With luck, they'll keep compatibility for some while in the future.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We introduce the new constructor and call it at the error generation
sites. But there is still not yet any functional change.
Change the type of Truncated's field to be Sensitive.
The original reason for not doing this no longer applies, since we
don't generally want to open-code construction of this variant.
Conveniently, changing the type means we get to find all the sites
where one *is* constructed and adjust them.
In reader.rs and tor-proto we can just call incomplete_error.
In tor-cell, there's a call site where we previously provided an
underestimate, and where the Reader isn't available. We adjust that
ad-hoc but this is fine because the error variant will
change. (relaycell is using a Reader from from_slice.)
|
| | |
|
| |
|
|
| |
This will allow us to fix #1592, but it doesn't do so yet.
|
| |
|
|
|
|
|
|
|
|
| |
Done using:
```
for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do
cargo set-version -p $crate 0.22.0
done
```
|
| |
|
|
| |
This is the first time we're publishing this, so let's start at 0.1.0.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Having this in the `tor-async-utils` crate prevents us from doing both
of the following without introducing a circular dependency:
* using it in `tor-rtmock` (which we currently do, particularly in
tests).
* using `tor-rtmock` to test things in `tor-async-utils`. We don't do
this yet, but it is generally sensible to do so. In particular we
want to move the `stream_peak` module there, which is currently tested
with `tor-rtmock`.
Moving this into its own crate avoids this circular dependency.
|
| | |
|
| |
|
|
|
| |
There is now (sendme-style) flow control, and some fairness
(via round robin scheduling of streams).
|
| |
|
|
|
|
| |
There is a mutex for some of the "mutable state", but the reactor only
needs to lock it when adding a hop. It's not needed "to process a cell"
or when streams send. Probably not worth calling out here.
|
| | |
|
| |
|
|
|
| |
From
<https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2340#note_3062531>
|
| |
|
|
|
| |
In particular, clarify that stream-flow-control msgs don't get blocked
on circuit congestion control.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Update `StreamPollSet` to require that its streams implement
`PeekableStream`, and to not do its own buffering of values read from
the stream.
This avoids an extra layer of buffering for streams that already
buffer a value, and makes the interior state a little simpler and more
robust.
It does have a downside of making the API a little less convenient,
since the caller must do its own `poll_peek` call if it wants a
reference to the item.
* Update `StreamMap` to implement `PeekableStream` for
`OpenStreamEntStream`, as it must to satisfy the updated
`StreamPollSet` API. We have to somewhat constrain the
`poll_ready_streams_iter` API to no longer return both a reference to
the stream and the message. I don't see a way to return both
while satisfying the borrow checker. Luckily we don't really need both
anymore.
* Update the Circuit reactor to handle the updated
`StreamMap::poll_ready_streams_iter` API.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
As clippy points out otherwise, this no longer actually loops.
Since the iterator already guarantees that the messages it produces
are ready to send with respect to flow control, and we've already
validated that we can send with respect to the circuit window,
the loop, we can always handle the first item from the iterator.
i.e. this changes a `while let` to an `if let`.
|