| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |\ \ \
| |/ /
|/| |
| | |
| | | |
tor-cell: Assert data length in Data cells
See merge request tpo/core/arti!800
|
| | | |
| | |
| | |
| | |
| | |
| | | |
This commit adds a `debug_assert!` macro into the `new_unchecked()`
function of the Data cell. Beside this, it also fixes a misleading
comment regarding that limit.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
Misc minor changes to tor-dirclient, for descriptor downloading
See merge request tpo/core/arti!810
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | | |
This gives callers a nice error type with source and everything.
|
| | | | |
| | | |
| | | |
| | | | |
This will be used for bridges' descriptors.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
tor-ptmgr/ipc: First cut of pluggable transport spawning
Closes #394
See merge request tpo/core/arti!779
|
| |/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The new `ipc` module inside `tor-ptmgr` implements the Pluggable
Transport Specification version 1 (`pt-spec.txt`,
https://gitlab.torproject.org/tpo/core/torspec/-/blob/main/pt-spec.txt).
This enables module users to spawn pluggable transport binaries inside a
child process asynchronously, and receive structured information about
how to connect to the transports provided by said binaries.
Internally, this is structured as a pure set of serialisers and
deserialisers for the protocol in the specification (in the form of
environment variables, and the PT's stdout), a wrapper to run the PT
binary and enable accessing its output asynchronously, and a user-facing
wrapper that handles ensuring all the requested transports launched
properly.
The included `run-pt` example is an exceedingly minimal wrapper program
that was useful in testing. More tests can and should be added in a
further MR.
closes arti#394; part of arti#69
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
tor-bytes: Avoid redundant allocation
See merge request tpo/core/arti!806
|
| | | |_|/
| |/| |
| | | |
| | | | |
See c489e1d9118edd842f80b76a636037524a45ee45
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
Update heap and download size metrics for October
See merge request tpo/core/arti!809
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | |/ /
| |/| |
| | | |
| | | |
| | | | |
This patch updates the heap_and_download_size.md file with numbers from
October 2022 for our Sponsor 101 deliverables.
|
| |\ \ \ \
| |/ / /
|/| | |
| | | |
| | | | |
FlagEvent trait: Implement using macros
See merge request tpo/core/arti!804
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The explicit list of variant names, that needs to be kept in sync, and
is a test failure semver break hazard, is now gone.
All the necessary code is now generated automatically, and cannot be
wrong.
I want this because I find myself wanting to add a second
implementation of FlagEvent, for another type.
|
| |\ \ \ \
| |_|/ /
|/| | |
| | | |
| | | | |
BridgeDescEvent: Change the sole variant to SomethingChanged
See merge request tpo/core/arti!807
|
| |/ / /
| | |
| | |
| | | |
And explain what this all means.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
tor-cell: Consistent and secure conversion to u16
See merge request tpo/core/arti!803
|
| | | |/
| |/|
| | |
| | |
| | |
| | |
| | | |
This commit improves the overflow protection of one call to
Vec::write_u16(), by replacing the cast conversion from self.sig.len()
with a call to u16::try_from(), like it is already done in the rest of
the accompanying function.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
meta: Update license year range to 2022
See merge request tpo/core/arti!799
|
| | |/ / |
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
tor-cell: Rename for_client and for_relay
See merge request tpo/core/arti!793
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This commit renames the for_client and for_relay functions to
from_client and from_relay respectively, in order to indicate their
origin, as the term "for" is more likely to indicate a destination,
which is not true in that situation.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
Add semver.md in tor-cell for MR#793
See merge request tpo/core/arti!798
|
| | | |/ /
| |/| | |
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
tor-cell: Fix typos in msg.rs
See merge request tpo/core/arti!802
|
| | |/ / / |
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
tor-cell: Add comment explaing Data::MAXLEN
See merge request tpo/core/arti!801
|
| | |/ / /
| | | |
| | | |
| | | |
| | | | |
This commit adds a comment explaining composition of the magic number
"11" found in the assignment of the Data::MAXLEN constant.
|
| |\ \ \ \
| |_|_|/
|/| | |
| | | |
| | | | |
tor-error: Prepare for more misc errors
See merge request tpo/core/arti!805
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
1. Import it, as we do elsewhere, and use that import.
2. Use thiserror to generate the Display impl, rather than
derive_more, as we do for errors elsewhere.
(tor_error still needs derive_more::Display for ErrorKind.)
|
| |/ / /
| | |
| | |
| | |
| | | |
This has no external API change, but makes space for other
miscellaneous errors to arrive later.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
Allow GuardMgr to expose bridges as guards (part 1)
See merge request tpo/core/arti!785
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Previously we could only use Relay for this case, which won't work
any more: a Bridge is not a `tor_netdir::Relay`. Instead we allow
the GuardMgr to give us something that knows how to convert itself
into an OwnedCircTarget.
This change required a far amount of follow-on revisions and
refactoring, but it should all be internal to the path-building
logic.
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
Previously this was a private method only visible from Relay, but now
we can use it on any two HasAddrs objects.
|
| | | | |
| | | |
| | | |
| | | | |
The singleton variation here is almost never what we want.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Now it contains either an `OwnedChanTarget` or an `OwnedCircTarget`,
which will let `GuardMgr` return bridges that can be used to make
circuits.
As part of this change, it was necessary to revise some
address-modification functions that applied to filters and
`OwnedChanTarget`. Now they do the smart thing, and remove only the
address that are in the `ChanMethod`. This means that the addresses
from HasAddrs are still accurate about which addresses the relay
"has".
|
| | | | |
| | | |
| | | |
| | | | |
This resolves an old TODO, and will simplify our work a little.
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The most important part of this commit is to make sure that each
`FirstHopId` includes the `GuardSetSelector` from which the guard
was selected. Doing this lets us be certain that when we report
that a guard has succeeded or failed, we're reporting it in the
right context.
Additionally, this commit uses strum to make an iterator over the
samples, so that we can make sure that our "for each sample" code is
robust against future changes, and we don't miss the bridge sample.
|
| |\ \ \ \
| |_|/ /
|/| | |
| | | |
| | | | |
Add two ways to change entries in an n_key_set
See merge request tpo/core/arti!797
|
| | | | | |
|
| | | | | |
|
| | | | | |
|