| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Part of #1849.
Note that these functions are distributed across crates,
so that if (in the future) we stop doing API breaks
with every release, we will get the right outputs.
Note also that these functions build the list of protocols
out of specific symbolic features, rather than numbers:
this makes it easier to avoid errors about "which feature was
Relay=4 again", and easier to avoid accidentally referring to a
protocol that doesn't exist, like "Consensus" (should be "Cons")
or "HsDir" (case is wrong).
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Since v1 cells have a longer tag, they can fit less data into a
single cell. Ah well, that's the cost of improved security.
The code in data.rs is a little wonky, in that it currently requires
its buffer to be exactly the maximum size for a data cell. We have
a TODO about fixing that in the future, but for now I've moved it to
use a boxed slice rather than a boxed array.
Part of #1944.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
This will let us actually _send_ messages in the right format.
This approach is not ideal for packed/fragmented messages;
they will need a separate RelayCellEncoder.
part of #1944.
|
| |
|
|
| |
(Also note a couple of other CGO-related issues)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
In `send_relay_cell()` in `tunnel/reactor/circuit.rs`,
replace an unconditional array access (which would cause a panic if
`hop_num` were out-of-range) with a checked `get_mut()` call.
It's not totally clear whether this can happen in practice,
but in either case, an error is probably better than a panic.
All of our other lookups in this vector are either checked,
or more obviously infallible.
Closes #1950.
|
| |
|
|
|
| |
This comes up on OSX; I hadn't seen it before, so I assume it is new
with Rust 1.86.
|
| |
|
|
|
| |
This won't involve an extra dep, because we already use `itertools`
throughout the codebase.
|
| |
|
|
|
| |
For service introduction circuits, we have `IptMsgHandler`, so we've
already worked something out :)
|
| | |
|
| |
|
|
| |
ntor v3 is now always enabled.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
Done using:
```
for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do
cargo set-version -p $crate 0.29.0
done
```
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The non-{arti-,tor-} crates are:
```
./maint/list_crates | rg -v '^(tor|arti)'
oneshot-fused-workaround
slotmap-careful
test-temp-dir
fslock-guard
hashx
equix
caret
fs-mistrust
safelog
retry-error
```
We split them in the following categories:
* crates with no changes (no version bumps):
```
maint/changed_crates -v "arti-v$LAST_VERSION" 2>&1 >/dev/null | grep -i "no change" | grep -v '\(tor\|arti\)-'
oneshot-fused-workaround: No change.
slotmap-careful: No change.
fslock-guard: No change.
caret: No change.
retry-error: No change.
```
* crates that only have non-functional changes (bump the patch version):
- test-temp-dir
- equix
- fs-mistrust
- safelog
* crates where APIs were broken (bump minor):
- hashx (`RngCore` impl for `SipRand`)
The bumps from this commit were created using this script:
```
PATCH="
test-temp-dir
equix
fs-mistrust
safelog
"
for crate in $PATCH; do
cargo set-version --bump patch -p $crate;
done
MINOR="
hashx
"
for crate in $MINOR; do
cargo set-version --bump minor -p $crate;
done
```
|
| | |
|
| | |
|
| |\
| |
| |
| |
| | |
tor-proto: simplify `ConfluxSet::circuit_action`
See merge request tpo/core/arti!2884
|
| | |
| |
| |
| | |
I also added an additional non-doc TODO comment.
|
| | |
| |
| |
| | |
As far as I can tell, the extra drop handling code isn't needed anymore.
|
| | |
| |
| |
| |
| | |
I think the return type is simplified enough now that we don't need
this.
|
| | |
| |
| |
| |
| |
| | |
Now returns only the first item of the stream rather than the stream
itself. We use this in `Reactor::run_once`, which means we only ever use
the first item anyways.
|
| | | |
|
| |\ \
| |/
|/|
| |
| | |
tor-proto: Replace RunOnceCmdInner with CircuitCmd in Circuit impl
See merge request tpo/core/arti!2881
|
| | | |
|
| | |
| |
| |
| | |
Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2881#note_3178624
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| | |
There is no `Multiple` counterpart in `CircuitAction`, so the `Single`
variant name doesn't make much sense.
|
| | |
| |
| |
| |
| | |
The `LegId` is now added by the caller, when converting the resulting
`CircuitCmd`s to `RunOnceCmdInner`.
|
| | | |
|
| | |
| |
| |
| |
| | |
`CircuitCmd`s are a subset of `RunOnceCmdInner`, and don't have a
`LegId`.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A `CircuitCmd`, unlike `RunOnceCmdInner`, doesn't know anything about
`LegId`s. The user of the `CircuitCmd`s is supposed to know the `LegId`
of the circuit the `CircuitCmd` came from. This is necessary because
circuits don't know (and can't know) their own `LegId`.
The various `Circuit` operations (e.g. `handle_cell`) will soon be
updated to return `CircuitCmd` instead of `RunOnceCmdInner` (because the
`RunOnceCmdInner` variants will soon be updated to also have an
associated `LegId`, and `Circuit`s don't have access to their `LegId`s).
The calling code, which *does* know the `LegId`, will then map
`CircuitCmd`s to `RunOnceCmdInner`.
|
| | |
| |
| |
| |
| |
| |
| | |
This tells the reactor which circuit leg the input message originated
from.
Addresses a TODO.
|
| | | |
|
| | | |
|
| | | |
|
| |/ |
|
| |
|
|
|
|
|
| |
The constructor for rand::distr::Uniform is now fallible,
so it makes sense to bubble up its restrictions.
This is a breaking change.
|
| |
|
|
| |
- The Rng::gen() functions have been renamed to Rng::random().
|
| |
|
|
|
|
| |
- `rand::thread_rng()` has been deprecated and renamed to `rand::rng()`
(I missed these cases because they were from prelude::*)
|
| |
|
|
| |
- `Uniform::new_inclusive` is now fallible.
|
| |
|
|
| |
- `try_fill_bytes()` is no longer a member of RngCore.
|
| |
|
|
| |
- The rand::distributions module has been renamed to rand::distr
|
| |
|
|
| |
- `rand::thread_rng()` has been deprecated and renamed to `rand::rng()`
|
| |
|
|
|
|
| |
(Per discussion at #1774, we think the changes are acceptable.)
This commit won't compile on its own; subsequent commits will fix it.
|
| | |
|
| | |
|