| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
|
| | |
|
| | |
|
| |\ |
|
| | |
| |
| |
| |
| | |
This is in keeping with the behavior of C tor, and of
torspec!179.
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Send less information in onion service BEGIN messages
Closes #1077
See merge request tpo/core/arti!1738
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| |\ \ \
| |/ /
|/| |
| | |
| | | |
Upgrade a couple of dependencies
See merge request tpo/core/arti!1736
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
Use consistent phrasing when describing the two key fields to make it
clear they're referring to the same relay.
|
| |/ / |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously it was possible for `handler` to be None only when
`msg` was also None, which would make SendMsgAndInstallHandler into
a no-op. Now, if `msg` is present but `handler` is absent, we
use the previously installed handler, which I think was our
intention.
Without this patch, `Conversation::send_message` simply won't work.
Fixes #1085.
|
| | |
| |
| |
| |
| |
| | |
(We already require that it is Send when the client gives it to us
in circuit.rs, but we had previously forgotten that when we stored
it in the Reactor.)
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | | |
Update versions for today's releases.
See merge request tpo/core/arti!1716
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
```
These crates have new APIs:
tor-async-utils ADDED
tor-config ADDED
tor-hscrypto ADDED
tor-netdoc ADDED, plus BREAKING-experimental.
These crates have patch-level changes only:
tor-netdir (bugfix only). (re-exposes netdoc)
arti-rpcserver (tweaks only, uses nothing that broke.)
arti 1.1.10, no stable public APIs.
```
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
```
tor-basic-utils BREAKING
tor-rtmock BREAKING.
tor-cert BREAKING
tor-cell BREAKING
tor-proto BREAKING: re-exposes cell. (Also BREAKING-experimental)
tor-chanmgr BREAKING: Re-exposes proto.
tor-ptmgr BREAKING: re-exposes tor-chanmgr
tor-guardmgr BREAKING: re-exposes proto. (Only for ClockSkew I think?)
tor-circmgr BREAKING: re-exposes proto
tor-dirclient BREAKING
tor-hsclient BREAKING, re-exposes proto.
tor-hsservice BREAKING, re-exposes proto.
tor-hsrproxy BREAKING
arti-client BREAKING: re-exposes proto.
arti-hyper: BREAKING, re-exposes arti-client.
tor-dirmgr Let's assume BREAKING, very high-level.
tor-keymgr BREAKING, but experimental.
```
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Peraonally I would prefer
| #![cfg_attr(not(all(feature = "full", feature = "experimental")),
| allow(dead_code))]
but I think that is almost certainly controversial.
See tpo/core/arti#704.
|
| |/ /
| |
| |
| |
| | |
As per this comment, and preceding discussion
https://gitlab.torproject.org/tpo/core/arti/-/issues/1060#note_2959187
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This changes the internal representation to be `NonZeroU32` instead of
just `u32`.
Various places where a circuit ID is optional now use `Option<CircId>`.
Fixes a bug in `CircIdRange::sample` that would previously return a
circuit ID of 0, when the rng returned 0x8000_0000 for a low range.
|
| |/ |
|
| | |
|
| |\
| |
| |
| |
| |
| |
| | |
Refactor the stream-closing logic in tor-proto
Closes #1065
See merge request tpo/core/arti!1681
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | | |
|
| | |
| |
| |
| |
| |
| | |
Now that every state-change function consumes the IncomingStream,
there is no longer any reason to keep track of an internal state
enum.
|
| | | |
|
| | |
| |
| |
| |
| | |
Now that IncomingStream doesn't implement Drop, we can just
destructure it.
|
| | |
| |
| |
| |
| | |
Since dropping a StreamTarget will send an End, we don't need
to call reject_internal in this case.
|
| | |
| |
| |
| |
| |
| |
| | |
Now that `StreamMap::terminate` no longer panics, and now that it
permits the kind of double-call that we allow, we can close #1065.
Closes #1065.
|
| | |
| |
| |
| |
| | |
The rule is that we allow up to one explicit `close_pending`,
followed by exactly one final `mpsc::Sender` drop.
|
| | |
| |
| |
| |
| | |
We will use this to enforce correct ordering on "close" vs "drop"
APIs.
|
| |\ \
| |/
|/|
| |
| | |
Upgrade several dependencies.
See merge request tpo/core/arti!1680
|
| | | |
|
| | |
| |
| |
| | |
See #1065 for more information here.
|
| |/
|
|
|
|
|
|
|
| |
It turns out that we can make `IncomingStream::reject()` consume
self, thus making it impossible to hit the double-close error
from outside the `tor-proto` crate.
Also, we rename `StreamTarget::close()` to `close_pending()` to
better reflect its limited applicability.
|
| |\
| |
| |
| |
| | |
tor-proto: Resolve a few TODO HSS entries.
See merge request tpo/core/arti!1658
|
| | |
| |
| |
| |
| | |
This should be smaller and faster than vec, and save some
allocations. It could also avoid a tiny sidechannel.
|
| | | |
|
| | |
| |
| |
| | |
This will let avoid some copying inside our HSS code.
|
| | |
| |
| |
| |
| | |
There is some similarity, but there's not really a logical way
to combine the two that actually results in less, clearer code.
|
| | | |
|