<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/channel/codec.rs, branch arti-v1.1.5</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.1.5</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.1.5'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2023-02-09T15:20:31Z</updated>
<entry>
<title>tor-proto: only parse allowed ChanMsg types during handshake.</title>
<updated>2023-02-09T15:20:31Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-02-08T14:15:55Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=b49bd3b121b6aeb40351c8ac2c978323d341b018'/>
<id>urn:sha1:b49bd3b121b6aeb40351c8ac2c978323d341b018</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-cell: Rename ChanMsg and ChanCell-related types.</title>
<updated>2023-02-07T21:03:14Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-02-07T14:12:02Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d99c13067939bd256614796be0a50637c3a2b3eb'/>
<id>urn:sha1:d99c13067939bd256614796be0a50637c3a2b3eb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-cell: Remove ChanMsg methods that are duplicated in ChanMsgClass.</title>
<updated>2023-02-07T21:03:14Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-02-07T13:48:34Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=3c7aea723bc49dac09eeb4bcc1acb40f6094e2d5'/>
<id>urn:sha1:3c7aea723bc49dac09eeb4bcc1acb40f6094e2d5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-proto: Split CellErr based on activity.</title>
<updated>2022-06-23T18:59:52Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-06-23T18:59:52Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=35b7b8a47ad96f5eee032fab7900b3b29bf2fa73'/>
<id>urn:sha1:35b7b8a47ad96f5eee032fab7900b3b29bf2fa73</id>
<content type='text'>
Failing to encode is fundamentally different from failing to
decode. We now treat those separately, and describe _what_ we failed
to encode or decode.
</content>
</entry>
<entry>
<title>tor-proto: clean up error names and messages</title>
<updated>2022-06-23T18:35:26Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-06-23T18:35:26Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=92fd9fb0dec25ddd45a4428603db99bad8d72661'/>
<id>urn:sha1:92fd9fb0dec25ddd45a4428603db99bad8d72661</id>
<content type='text'>
This avoids adding additional information for now; that will come on
the next commits.
</content>
</entry>
<entry>
<title>proto: Refactor conversion from CodecError to Error</title>
<updated>2022-02-24T18:23:42Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-02-24T18:23:42Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d8120e1649e4e8f039666ff1c3aedff5f1310154'/>
<id>urn:sha1:d8120e1649e4e8f039666ff1c3aedff5f1310154</id>
<content type='text'>
Remove default conversion; instead use a specific conversion in each
of the two modules that need to do it.
</content>
</entry>
<entry>
<title>tor-proto: Split IoErr  based on when it occurs</title>
<updated>2022-02-23T15:38:48Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-02-23T15:01:28Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=afa49eac8f45ea34a419e7a8cef7bb03026b5c75'/>
<id>urn:sha1:afa49eac8f45ea34a419e7a8cef7bb03026b5c75</id>
<content type='text'>
We want to distinguish handshake failures from errors later on in
the channel's lifetime.

Closes #359.
</content>
</entry>
<entry>
<title>tor-cell: provide HasKind.</title>
<updated>2022-02-15T14:41:10Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-02-11T17:17:11Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=da0e9e456c398d33c476db5a28e1c6fff5320c4d'/>
<id>urn:sha1:da0e9e456c398d33c476db5a28e1c6fff5320c4d</id>
<content type='text'>
Additionally, refactor the IoError out of tor_cell::Error:
nothing in TorCell created this; it was only used by tor_proto.

This required refactoring in tor_proto to use a new error type. Here I
decided to use a new CodecError for now, though we may refactor that
away soon too.
</content>
</entry>
<entry>
<title>tor-proto: Use tor-rtcompat macros for testing, not tokio.</title>
<updated>2021-11-15T17:57:01Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-11-15T17:55:08Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f92ad644c90480cd6ea738201119ce1e9fd40d8e'/>
<id>urn:sha1:f92ad644c90480cd6ea738201119ce1e9fd40d8e</id>
<content type='text'>
Closes #222.
</content>
</entry>
<entry>
<title>Get rid of tor-proto's ChannelImpl, and use the reactor more instead</title>
<updated>2021-11-03T13:19:45Z</updated>
<author>
<name>eta</name>
<email>tor@eta.st</email>
</author>
<published>2021-11-03T12:48:54Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e8e9699c3c239d6c30f9ad414f15d3bad6ec03fd'/>
<id>urn:sha1:e8e9699c3c239d6c30f9ad414f15d3bad6ec03fd</id>
<content type='text'>
Instead of awkwardly sharing the internals of a `tor-proto` `Channel`
between the reactor task and any other tasks, move most of the internals
into the reactor and have other tasks communicate with the reactor via
message-passing to allocate circuits and send cells.

This makes a lot of things simple, and has convenient properties like
not needing to wrap the `Channel` in an `Arc` (though some places in the
code still do this for now).

A lot of test code required tweaking in order to deal with the refactor;
in fact, fixing the tests probably took longer than writing the mainline
code (!). Importantly, we now use `tokio`'s `tokio::test` annotation
instead of `async_test`, so that we can run things in the background
(which is required to have reactors running for the circuit tests).

This is an instance of #205, and also kind of #217.
</content>
</entry>
</feed>
