summaryrefslogtreecommitdiff
path: root/crates/tor-proto/semver.md
Commit message (Collapse)AuthorAgeFilesLines
* tor-proto: Note the addition of PendingClientCirc::peek_unique_id in semver.md.Gabriela Moldovan2024-02-281-1/+1
|
* tor-circmgr: Add a helper for displaying optional UniqIds.Gabriela Moldovan2024-02-271-0/+1
| | | | | | | | Some of the `tor_circmgr::Error` variants will include the `UniqId` of the corresponding circuit, so we'll need to be able to display it without the `Circ ` prefix. Part of #1297
* Remove semver.md files.Nick Mathewson2023-12-041-3/+0
|
* Add `ClientCirc::extend_ntor_v3`Jim Newsome2023-11-271-0/+1
|
* Add PendingClientCirc::create_firsthop_ntor_v3Jim Newsome2023-11-271-0/+1
|
* Send less information in onion service BEGIN messagesNick Mathewson2023-11-151-0/+1
| | | | | | | | | While looking for differences, we found that C tor always omits the flags and the hostname from a BEGIN message sent on an onion service circuit. In torspec!179, we specified that behavior. This patch brings arti into conformance. Closes #1077.
* Remove semver.md files from arti 1.1.10Nick Mathewson2023-10-311-3/+0
|
* proto: Revise the behavior of IncomingStream::discard().Nick Mathewson2023-10-191-1/+2
| | | | | | | | | | | | | Because dropping a `StreamTarget` causes the circuit reactor to send an End, the previous do-nothing implementation of `discard()` wasn't sufficient to cause the request to be ignored without sending an End. This commit modifies our "close pending stream" behavior to only optionally send an End message. To avoid confusion, I'm using a new `CloseStreamBehavior` enum rather than an `Option<End>`, since we had previously used `None` in some cases to indicate a default (misc) end message.
* IncomingStream: Remove state.Nick Mathewson2023-10-191-0/+1
| | | | | | Now that every state-change function consumes the IncomingStream, there is no longer any reason to keep track of an internal state enum.
* Remove the (fairly bogus) HsNtorServiceInput type.Nick Mathewson2023-10-121-0/+1
| | | | This will let avoid some copying inside our HSS code.
* Remove semver.md now that 1.1.8 is out.Nick Mathewson2023-09-051-20/+0
|
* tor-proto: Add a HopNum::display function.Gabriela Moldovan2023-08-251-1/+1
| | | | | | | | | This function can be used to display a more user-friendly representation of a `HopNum`. This will print hop numbers as 1-indexed values: #1, #2, etc.. We will soon remove HopNum's Display implementation in favour of `.display()`.
* proto: new ClientCirc::send_raw_msg function.Nick Mathewson2023-08-211-1/+1
| | | | Closes #1010.
* tor-proto: Make ClientCirc::allow_stream_requests take a HopNum.Gabriela Moldovan2023-08-181-0/+1
| | | | | | | | | | For consistency with the other `ClientCirc` APIs, `ClientCirc::allow_stream_requests` now takes a `HopNum` argument. Upon receiving an incoming stream request, the reactor now checks if the request came from the hop specified in `allow_stream_requests` (and if it came from a different hop, the circuit is closed). Part of #1009
* proto: API to expose the `CircuitBinding` type.Nick Mathewson2023-08-141-0/+3
| | | | Closes #993
* tor-proto: Make update_state() and discard() return Result<(), Bug>.Gabriela Moldovan2023-08-091-1/+1
| | | | These functions only ever return `Bug` errors.
* tor-proto: Implement IncomingStream::discard().Gabriela Moldovan2023-08-081-0/+2
|
* tor-proto: allow_stream_requests now waits until the control message is ↵Gabriela Moldovan2023-08-041-0/+1
| | | | | | | | | | | | | | | | | received. `ClientCirc::allow_stream_requests` is now `async` and waits until the `AwaitIncomingStream` control message is processed by the reactor. This guarantees that by the time the `allow_stream_requests` future resolves, the reactor is ready to process BEGIN/BEGIN_DIR/RESOLVE cells. Previously, the client tasks from allow_stream_requests tests had to sleep before sending the BEGIN cell to give the reactor time to process the `AwaitIncomingStream` control message (which tells the reactor to expect incoming BEGIN/BEGIN_DIR/RESOLVE cells on the circuit). Fixes #994
* tor-proto: Add ClientCirc::start_conversation().Gabriela Moldovan2023-08-041-0/+3
| | | | | | | | | | | This will enable hidden services to send `RENDEZVOUS1` messages to the `N`th hop of the circuit rather than the `N + 1`th virtual one (which can only used after the client and service have completed the introduction handshake). This also deprecates `start_conversation_last_hop`. Closes #959
* tor-proto: Add method for getting the HopNum of the last hop.Gabriela Moldovan2023-08-041-0/+1
|
* tor-proto: Make HopNum public.Gabriela Moldovan2023-08-041-0/+1
| | | | | | `HopNum` will be used in `ClientCirc`'s public API when we refactor `ClientCirc::start_conversation_last_hop` to use the provided hop rather than always using the last one.
* tor-proto: Implement allow_stream_requests.Gabriela Moldovan2023-08-031-0/+2
|
* tor-proto: Implement IncomingStream::{accept_data, request, reject}.Gabriela Moldovan2023-08-031-0/+6
|
* Remove semver.md files now that 1.1.7 is out.Nick Mathewson2023-08-011-1/+0
|
* tor-proto conversations: semverIan Jackson2023-06-301-0/+1
|
* Remove semver.md files from 1.1.5Nick Mathewson2023-06-011-2/+0
|
* Refactor ClientCirc APIs to use Arc<ClientCirc>.Nick Mathewson2023-05-161-0/+2
| | | | | | | | | | | | 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.
* Remove semver.md files.Nick Mathewson2023-03-311-1/+0
|
* proto: Stabilize ClientCirc::n_hops.Nick Mathewson2023-03-221-0/+1
|
* Move tor-proto/semver.md to tor-cellNick Mathewson2023-02-011-2/+0
| | | | It was erroneously created in the wrong place.
* Add semver.md for (into_)handshake()Neel Chauhan2022-12-191-0/+2
|
* Remove semver.md files now that 1.1.0 is released.Nick Mathewson2022-11-301-3/+0
|
* proto: Make Channel::reparameterize take &self.Nick Mathewson2022-10-181-1/+2
| | | | | | | | | | Even though channels are practically changeable, they use locks internally so that you don't need a `&mut Channel` to send or receive traffic. It makes sense for reparameterizing the channel to also use a &self reference. I'll need this so that I can store channels in an `ByRelayIds<>` set, and still invoke their reparameterize methods.
* proto: Implement HasRelayIds for Channel.Nick Mathewson2022-10-181-0/+1
|
* tor-proto: Preserve the ChannelMethod, not the SocketAddrNick Mathewson2022-10-061-0/+1
|
* Remove semver.md from arti-1.0.0Nick Mathewson2022-09-071-8/+0
|
* Add semver notesIan Jackson2022-08-171-0/+7
|
* Final (?) API revisions for tor-linkspecNick Mathewson2022-08-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With this change, each individual identity type becomes optional. The functions that expose them unconditionally are now in a "legacy" trait that only some downstream types are expected to implement. There are new convenience APIs in HasRelayIds: * to return Option<&keytype>, * to see if one identity-set contains another. This commit will break several downstream crates! For the reviewer's convenience, I will put the fixes for those crates into a series of squash! commits on this one. tor-netdir ---------- Revise tor-netdir to accept optional identities. This required some caveats and workarounds about the cases where we have to deal with a key type that the tor-netdir code does not currently recognize at all. If we start to add more identity types in the future, we may well want more internal indices in this code. tor-proto --------- In order to make tor-proto support optional identities, there were fewer changes than I thought. Some "check" functions needed to start looking at "all the ids we want" rather than at "the two known IDs"; they also needed to accommodate that case where we don't have an ID that we demand. This change will also help with bridges, since we want to be able to connect to a bridge without knowing all of its IDs up front. The protocol currently _requires_ the two current ID types in some places. To deal with that, I added a new `MissingId` error. I also removed a couple of unconditional identity accessors for chanmgr; code should use `target().identity(...)` instead. tor-chanmgr ----------- This is an incomplete conversion: it does not at all handle channel targets without Ed25519 identities yet. It still uses those identities to index its internal map from identity to channel; but it gives a new `MissingId` error type if it's given a channel target that doesn't have one. We'll want to revise the map type again down the road when we implement bridges, but I'd rather not step on the channel-padding work in progress right now. tor-guardmgr ------------ This change is mostly a matter of constructing owned identity types more sensibly, rather than unwrapping them directly. There are some places marked with TODOs where we still depend on particular identity types, because of how the directory protocol works. This will need revisiting when we add bridge support here. tor-circmgr ----------- These changes are just relatively simple API changes in the tests.
* Now that versions have bumped, remove semver.md files.Nick Mathewson2022-08-011-1/+0
|
* tor-proto: Stop using write_infallible in handshake code.Nick Mathewson2022-07-111-0/+1
| | | | | | | | This change was a bit annoying, since most of this code _can't_ fail, and so the only reasonable response is to wrap the input in an internal error... except for one case where we're actually encoding a caller-provided message, so we _do_ want to wrap the EncodeError from tor_bytes.
* Remove semver.md files now that 0.5.0 is outNick Mathewson2022-06-241-3/+0
|
* tor-proto: err: Provide ChannelClosed as a separate unit errorIan Jackson2022-06-211-0/+1
|
* update semver.mdtrinity-1686a2022-06-081-0/+1
|
* Document semver changesIan Jackson2022-06-081-0/+1