| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
Enums with variants conditional on cargo features must be
non-exhaustive, because cargo features are supposed to be additive,
meaning that enabling a feature (which might happen due to some random
distant thing) ought not to break things using that enum.
There were surprisingly few places to fix this.
|
| |\ \
| |/
|/|
| |
| |
| |
| | |
Require state ownership when using bridges
Closes #612
See merge request tpo/core/arti!889
|
| | |
| |
| |
| | |
Left unsquashed for ease of review
|
| | |
| |
| |
| |
| | |
As per
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/889#note_2856874
|
| | |
| |
| |
| |
| |
| |
| |
| | |
From Unsupported. Prompted by
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/889#note_2856873
This was added in this MR.
Also add the missing semver note.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
From Unsupported. Following one of the suggestions here
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/889#note_2856873
This was added in 2c3711614908d0c9cf1663b20b67a3fc233301f4 which was
not yet in a release so this isn't a semver break. I have added
the semver note that was omitted in that MR.
|
| | |
| |
| |
| | |
Fixes #612
|
| | |
| |
| |
| |
| |
| | |
The error type needs to be convertible to GuardMgrError and also to
ReconfigureError. Neither of those is right, so we need a new error
type.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
`let _ignore =` isn't great because if the function called is
currently infallible, but becomes fallible, it suppresses the
detection of the error check.
A better pattern is to specify the type of the ignored value.
I'm about to do precisely this, here.
I did a git-grep and `let _ignore =` seems very common. Let's not
deal with all those now.
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Make BridgeConfig be Arc, so no Arc<BridgeConfig>
Closes #635
See merge request tpo/core/arti!885
|
| | | |
| | |
| | |
| | | |
BridgeConfig is itself an Arc now, so these are redundant.
|
| | | |
| | |
| | |
| | |
| | | |
This leaves the external API of this type unchanged, but now it's much
smaller and quite cheap to clone.
|
| | | |
| | |
| | |
| | | |
This was done by !874 and #604 closed accordingly.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
tor-guardmgr: Fix visibility of TestConfig with no features enabled
See merge request tpo/core/arti!875
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
Without this, tor-guardmgr tests don't build when run without the
crate's own testing feature enabled.
|
| |\ \ \ \
| |_|_|/
|/| | |
| | | |
| | | | |
guardmgr: Remove a now-unneeded "allow(dead_code)"
See merge request tpo/core/arti!862
|
| | | | | |
|
| | |_|/
|/| |
| | |
| | | |
Closes #650.
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
Fixes #653
|
| | | |
| | |
| | |
| | | |
This will make the next commit textually smaller.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
This type now does all the things people expect of it: you can (try
to) deserialize it, parse it from a string, and call build on it.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
This leaves this enum empty of actual errors, when bridge-client is
disabled.
We're going to add the not supported variant in a moment.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The dummy module is going to need an error type just like this but
with only the disabled variant. To avoid that dummy enum getting out
of step with the nontrivial one, we're going to make them the same.
So as a first step, break this out into its own file.
|
| | | |
| | |
| | |
| | |
| | | |
A bit more stuff is going to appear here, so it's getting to be rather
much for an inline module.
|
| | | |
| | |
| | |
| | | |
And use it in bridge configuration parsing.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
Prompted by
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/874/diffs?commit_id=12d13428d8fcc68b7b0f231bac9fc130b3eeb18b#d53209cbcd12771c549f3a130379ecb65dd60145_100_193
|
| | | |
| | |
| | |
| | |
| | | |
As per
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/874/diffs?commit_id=620cc90f6dcdad20f49a001a9e04d191a323e904#d53209cbcd12771c549f3a130379ecb65dd60145_100_124
|
| | | |
| | |
| | |
| | |
| | | |
As per
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/874/diffs?commit_id=620cc90f6dcdad20f49a001a9e04d191a323e904#d53209cbcd12771c549f3a130379ecb65dd60145_100_121
|
| | | |
| | |
| | |
| | |
| | |
| | | |
That the *de*serialisation works as expected will be tested properly
in just a moment, because when we plumb this all the way through, it
will be what parses the bridge lines in the example config file.
|
| | | | |
|
| | | |
| | |
| | |
| | | |
And test cases for it, and its errors.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This struct is going to be the principal "dictionary-style" serde
representation for a bridge, and the builder, making this all in
keeping with our usual approach.
In this commit:
* Introduce the struct (defining the serialisation)
* Provide the setters (defining the Rust API)
* Add success test cases (not all of the data in which is used yet)
|
| | |/
|/|
| |
| |
| | |
Here is where my motivation is and I'm working on this code now, so do
this renaming cleanup now.
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
GuardMgr: Log significant guard/bridge status changes at info/warn
Closes #627
See merge request tpo/core/arti!869
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We previously had a trace message on _every_ change. That's fine,
but we also want to log more important changes where the user
can see them. Namely:
* If we go from any other status to Reachable, we want to tell
the user. (We don't want to spam them if it was already
reachable.)
* If we go from Untried or Reachable to Unreachable, we want to
tell the user. (We don't tell them about changes from Retriable
to Unreachable, since that just means that a retry attempt
was not successful.)
Closes #627.
|
| | |/
| |
| |
| |
| |
| |
| |
| | |
There are two cases here, and we will want to log them
differently.
(By removing the "Unknown" variant entirely, we ensure that we
didn't miss any code that formerly checked for Unknown.)
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This lets us avoid calling `Instant::now()`, when `Runtime::now()`
is what we want.
Unfortunately, there are a bunch of functions that called `update()`
that needed to change. Fortunately, none of the changes were very
complicated.
Fixes a `TODO pt-client` comment.
|
| |/
|
|
|
|
|
| |
I'm about to add an `Instant` argument. By convention, when we have
both, we call the Instant "now".
This commit is a pure renaming.
|
| |
|
|
|
|
|
|
|
| |
If we have a bridge guard that is using Direct connection and it
knows multiple addresses, our code to match it with a BridgeConfig
is wrong, because the BridgeConfig has only one address, and our
code looks for an exact match.
Fixes #642.
|
| | |
|
| |\
| |
| |
| |
| | |
Bugfix: preserve active_set when loading guards
See merge request tpo/core/arti!848
|
| | | |
|
| |\|
| |
| |
| |
| |
| |
| | |
GuardMgr: Update desired bridge descs from 'update' function.
Closes #622
See merge request tpo/core/arti!847
|
| | |
| |
| |
| |
| | |
There are some new TODOs here for us to think about, but I think
this will give us something to test.
|
| | | |
|
| |\ \
| |/
|/|
| |
| | |
Move guardmgr creation to arti-client, rather than within circmgr
See merge request tpo/core/arti!850
|