aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-proto/src/circuit.rs
Commit message (Collapse)AuthorAgeFilesLines
...
* tor-proto: Add TODO regarding allow_stream_requests corner case.Gabriela Moldovan2023-08-031-0/+24
|
* tor-proto: Remove outdated comments.Gabriela Moldovan2023-08-031-3/+0
|
* tor-proto: Add a test for allow_stream_requests.Gabriela Moldovan2023-08-031-0/+70
|
* tor-proto: Implement allow_stream_requests.Gabriela Moldovan2023-08-031-7/+49
|
* tor-proto: Add StreamTarget function for sending CtrlMsg::CloseStream .Gabriela Moldovan2023-08-031-0/+46
| | | | This will be used by `IncomingStream` to implement `reject()`.
* tor-proto: Remove extraneous space.Gabriela Moldovan2023-08-031-1/+1
|
* tor-circmgr: Add two possibly-needed docsrs annotationsIan Jackson2023-07-121-0/+1
| | | | | I don't know if these are needed because the rules are not documented afaict. But it seems like probably they ought to be there?
* tor-proto: Conversation: drop two otiose cfg(feature)Ian Jackson2023-07-121-1/+0
| | | | These fns are in a feature-gated impls on feature-gated structs.
* Merge branch 'clippy-allow' into 'main'Ian Jackson2023-07-111-0/+1
|\ | | | | | | | | clippy: Allow some of our existing code patterns See merge request tpo/core/arti!1396
| * Run maint/add_warning to actually apply new lint allowsIan Jackson2023-07-101-0/+1
| |
* | Merge branch 'conversation' into 'main'Alexander Færøy2023-07-101-89/+113
|\ \ | |/ |/| | | | | Overhaul send_control_message See merge request tpo/core/arti!1367
| * tor-proto: run rustfmtIan Jackson2023-06-301-1/+4
| |
| * tor-proto conversation API: Provide ConversationInHandlerIan Jackson2023-06-301-1/+6
| |
| * tor-proto conversation API: Implement ConversationIan Jackson2023-06-301-89/+98
| | | | | | | | | | Now, after you call start_conversation_last_hop, you can send more messages if you like.
| * tor-proto: Make the handler in SendMsgAndInstallHandler optionalIan Jackson2023-06-301-1/+1
| | | | | | | | | | We're going to want to do almost-the-same thing but without installing a new handler.
| * tor-proto conversation API: Return a ConversationIan Jackson2023-06-301-8/+15
| | | | | | | | | | This is just a placeholder for now, but it'll be a thing you can send more messages with.
| * tor-proto conversation API: Rename to start_conversation_last_hopIan Jackson2023-06-301-7/+7
| | | | | | | | Was send_control_message.
| * tor-proto conversation API: Make starting message optionalIan Jackson2023-06-301-2/+2
| | | | | | | | | | We're going to let people start a conversation and either expect to receive first, or send messages ad-hoc later.
* | Remove explicit allows for missing_panics_docs.Nick Mathewson2023-07-061-1/+1
|/ | | | These are no longer needed.
* proto: ClientCirc: remove now-obsolete note on Clone-nessNick Mathewson2023-06-281-5/+0
|
* proto: document ClientCirc lifecycle better.Nick Mathewson2023-06-281-0/+29
|
* proto: Remove support for receiving unauthenticated SENDMEsNick Mathewson2023-06-261-10/+0
| | | | | | | We haven't generated these since Tor 0.3.5, which is no longer supported on the network. Closes #914.
* Merge branch 'proto-better-path' into 'main'Nick Mathewson2023-06-221-26/+73
|\ | | | | | | | | | | | | Better API for getting circuit paths Closes #787 See merge request tpo/core/arti!1286
| * proto: Resolve/downgrade some path-related "TODO HS" itemsNick Mathewson2023-06-221-2/+0
| |
| * proto: Add ClientCirc::path_ref(), deprecate path().Nick Mathewson2023-06-221-13/+35
| | | | | | | | | | | | | | | | 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.)
| * proto: Expose an opaque PathEntry.Nick Mathewson2023-06-221-5/+7
| | | | | | | | | | | | 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.
| * proto: Make Path publicNick Mathewson2023-06-221-0/+2
| | | | | | | | (You can't get one yet or do much with it.)
| * proto: Remove Mutex from Path.Nick Mathewson2023-06-221-0/+4
| | | | | | | | | | 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.
| * proto: Move Path into a separate shared mutable structureNick Mathewson2023-06-221-7/+26
| | | | | | | | (We're about to remove the interior mutability from Path.)
* | proto: downgrade some "TODO HS" comments to "HSS"Nick Mathewson2023-06-211-3/+3
|/ | | | | These are all related to issues that will come up for the service side of the onion service implementation.
* Apply 1 suggestion(s) to 1 file(s)Ian Jackson2023-06-121-1/+1
|
* proto: Have send_control_message take an AnyRelayMsg.Nick Mathewson2023-06-091-4/+2
| | | | | | | | | | 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.
* proto: Correct the docs on send_control_messageNick Mathewson2023-06-091-2/+7
| | | | | | | | 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.
* Fix a silly clippy warningIan Jackson2023-06-081-0/+1
| | | | | Fixes nailing-cargo +stable clippy -p tor-hsclient --all-features --all-targets
* tor-circmgr: send_control_message: Add reference to MR discussionIan Jackson2023-06-051-0/+2
|
* tor-circmgr: send_control_message: API change proposalIan Jackson2023-06-051-0/+21
| | | | | | 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.
* tor-circmgr: send_control_message: Clarify some corner casesIan Jackson2023-06-051-7/+32
| | | | | | | | | | | | 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.)
* proto: Make PathEntry::Virtual feature-conditional.Nick Mathewson2023-05-231-0/+2
| | | | | This fixes a warning when building tor-proto without the `rpc-common` feature.
* proto: Explain "virtual" hops better.Nick Mathewson2023-05-181-0/+4
| | | | Based on text from @diziet
* proto: Allow circuit Paths to represent virtual hops.Nick Mathewson2023-05-181-3/+21
| | | | | Sadly, this adds a few more `TODO HS` entries, but I think we can clean them up later after a bit of discussion.
* proto: Implement Circuit::extend_virtual.Nick Mathewson2023-05-181-2/+17
| | | | | | | There are a few new TODO hs comments, though, and an XXXX I'll need to fix up in the next commit. Implements #726.
* tor-proto: Code to construct crypto layers for virtual hops.Nick Mathewson2023-05-181-0/+2
| | | | | This is fairly straightforward, thanks to our existing design work on this code.
* Refactor ClientCirc APIs to use Arc<ClientCirc>.Nick Mathewson2023-05-161-17/+21
| | | | | | | | | | | | 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.
* Change CircTarget::linkspecs() to return an encoded list.Nick Mathewson2023-05-101-4/+6
| | | | | | | | 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.
* tor-proto: Be explicit about an into().Nick Mathewson2023-04-121-1/+1
| | | | | | | 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.
* Add an experimental circuit accessor to DataStream.Nick Mathewson2023-03-231-0/+6
| | | | Closes #784.
* tor-proto: Split off send-control-msg featureIan Jackson2023-03-231-4/+4
|
* tor-proto: document deep-copy in ClientCirc::path()Nick Mathewson2023-03-221-0/+4
|
* proto: Stabilize ClientCirc::n_hops.Nick Mathewson2023-03-221-1/+6
|
* tor-proto: Document limitation on send_control_messageNick Mathewson2023-03-081-0/+7
|