| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
| |
Method dispatch rules mean that if the receiver type of the actual
function changes, `self.call()` can turn into a purely-recursive call
which overflows the stack.
Async Rust doesn't have the usual warning for this situation :-(.
UFCS is clumsier but doesn't have that problem because it involves
much less magical dispatch. Instead of generating a recursive call
which overflows the stack, it fails to compile.
|
| |
|
|
|
|
| |
ClientCirc::begin_dir_stream now takes Arc<Self>. Method resolution
rules mean that this code would just recurse, leading to a stack
overflow.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Now ClientCirc is no longer `Clone`, and the things that need it
to be `Clone` instead return and use an Arc<ClientCirc>
We're doing this so that ClientCirc can participate in the RPC
system, and so that its semantics are more obvious.
Closes #846.
Thanks to the type system, this was a much simpler refactoring than
I had feared it would be.
|
| |
|
|
|
|
|
| |
`descriptor_fetch_attempt` now returns a `TimerangeBound<HsDesc>` (and
so does `parse_descript_validate`).
Signed-off-by: Gabriela Moldovan <[email protected]>
|
| |
|
|
|
|
|
| |
This makes `descriptor_ensure` refetch the descriptor if either of its
layers (inner or outer) expires.
Signed-off-by: Gabriela Moldovan <[email protected]>
|
| |
|
|
|
|
|
| |
This makes `descriptor_ensure` refetch the descriptor if it has been
cached for longer than `descriptor-lifetime` minutes.
Signed-off-by: Gabriela Moldovan <[email protected]>
|
| | |
|
| |
|
|
|
|
|
|
| |
We'll probably need the hsdir list to be shuffled deterministically for
testing purposes (this might be desirable, for example, when we write a
test for HS descriptor download retries).
Signed-off-by: Gabriela Moldovan <[email protected]>
|
| |
|
|
|
|
| |
lifetime configurable.
Signed-off-by: Gabriela Moldovan <[email protected]>
|
| |
|
|
| |
Signed-off-by: Gabriela Moldovan <[email protected]>
|
| |
|
|
| |
Fixes CI warning.
|
| |
|
|
|
| |
Aa per
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1118#note_2894467
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
This doesn't change the text of the functional code, but now the
methods are indirected via the Mock* traits.
|
| |
|
|
|
|
|
|
| |
There are many TODOs here. Some are questions; some are
straightforward and can be done in followups.
With this code, I am able to reach the eprintln! and todo! with
curl --socks5-hostname localhost:9150 https://duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion/
|
| |
|
|
|
|
|
|
|
| |
We have a local alias of `HsDesc = String` which needs to be got rid
of.
But, right now the alternative would be to implement all the code for
signature checking and decryption of an `HsDesc`, before we can make a
test case for the downloader part.
|
| |
|
|
|
| |
This will be convenient as the common context for the descriptor
download work, and also for testing.
|
| |
|
|
|
| |
The old name was unwieldy and other crates can just as well name it by
the crate scope.
|
| |
|
|
|
| |
This will be more convenient inside tor-hsclient. In arti-client,
this mirrors the way TorClient::get_or_launch_exit_circ works.
|
| |
|
|
| |
Obviously it will need this!
|
| |
|
|
|
| |
Prompted by
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1034#note_2882079
|
| |
|
|
| |
This will allow us to test state.rs.
|
| | |
|
|
|
This compiles, but it cannot work yet. Nor can it conveniently be tested.
|