| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
|
| |
|
|
|
| |
For all mutable shared state, we ought to know which part of the
program sets it, which part of the program reads it, and why.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
No actual bug here, just technical debt:
For `SendWindow`s, our tag system already ensured that we rejected
any SENDME that didn't correspond to an appropriate drain. Still,
it doesn't hurt to check.
For `RecvWindow`s, it would have been a protocol violation if we
ever did this, but it makes sense to make it an internal error if we
try.
Part of #1383.
|
| | |
|
| | |
|
| |\
| |
| |
| |
| |
| |
| | |
add_warning/CI: New strategy to avoid "unexpected-cfgs" warning
Closes #1395
See merge request tpo/core/arti!2129
|
| | |
| |
| |
| | |
This commit is automatically generated.
|
| | | |
|
| | |
| |
| |
| |
| | |
It was a bit misleading since it doesn't cover all processing for the
hop.
|
| | |
| |
| |
| |
| |
| |
| | |
Get rid of an `if` block by changing the guarded loop to check its
conditions at the beginning of the loop instead of the end. This
is a slight behavior change, since previously channel readiness
wasn't checked before the first iteration of the loop.
|
| |/
|
|
|
|
| |
This should be a pure refactor. We remove a large if block and
modify the first loop inside it to check whether the channel is ready
before each attempt to send a message instead of after.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for p in `cat ../u`; do cargo set-version --locked --offline -p $p; done
where u contains
tor-basic-utils
tor-async-utils
tor-error
tor-config
tor-units
tor-geoip
tor-rtcompat
tor-rtmock
tor-log-ratelim
tor-rpcbase
tor-memquota
tor-llcrypto
tor-protover
tor-bytes
tor-hscrypto
tor-socksproto
tor-checkable
tor-cert
tor-linkspec
tor-cell
tor-proto
tor-netdoc
tor-consdiff
tor-netdir
tor-relay-selection
tor-persist
tor-chanmgr
tor-ptmgr
tor-guardmgr
tor-circmgr
tor-dirclient
tor-dirmgr
tor-keymgr
tor-hsclient
tor-hsservice
tor-hsrproxy
arti-client
arti-rpcserver
arti-hyper
|
| |
|
|
|
|
|
|
| |
There are some tricky bits here that implicitly assume particular
behavior in other bits for correctness. Document these requirements and
assumptions.
Fixes arti#1373
|
| | |
|
| |
|
|
|
|
| |
The old code produced a warning from clippy nightly; we may as well
update to use the new associated consts. (They've been there since
Rust 1.4x.)
|
| | |
|
| |\
| |
| |
| |
| |
| |
| | |
streammap: Use an internal counted_hashmap to simplify invariant checking
Closes #1344
See merge request tpo/core/arti!2058
|
| | | |
|
| | |
| |
| |
| | |
This is always Send+Sync, and invariant with P.
|
| | |
| |
| |
| |
| | |
(We're letting the "unchecked" suffix of this function be enough
to indicate that it's risky to use.)
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Instead of making `streammap.rs` responsible for keeping track of a
count field, this lowers that functionality into a lower-level
CountedHashMap type. Said type has a little more functionality than
we need, to sketch out how we'd want to develop it moving forward if
we find that it's useful elsewhere.
Closes #1344.
|
| | |
| |
| |
| | |
Edited-by: Nick Mathewson <[email protected]>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Done with:
```
CRATES="
tor-basic-utils
tor-async-utils
tor-error
tor-config
tor-events
tor-units
tor-geoip
tor-rtcompat
tor-rtmock
tor-log-ratelim
tor-rpcbase
tor-llcrypto
tor-protover
tor-bytes
tor-hscrypto
tor-hspow
tor-socksproto
tor-checkable
tor-cert
tor-linkspec
tor-cell
tor-proto
tor-netdoc
tor-consdiff
tor-netdir
tor-relay-selection
tor-congestion
tor-persist
tor-chanmgr
tor-ptmgr
tor-guardmgr
tor-circmgr
tor-dirclient
tor-dirmgr
tor-keymgr
tor-hsclient
tor-hsservice
tor-hsrproxy
arti-client
arti-rpcserver
arti-config
arti-hyper
arti-bench
arti-testing
"
for crate in $CRATES; do
cargo set-version -p "$crate" 0.17.0
done
```
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These have all had backward-compatible changes.
Generated with:
```
cargo set-version --bump patch -p fs-mistrust
cargo set-version --bump patch -p test-temp-dir
cargo set-version --bump patch -p fslock-guard
cargo set-version --bump patch -p hashx
cargo set-version --bump patch -p equix
cargo set-version --bump patch -p caret
cargo set-version --bump patch -p safelog
cargo set-version --bump patch -p retry-error
```
|
| | |
|
| |
|
|
|
|
|
|
| |
With this patch, it holds only a reference to `&reactor.hops`,
which greatly simplifies the reactor code's fight with the
borrow checker.
I've left some TODO comments about future directions here.
|
| |
|
|
| |
(Doing this to prevent us having two structs with the same name.)
|
| |
|
|
|
|
|
| |
Based on designs in #1124.
Note that there is a TODO here about a hack I had to do to appease
the borrow checker.
|
| |
|
|
|
| |
We'll use this as an argument for the callback that checks stream
requests to make sure they're permitted.
|
| | |
|
| |
|
|
|
|
| |
We want to keep an accurate count of the number of open streams, so
we have to stop exposing `&mut StreamEnt` outside of the streammap
module.
|
| |
|
|
|
|
|
| |
This is the first part of a refactoring that will let us keep code
from the outside of `streammap` from changing a stream from one
state to another. And we need to do _that_ so that StreamMap can
count how many open streams it has.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
The key insights here are:
- That relay cell format and crypto protocols aren't orthogonal:
Once we have GCO, it will require V1.
- That we only need the actual functions for layer construction to
be generic; we don't need to proliferate generic parameters
everywhere.
- That the circuit::handshake module already does most of what we
want.
|
| |
|
|
|
|
| |
This lets us paramaterize types and functions by a particular relay cell
format. We use this e.g. to statically parameterize the cell crypto
functions, thereby removing some run-time branching in the hot path.
|
| | |
|
| | |
|
| |
|
|
|
| |
Different formats will use different ranges for the `recognized` and
`digest` fields.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
Prop 340:
https://spec.torproject.org/proposals/340-packed-and-fragmented.html
This updates the decoding API to support multiple versions of the relay
cell encoding, including the new encoding proposed in prop340 that
supports relay message packing and fragmentation.
This commit doesn't actually add support for that new encoding yet.
|
| |
|
|
|
| |
For consistency with the terminology proposed in
https://gitlab.torproject.org/tpo/core/torspec/-/issues/253
|
| | |
|
| | |
|
| |\
| |
| |
| |
| | |
Remove semver.md files from arti 1.2.0 release.
See merge request tpo/core/arti!2022
|