summaryrefslogtreecommitdiff
path: root/tor-proto/src/util
Commit message (Collapse)AuthorAgeFilesLines
* Misc tests in tor-proto.Nick Mathewson2021-06-191-1/+4
|
* Make a few error types implement CloneNick Mathewson2021-06-141-3/+13
| | | | | | | To make this work we have to wrap std::io::Error in an Arc. The benefit of having these errors implement Clone is that we can provide the same Error in response to multiple requests when they are all waiting on the same operation.
* Add the "unreachable_pub" lint.Nick Mathewson2021-05-181-2/+2
| | | | | | This is a somewhat obnoxious change in its scope and requirements, but it makes it easier to understand what the real public and private parts of our APIs are.
* Fix Rust-1.51 clippy warnings about acronyms in camel case.Nick Mathewson2021-03-291-2/+2
| | | | This is painful, but we shouldn't have to do it again.
* Move stream timeout logic into tor-client.Nick Mathewson2021-03-241-12/+0
| | | | | | | | | | This is consistent with the other pieces of tor-proto, which do not handle timeouts on their own. It also lets us remove tor-rtcompat as a dependency from tor-proto, and simplify some of the test cases to use async_test. This commit unindents a lot of test code; use git's "-b" flag to read the parts that matter.
* Better management for END cells in streams.Nick Mathewson2021-03-101-6/+12
|
* Implement From<tor_proto::Error> for std::io::ErrorNick Mathewson2021-03-101-0/+23
|
* Implement timeout for new streams (set to 120 seconds).George Kadianakis2021-02-051-0/+11
|
* Function to check whether a channel matches a target.Nick Mathewson2020-10-291-0/+3
|
* Make circuit reactors also have a run_once() method for testing.Nick Mathewson2020-10-271-0/+25
|
* Tests for handshakes with missing certsNick Mathewson2020-10-231-1/+10
| | | | Also handle tor_cell::Error::ChanProto better.
* Mark channels as unusable if reactor gets an error.Nick Mathewson2020-10-151-0/+3
| | | | | Similarly as with circuits, we want this code to set a "closed" flag so that attempts to write on the channel will fail.
* Remove idmap as needlessly complex.Nick Mathewson2020-09-291-35/+0
|
* Split the cell-handling parts of tor-proto into a new crate.Nick Mathewson2020-09-261-0/+3
|
* Initial error cleanup on streams/circuitsNick Mathewson2020-09-251-0/+9
|
* Turn IdMap into an extension trait.Nick Mathewson2020-09-231-65/+18
| | | | | Also, use the "right" (cyclic, potentially expensive) algorithm for stream IDs.
* Start implementing streams and circuit-level reactors.Nick Mathewson2020-09-211-3/+11
| | | | | | Also, revise nearly all of the circuit/channel interaction to actually send relay cells to the right place and do sensible things with them.
* Create a StreamID->Stream map type.Nick Mathewson2020-09-202-3/+77
| | | | | Also extract the shared part of CircMap and StreamMap into a new IdMap type.
* Add tests for tor_proto::util::ctNick Mathewson2020-09-181-0/+31
|
* Make client-demo launch a request to www.torproject.org:80Nick Mathewson2020-09-121-0/+3
|
* WIP: extend.Nick Mathewson2020-09-121-0/+3
|
* For circuits: Implement first hop create via create_fast.Nick Mathewson2020-09-111-0/+3
|
* proto: add minimal (raw) circuit support.Nick Mathewson2020-09-111-0/+6
| | | | | This is about enough to make a circuit, send a create_fast cell, and get a created_fast cell back.
* Implement most of client-side channel cert validation.Nick Mathewson2020-09-091-14/+2
|
* Work on client channel handshake: mostly done, except for verificationNick Mathewson2020-09-091-1/+1
|
* proto: small err cleanupsNick Mathewson2020-09-061-23/+20
|
* tor-proto: Simplify ct::lookup API.Nick Mathewson2020-05-101-8/+5
|
* Document most of tor-protoNick Mathewson2020-05-092-2/+36
| | | | (except for the worst parts that need refactoring the most)
* Fresh git repository for work on "arti"Nick Mathewson2020-05-072-0/+70
Arti is a rust tor implementation. It's project I've been working on for a few months now, in weekends and in spare time. It doesn't speak the tor protocol yet, and it doesn't connect to the network at all. It needs much more documentation and testing, but I'm just about ready to show it to others. See the README.md for a description of what is there and what isn't.