Commit Graph

542 Commits

Author SHA1 Message Date
Nick Mathewson dc301094fd Use anyhow in tor-circmgr and tor-chanmgr 2020-11-11 10:23:29 -05:00
Nick Mathewson e417a9dc13 Use Infallible in tor-netdoc. 2020-11-11 10:09:16 -05:00
Nick Mathewson ede252c1d3 Use anyhow for error management in client-demo. 2020-11-11 10:06:47 -05:00
Nick Mathewson 136c536123 Mark tor_netdoc::err::Pos as Send and Sync
I am about 99% sure this is safe: the pointer that this type
contains is never dereferenced, and is only compared to the bounds
of a string later on.
2020-11-11 10:00:48 -05:00
Nick Mathewson c440f4d476 Use bitflags crate to represent RouterFlags. 2020-11-11 09:33:53 -05:00
Nick Mathewson af16ec18a3 update some dependencies 2020-11-11 09:14:26 -05:00
Nick Mathewson 4d24fff9c0 Upgrade dependencies 2020-11-10 12:27:10 -05:00
Nick Mathewson 9c7ed1fdde upgrade a few packages. 2020-11-05 16:56:29 -05:00
Nick Mathewson 44cbe2f89b Add some tor-sockproto tests 2020-11-05 11:20:49 -05:00
Nick Mathewson fee895b33a Document tor-socksproto 2020-11-04 16:15:49 -05:00
Nick Mathewson 2e1f510225 rename tor_socks -> tor_socksproto. 2020-11-04 15:01:25 -05:00
Nick Mathewson c0f9d94b34 Refactor DataStream to be splittable, and have internal locking.
This lets me fix the deadlock in the proxy code.
2020-11-04 12:10:09 -05:00
Nick Mathewson 954108e0ee stream: Update to enable more fine-grained locking
Not sure this is quite right, or quite deadlock free, but it lets
us read/write cells on a stream we haven't locked.
2020-11-04 11:50:23 -05:00
Nick Mathewson 3289f2d44c Add a (broken) SOCKS proxy to client-demo.
This is broken because it hits a deadlock when two tasks at once
want to use a DataStream for reading and writing.
2020-11-04 11:34:48 -05:00
Nick Mathewson deb160ad54 Add a SOCKS protocol implementation. Needs tests and docs 2020-11-04 11:33:20 -05:00
Nick Mathewson 7d5829b0a8 netdir: remove interior mutability. 2020-11-04 11:32:12 -05:00
Nick Mathewson 6120a2ceac circmgr: Make sure circmgr can be shared among threads 2020-11-04 11:31:39 -05:00
Nick Mathewson d658532f84 chanmgr: Make sure chanmgr can be shared among threads 2020-11-04 11:30:57 -05:00
Nick Mathewson 7128c14f49 Make 'netdir' no longer a field in circmgr. 2020-11-02 14:25:49 -05:00
Nick Mathewson 80b70881af Add a tiny bit of cleanup logic to tor-circmgr 2020-11-02 14:21:14 -05:00
Nick Mathewson 8ab8c52193 Document tor-circmgr 2020-11-02 14:11:31 -05:00
Nick Mathewson 7d2b2391ab Implement rudimentary circuit-manager functionality
This code is meant to "get or launch a circuit as appropriate."
It's super dodgy, but it is probably good enough for a first pass.
2020-11-02 11:54:02 -05:00
Nick Mathewson d9dafa0a28 Add a new circuit-manager crate and move path selection there. 2020-11-02 10:44:31 -05:00
Nick Mathewson f6b5386ee7 Add missing testing.rs file 2020-10-30 16:30:44 -04:00
Nick Mathewson fbbc14d4fb Tests for tor-chanmgr. 2020-10-30 15:45:53 -04:00
Nick Mathewson 8d8ce482c9 chanmgr: don't return closing channels. 2020-10-30 09:51:52 -04:00
Nick Mathewson d0a18a65c5 Use chanmgr in client-demo 2020-10-30 09:51:52 -04:00
Nick Mathewson f399851bcf Implement a channel-manager type to get or launch channels on request. 2020-10-30 09:51:31 -04:00
Nick Mathewson 67e39450fb Remove duplication of ipaddr argument in handshake. 2020-10-29 17:03:12 -04:00
Nick Mathewson 0db18afa39 tor-cell: In netinfo, unspecified addresses are None. 2020-10-29 17:03:12 -04:00
Nick Mathewson f8d526a85a Function to check whether a channel matches a target. 2020-10-29 17:03:12 -04:00
Nick Mathewson 4cf972d69b tor-proto API: Use new_ref, not clone.
Semantically, cloning a Channel or Circuit is actually increasing an
internal reference count.  We should name the functions to reflect
that, to be more explicit about what we're doing.
2020-10-29 12:11:36 -04:00
Nick Mathewson 06675c180c update the TODO 2020-10-27 14:58:34 -04:00
Nick Mathewson 5989b843cc Add a simple test for stream creation. 2020-10-27 14:40:23 -04:00
Nick Mathewson 705d9c061f Add a test for extending a circuit with ntor. 2020-10-27 14:26:22 -04:00
Nick Mathewson 911185ec38 circuit: test meta-cell receiving 2020-10-27 13:41:31 -04:00
Nick Mathewson b90ca2acd7 Downgrade an XXXXM3 message. 2020-10-27 13:11:57 -04:00
Nick Mathewson f8e1e6976f Unify interface for detecting stream close. 2020-10-27 13:09:17 -04:00
Nick Mathewson 4cded7a05a Add a test for sending a cell. 2020-10-27 13:03:39 -04:00
Nick Mathewson 8f5d239c21 Expand test to handle building circuit with ntor. 2020-10-27 12:23:18 -04:00
Nick Mathewson 483425ba4b Make a test for create_firsthop_fast. WOW that was hard. 2020-10-27 11:55:24 -04:00
Nick Mathewson dcf0936396 Make circuit reactors also have a run_once() method for testing. 2020-10-27 11:54:11 -04:00
Nick Mathewson 5bd85e57ec Add a fake, reactorless channel, for use in testing circuits 2020-10-27 10:16:05 -04:00
Nick Mathewson e2f7fe3827 Remove use of Cell<> in tor_proto.
I was confused about what this was for, I guess.
2020-10-27 10:14:28 -04:00
Nick Mathewson 94042b60b8 Rename CircIDRange to CircIdRange 2020-10-27 09:51:28 -04:00
Nick Mathewson ee9ad7f59d Run "cargo upgrade". 2020-10-26 14:56:06 -04:00
Nick Mathewson b93e4b76c8 Remove a bunch of dbg! calls. 2020-10-26 14:33:14 -04:00
Nick Mathewson a796f7bf6a Use event_listener to find out about sendme replenishment.
Previously we would fail if a sendme window was exhausted and two
tasks were waiting for it to be replenished at the same time.
2020-10-26 14:25:46 -04:00
Nick Mathewson 4348faff3c Resolve a bunch of XXXM3 comments in tor-proto. 2020-10-26 14:03:25 -04:00
Nick Mathewson 4d9c08669e Improve documentation in tor-proto 2020-10-26 13:08:46 -04:00