| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
| |
| |
| | |
Fixes #756
|
| |\ \
| |/
|/|
| |
| |
| |
| | |
tor-proto: Introduce CmdChecker, and use it to enforce correctness for our streams.
Closes #774 and #769
See merge request tpo/core/arti!1026
|
| | | |
|
| | |
| |
| |
| | |
It can now indicate _any_ cell that means we can forget about a stream.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| |
| |
| |
| | |
The role of CmdChecker is to verify that messages are arriving at
the appropriate sequence on a stream, with respect to the other
messages that have been received. Once the stream becomes
half-closed, the CmdChecker is also in charge of consuming incoming
messages on the stream and making sure that they are well-formed.
|
| | | |
|
| | |
| |
| |
| |
| | |
docsrs wants to find its `cfg_attr(docsrs...)` line after the
`cfg()` line.
|
| |\ \
| | |
| | |
| | |
| | | |
HsDesc: Use a new UnparsedLinkSpecifier to avoid leaking which linkspec types we know
See merge request tpo/core/arti!1029
|
| | | | |
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Unlike linkspec, this doesn't validate the actual contents of the
specifiers. We'll use this so we can handle the linkspec list for an
introduction point in an HsDesc, and just pass it on when
constructing our circuits.
I haven't added any accessor or constructor functions, because I
don't expect to need them.
|
| |\ \
| | |
| | |
| | |
| | | |
netdoc: Remove a TODO hs comment.
See merge request tpo/core/arti!1028
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It said to check whether C enforces an absence of extraneous bytes
at the end of the link specifiers. It does, in
`hs_desc.c:decode_link_specifiers()`, where it says:
```
if (link_specifier_list_parse(&specs, decoded,
(size_t) decoded_len) < decoded_len) {
goto err;
}
```
The comparison with "decoded_len" checks whether all the bytes were
decoded.
|
| |/
|
|
|
|
|
| |
Some code in our tests that worked fine with time 0.3.17 no
longer works with 0.3.19, despite the semver.
See https://github.com/time-rs/time/issues/552 for the upstream bug.
|
| |\
| |
| |
| |
| |
| |
| | |
tor-netdoc: Abolish PauseAt in favour of using itertools
Closes #760
See merge request tpo/core/arti!1021
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
Nothing uses these now; the NetDocReader is simply an iterator, itself.
|
| | | |
|
| | |
| |
| |
| | |
This simplifies the return type!
|
| | |
| |
| |
| | |
This will simplify things at many call sites.
|
| | |
| |
| |
| | |
We're going to want this a bit more widely.
|
| | | |
|
| | |
| |
| |
| | |
This is the last use of PauseAt.
|
| | |
| |
| |
| |
| |
| |
| | |
We can just make a new PauseAt, since it can take the inner peekable
iterator by mutable reference.
This seems to tidy the code up a bit too.
|
| | |
| |
| |
| |
| |
| | |
There's a blanket impl of Itertor for &mut impl Iterator, so this
isn't necessary, and it prevents us passing iterators by value
producing syntactic vinegar.
|
| | |
| |
| |
| |
| | |
This makes things easier to read. We're about to add another
site (albeit, temporarily).
|
| |\ \
| | |
| | |
| | |
| | | |
Start refactoring hs cell implementations
See merge request tpo/core/arti!1020
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Several HS message types have an extension list type. They all use
the same framing for extensions, but each of them has separate
extension types and separate extension namespaces.
This commit simplifies establish_intro a little, and adds support
for maintaining unrecognized extension types--at the expense of some
new internal code.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
Some of the HS message types have a lot of dependent types, like
extensions and options for those extensions, and so on. Except when
those extensions are portable across cell types, it makes sense
to put them in their own modules.
|
| | | | |
|
| | |/
|/|
| |
| | |
Fixes #772
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Finish #525 for relay messages: Only parse messages at the last instant.
Closes #773 and #525
See merge request tpo/core/arti!1017
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
Also, add some comments about how it is likely to change.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
This closes #525, and ensures, at last, that we don't parse any
message that we wouldn't accept.
|
| | | |
| | |
| | |
| | |
| | |
| | | |
This includes a partial solution for #769, but also turned up
another bug (#774) while I was working on it. I'll close them both
once I have a real solution.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
If the meta handler reports an error, then the circuit has violated
its protocol, and needs to be shut down.
Fixes #773.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
In general, we want to avoid parsing these cells until we are
fairly sure that they are something we would accept.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
This will make it ergonomic to decode a single body type without
having to declare a variant that accepts only a single message.
|
| | | | |
|