| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
client: Reflect manually disabled bootstrap in status
See merge request tpo/core/arti!4047
|
| | |/ /
| | |
| | |
| | |
| | | |
If we have made bootstrapping manual, and not launched a bootstrap,
we now reflect this as the reason that bootstrapping is blocked.
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | | |
This fixes the minimal-versions test, since the new code in chanmgr sets
descriptions for the metrics, which is a feature not supported by the
previous version.
|
| | | |
| | |
| | |
| | |
| | |
| | | |
This adds a structure to initialize metrics when the `ChanMgr` is
created, and adds a counter for the total number of channels built,
broken down by success and failure.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
At some earlier point in the development of this scheme, the ordering
was different (as it is in poc).
Update all the references in the docs, to the various varieties, so
that they are always plain, md, vote, like ns_type! et al take.
|
| | | | |
|
| |/ /
| |
| |
| | |
We do now support encoding.
|
| |\ \
| | |
| | |
| | |
| | | |
proto: Fix typo in ResolveCmdChecker docs
See merge request tpo/core/arti!4035
|
| | | |
| | |
| | |
| | | |
This returns a boxed `ResolveCmdChecker`, not a `DataCmdChecker`.
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
No functional change, just rustfmt.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This commit changes RelayPlatform::TorVersion to store the platform to
an Option<String> instead of a String because storing a missing/not
present platform as the empty String feels wrong in my opinion.
Besides, we will soon need to add encoding for this type, making now a
good time to change it.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This refactors the RelayPlatform test to store the test vectors in an
array and iterate over it, comparing it with the expected output. This
is a lot better than the current version, where there is not just a lot
of copy and pasted code but also some tests that only check for an okay
value.
Unfortunately, there is not an easy way to review this with
--color-moved or something. Personally, I would recommend to review
each original test vector (i.e. a line starting with `let p =` followed
by a string literal) and verify that the exact same string literal is
still present within the new test vector. Afterwards, verifying the
assertion logic should be easy, as it is a one-liner.
|
| |\ \ \
| |_|/
|/| |
| | |
| | | |
NetDir::pick_relay: preemptively handle empty sequence
See merge request tpo/core/arti!4034
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The `choose_weighted` behavior given an empty sequence isn't well
documented and has changed over time. Handle it ourselves for
consistency.
Currently, the `choose_weighted` behavior appears to be to return
WeightError::InvalidInput. This means the corresponding `is_empty`
branch when handling WeightError::InsufficientNonZero was never
exercised. (Though may have been with previous versions of the rand
crate).
|
| | | | |
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
Version bumps for the 2.4.0 release
See merge request tpo/core/arti!4039
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Done using:
```
for crate in $(./maint/list-crates | rg '^(tor|arti-)'); do
cargo set-version -p $crate 0.43.0
done
```
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Done using
```
(cd crates/hashx/bench && cargo update)
(cd crates/equix/bench && cargo update)
```
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The non-{arti-,tor-} crates are:
```
./maint/list-crates | rg -v '^(tor|arti)'
oneshot-fused-workaround
web-time-compat
slotmap-careful
test-temp-dir
fslock-guard
hashx
equix
caret
fs-mistrust
safelog
retry-error
futures-copy
```
We split them in the following categories:
* crates with no changes (no version bumps):
```
oneshot-fused-workaround: No change.
web-time-compat: No change.
slotmap-careful: No change.
test-temp-dir: No change.
caret: No change.
safelog: No change.
retry-error: No change.
futures-copy: No change.
```
Obtained with:
```
maint/changed-crates -v "arti-v$LAST_VERSION" 2>&1 >/dev/null | grep -i "no change" | grep -v '\(tor\|arti\)-'
```
* crates that only have non-functional changes (bump the patch version,
but not the dependend-on version):
- equix
* crates where functional changes were made, but no APIs were broken
(bump patch):
- fs-mistrust
* crates where APIs were broken (bump minor):
- hashx
- fslock-guard
The bumps from this commit were created using this script:
```
PATCH_NF=(
equix
)
PATCH="
fs-mistrust
"
MINOR="
hashx
fslock-guard
"
./maint/bump-nodep "${PATCH_NF[@]}"
for crate in $PATCH; do
cargo set-version --bump patch -p $crate;
done
for crate in $MINOR; do
cargo set-version --bump minor -p $crate;
done
```
|
| |/ / / |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
Just rustfmt.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This commit changes the tpye of `RouterDesc::identity_ed25519` to be of
EmbeddedCert.
Using the inner keys as the verified values is fine because the legacy
parser continues to verify the legacy cert, as it extracts its timestamp
and signature to the Vec it verifies in the end.
|
| | | |
| | |
| | |
| | | |
Just rustfmt.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This commit modifies the legacy parser code in an ugly way to also
return a copy of the KeyUnknown certificate, which will be required for
an EmbeddedCert<> construction.
This is not nice but unavoidable in a setup that makes use of the
self-consuming tor_cert certificate chain, like the legacy parser code.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
`maint/fixup-features` was complaining that `metrics` was reachable from
`full` and also `__is_experimental`.
I'm making `metrics` a non-experimental feature, because the whole of
`arti-relay` is experimental (so there is really no need mark any of its
individual features as experimental right now).
|
| | | | |
|
| | | | |
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
relay: Remove locking from crypto task key view
See merge request tpo/core/arti!4028
|
| | | | |
| | | |
| | | |
| | | | |
Signed-off-by: David Goulet <[email protected]>
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The recompute of the valid_until cache is done now in the constructor of
FullKeyView so the view is directly usable once built.
Else, the caller always need to call the recompute function which is
error prone especially when used as a throwaway view.
Also, without this change, building the view and then attempting to log
the public keys would fail.
Signed-off-by: David Goulet <[email protected]>
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Move all key related action function to keys.rs in order to alleviate
crypto.rs.
The Reactor will get more functionnalities soon so cleanup.
No behavior change, just code movement.
Related to #2548
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Remove the _no_lock() since no more locks now.
Signed-off-by: David Goulet <[email protected]>
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Now, the FullKeyView is officially only seen by the crypto task.
Signed-off-by: David Goulet <[email protected]>
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
No need for the valid_until cache locking that used to ensure coherent
view accross tasks.
As we move towards having the FullKeyView be solely owned by the crypto
task, no need for locking.
Future commit will introduce a control command channel which will be
used to get keys for other tasks.
The valid_until cache is kept though because it helps with key lookups
to avoid walking all keys each time.
Signed-off-by: David Goulet <[email protected]>
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Rename it to init_keys() so it capture the semantic of initialization
especially that now it returns a InitKeyMaterial.
This is so we don't use this function outside initialization in the
future.
Signed-off-by: David Goulet <[email protected]>
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This moves commit makes it that FullKewView is not visible outside the
crypto task.
For this, we need to keep the KeyMgr in the inert tor relay struct until
it is passed to the crypto task.
The public keys logging is moved to the run() function of the crypto
task and the try_generate_keys() now returns an InitKeyMaterial struct
which contains the channel authentication key material (for ChanMgr) and
the Ntor keys for the CREATE2 handler.
This way, we cut the need of the FullKeyView in the main thread.
Related to #2548
Signed-off-by: David Goulet <[email protected]>
|
| |\ \ \ \
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | | |
fslock-guard: Provide specialized android impls.
Closes #2544
See merge request tpo/core/arti!4030
|