| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This commit lays the initial groundwork for the `tor-dirserver` crate,
a crate that shall implement functionality for dirmirros and dirauths.
For now, the current crate consists of three bare bone modules:
* lib.rs
* err.rs
* mirror.rs
All of which contain mostly boilerplate code for now
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This makes it clearer that the tunnel shutdown is triggered correctly
(i.e. that it is enough for *one* of the legs to receive the bad SWITCH
cell).
This also updates a comment that wrongly suggests that the tunnel is
only shut down if both legs get removed from the conflux set.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The test code now creates the params (which enables it to build test
cases that use various params).
Resolves a TODO.
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
Also removes all the TODOs related to #2031 (which is now addressed).
|
| | | | | |
| | | | |
| | | | |
| | | | | |
Closes #2031
|
| | | | | |
| | | | |
| | | | |
| | | | | |
This partially addresses #2031
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This will be needed for the SWITCH seqno validation logic.
Part of #2031
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
These will be used for validating SWITCH cells.
Part of #2031
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We no longer need to clone `CongestionWindowParams` now that it
implements `Copy`.
Resolves a clippy warning.
|
| |/ / / /
| | | |
| | | |
| | | |
| | | | |
These will likely always just be a collection of integers (lightweight
to copy).
|
| |\ \ \ \
| |/ / /
|/| | |
| | | |
| | | | |
Circuit padding: note when cells are sent and received
See merge request tpo/core/arti!3222
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | | |
(This was so much easier than reporting on the send side.)
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
(This is what required us to stick a padding controller handle in each
CircEnt, and what required us to accompany each queued cell with a
QueuedPaddingCellInfo. Ouch!)
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
This requires some annoying plumbing to make sure that the right
types wind up in the right places.
|
| | | | |
| | | |
| | | |
| | | | |
(I'm about to add more fields.)
|
| | | | |
| | | |
| | | |
| | | | |
Also, use it to report that we have queued normal data.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We'll need this so that we can tell the right padding machine(s)
which of them just had a queue flush.
This is not yet 100% done; the unfinished parts are marked with
XXXXs.
|
| | |/ /
|/| | |
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
tor-dircommon: Initial commit
See merge request tpo/core/arti!3205
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This commit initializes the `tor-dircommon` crate: A crate serving the
purpose to form an umbrella for the lowest common denominator primitives
found across crates implementing (parts of) the directory specification.
For now, the only such primitive is the found within the `authority`
module, which has been refactored from `tor-dirmgr` into this crate,
alongside additional getter functions due to the lack of `pub(crate)` in
this context.
In the future, we may move further primitives away from `tor-dirmgr`
into `tor-dircommon`.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
various crates: Updated MSRV TODOs for `once_cell` removal
See merge request tpo/core/arti!2953
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
- Shortened the TODO added in a42413626abb57ad5610c8a73bfdd09ac68ac472 in the
style of [this maintainer request] for consistency.
[this maintainer request]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2953#note_3197719
Signed-off-by: hashcatHitman <[email protected]>
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
- Shortened the TODO added in e9ef7bea96c2860fa81d03e8d8da2605d0661425 in the
style of [this maintainer request] for consistency.
[this maintainer request]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2953#note_3197719
Signed-off-by: hashcatHitman <[email protected]>
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
- Shortened the TODO added in cad6f9054a5ff4d16e953fd4617d3893639deeef in the
style of [this maintainer request] for consistency.
[this maintainer request]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2953#note_3197719
Signed-off-by: hashcatHitman <[email protected]>
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
tor-netdoc: parse2: Produce better error messages from bad field types
See merge request tpo/core/arti!3220
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
Worsify formatting as demanded by rustfmt.
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
With this change, this diff
> --- a/crates/tor-netdoc/src/parse2/poc/netstatus.rs
> +++ b/crates/tor-netdoc/src/parse2/poc/netstatus.rs
> @@ -24,5 +24,4 @@ pub enum NdaNetworkStatusVersion {
> /// `params` value
> #[derive(Clone, Debug, Default, Deftly)]
> -#[derive_deftly(ItemValueParseable)]
> #[non_exhaustive]
> pub struct NdiParams {
gives the errors below. So the first reported error points to the
errant field, albeit with the slightly mendacious phrasing "this
call".
Previously there was only the 2nd message. Disagnosing that requires
hunting through the document struct looking for fields of the right
type, which can be seriously awkward when there are type aliases
involved as there often are in tor-netdoc.
> error[E0277]: the trait bound `parse2::poc::netstatus::NdiParams: parse2::traits::ItemValueParseable` is not satisfied
> --> crates/tor-netdoc/src/parse2/poc/netstatus/flavoured.rs:27:10
> |
> 27 | #[derive(Deftly, Clone, Debug)]
> | ^^^^^^ the trait `parse2::traits::ItemValueParseable` is not implemented for `parse2::poc::netstatus::NdiParams`
> ...
> 55 | pub params: NdiParams,
> | ------ required by a bound introduced by this call
> |
> = help: the following other types implement trait `parse2::traits::ItemValueParseable`:
> ()
> (T0, T1)
> (T0, T1, T2)
> (T0, T1, T2, T3)
> (T0, T1, T2, T3, T4)
> (T0, T1, T2, T3, T4, T5)
> (T0, T1, T2, T3, T4, T5, T6)
> (T0, T1, T2, T3, T4, T5, T6, T7)
> and 16 others
> note: required by a bound in `parse2::multiplicity::ItemSetMethods::check_item_value_parseable`
> --> crates/tor-netdoc/src/parse2/multiplicity.rs:109:59
> |
> 109 | fn check_item_value_parseable(self) where Self::Each: ItemValueParseable {}
> | ^^^^^^^^^^^^^^^^^^ required by this bound in `ItemSetMethods::check_item_value_parseable`
>
> error[E0277]: the trait bound `parse2::poc::netstatus::NdiParams: parse2::traits::ItemValueParseable` is not satisfied
> --> crates/tor-netdoc/src/parse2/derive.rs:438:34
> |
> 438 | let item = ItemValueParseable::from_unparsed(item)?;
> | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `parse2::traits::ItemValueParseable` is not implemented for `parse2::poc::netstatus::NdiParams`
> |
> ::: crates/tor-netdoc/src/parse2/poc/netstatus/flavoured.rs:27:10
> |
> 27 | #[derive(Deftly, Clone, Debug)]
> | ------ in this derive macro expansion
> |
> = help: the following other types implement trait `parse2::traits::ItemValueParseable`:
> ()
> (T0, T1)
> (T0, T1, T2)
> (T0, T1, T2, T3)
> (T0, T1, T2, T3, T4)
> (T0, T1, T2, T3, T4, T5)
> (T0, T1, T2, T3, T4, T5, T6)
> (T0, T1, T2, T3, T4, T5, T6, T7)
> and 16 others
> = note: this error originates in the macro `derive_deftly_template_NetdocParseable` which comes from the expansion of the derive macro `Deftly` (in Nightly builds, run with -Z macro-backtrace for more info)
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
We're going to reuse this.
|
| |\ \ \ \ \ \
| |/ / / / /
|/| | | / /
| | |_|/ /
| |/| | | |
Define and implement a backend padding API, based on maybenot.
See merge request tpo/core/arti!3185
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
There are incomplete pieces, marked with "TODO circpad".
There is no integration into the circuit reactor code yet.
Part of #63
|
| |\ \ \ \
| |/ / /
|/| | |
| | | |
| | | | |
proto: Refactor channel handshake code for upcoming relay handshake
See merge request tpo/core/arti!3182
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Initiator always know if they will authenticate or not. Responder is
different as a relay doesn't know until the end of the handshake if it
is responding to a relay or a client.
Signed-off-by: David Goulet <[email protected]>
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
These are following the review of MR 3182. They are put in a single
commit because the git absorb has a large amount of conflicts on rebase
and this commit allows the reviewers to see what happened.
The base branch was rebased on main due to the need for 3184.
Signed-off-by: David Goulet <[email protected]>
|
| | | | |
| | | |
| | | |
| | | | |
Signed-off-by: David Goulet <[email protected]>
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In the spirit of avoidin code duplication.
Signed-off-by: David Goulet <[email protected]>
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
All initiator handshake will implement this in order to get access to
the helper function to receive the relay responder cells.
Relay will implement this in future commits.
Signed-off-by: David Goulet <[email protected]>
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Client and relay handhsake share a lot of code because they both
send/recv the same cells, just handles them differently for
verification.
This is the base trait for all handshake implementing basic getters and
VERSIONS cell handling.
This will allow the RelayInitiatorHandshake and RelayResponderHandshake
to use this common code.
See, traits are fun. Win-win-win.
Signed-off-by: David Goulet <[email protected]>
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The ClientInitiatorHandshake holds a "tls" sink but the very first thing
we do is transform it to a ChannelFrame<T>. Instead, just store the
frame to the object directly so we can then use a channel frame
uniformily accross its lifetime.
This will be useful for the future refactoring paving the way for relay
channel authentication.
Signed-off-by: David Goulet <[email protected]>
|