| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| |
|
|
|
|
|
| |
We haven't generated these since Tor 0.3.5, which is no longer
supported on the network.
Closes #914.
|
| |\
| |
| |
| |
| |
| |
| | |
Better API for getting circuit paths
Closes #787
See merge request tpo/core/arti!1286
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| | |
The new path_ref() method returns an Arc<Path>, which gives a much
better API for reasons discussed in the new documentation of path().
(We could just replace path() if we'd prefer, but IMO having
path_ref() here isn't so bad.)
|
| | |
| |
| |
| |
| |
| | |
The new PathEntry struct wraps the old PathEntry enum, which has
been renamed to HopDetail. It's an opaque struct because we want to
be able to put new information in the enum as we think best.
|
| | |
| |
| |
| | |
(You can't get one yet or do much with it.)
|
| | |
| |
| |
| |
| | |
Now Path is a regular struct with no interior mutability, and we use
Arc::make_mut() for the case when we need to add a hop.
|
| | |
| |
| |
| | |
(We're about to remove the interior mutability from Path.)
|
| |/
|
|
|
| |
These are all related to issues that will come up for the service
side of the onion service implementation.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
When we break the 1:1 relationship of message and cell, we'll want
this API to take messages, not cells.
This API is experimental, so we don't need to call it a semver
break.
Closes #881.
|
| |
|
|
|
|
|
|
| |
Formerly we said that it would not return until the handler
was uninstalled. This is incorrect: it returns as soon as the
message is sent and the handler installed.
Closes #885.
|
| |
|
|
|
| |
Fixes
nailing-cargo +stable clippy -p tor-hsclient --all-features --all-targets
|
| | |
|
| |
|
|
|
|
| |
I am hoping we can merge this as a "TODO (Diziet)", even though I
think it may be controversial. Ie merging this doesn't represent a
decision to do as I suggest.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Also, no longer talk about handlers being "installed". That's not
something that's exposed by this API.
And, say that `send_control_message` can be called again only
after *`send_control_message`* returns, not when `handle_msg` has
returned `UinstallHandler`. IMO this makes more sense.
Explain that we can't maintain a continuous watch while holding a
conversation with the peer. (This is surely an API bug.)
|
| |
|
|
|
| |
This fixes a warning when building tor-proto without the
`rpc-common` feature.
|
| |
|
|
| |
Based on text from @diziet
|
| |
|
|
|
| |
Sadly, this adds a few more `TODO HS` entries, but I think we can
clean them up later after a bit of discussion.
|
| |
|
|
|
|
|
| |
There are a few new TODO hs comments, though, and an XXXX I'll need
to fix up in the next commit.
Implements #726.
|
| |
|
|
|
| |
This is fairly straightforward, thanks to our existing design work
on this code.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
If we didn't do this, we would need to transfrom
`EncodedLinkSpec`s into a `LinkSpec::Unrecognized`, which is not
semantically right. What's more, every user of this API wants to
consume encoded link specifiers, so encoding them early saves a
little effort.
|
| |
|
|
|
|
|
| |
This is a workaround for an issue that I'm about to encounter
somewhere in our pile of dependencies as I add arti-rpcserver, and
somehow make serde_json visible in this test code thereby, making
the PartialEq method resolution ambiguous.
|
| |
|
|
| |
Closes #784.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
This way we don't need to worry about race conditions that happen if
the caller thinks that the handler is installed before it really is.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
This new function combines "sending a message" and "accepting
replies in a stream" into a single call, so that there is no gap
between when the message is sent and the replies are available.
There are a number of compromises here, in order to avoid API
proliferation. I've tried to contain them as best I can.
See comments for additional design discussion.
|
| | |
|
| | |
|
| |
|
|
| |
Fixes #756
|
| |
|
|
|
|
|
|
|
|
| |
This change makes sure that open streams and half-closed streams
have the same stream-type-dependent state machines with respect to
which cells are acceptable.
Fixes #774.
Fixes #769.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
We now manipulate raw relay cell bodies as (an alias for)
`Box<[u8;509]>` rather than as (an alias for) `[u8;509]`. This
enables us to do much less copying. It will become more important
soon, as we defer parsing relay cell bodies even longer.
Related to #7.
We also use SliceWriter to avoid allocating a Vec<> for every relay
message we want to encode, and instead encode directly into the
cell.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
Unlike C tor, we treat unrecognized commands as reason to kill off
the connection entirely. That's fine; if we need to add an
unrecognized command in the future, we can use VERSIONS to negotiate
it.
Also, if someday we want this code to support relay channels as
well, we can use some type trickery to have that work too.
|
| |
|
|
| |
Thanks to rust-analyzer for making this simple.
|
| | |
|
| |
|
|
|
| |
Previously, there were some unit variants, but that makes things
quite awkward for #525.
|
| |
|
|
|
| |
This panics on error, and we're fine with a panic on misbehavior in
tests.
|
| | |
|
| |
|
|
| |
Onion services (and later, exits and caches) will need this.
|
| |
|
|
|
|
| |
This is a little tricky, but I think that we're not actually
exposing too much here. I expect we'll need to tweak this stuff
between now and our final version.
|