summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* upgrade to newer version of config crate.Nick Mathewson2021-03-243-3/+3
|
* Move responsibility for knowing about TLS into tor_rtcompat.Nick Mathewson2021-03-2311-54/+232
| | | | Now we don't need runtime-specific stuff in tor-chanmgr.
* Refactor tokio implpementation in tor-rtcompat.Nick Mathewson2021-03-237-66/+134
| | | | | | | | | | | Now other crates don't need any 'ifdef tokio' code, since there are wrappers that implement 'futures' right. Technically, the 'futures' traits are in some ways less good than the tokio ones, but we need a consistent API if we want to support WASM someday and keep support for async_std. I'd rather hold out hope for a future version of futures::io working like tokio than to fix ourselves into the tokioverse forever.
* Add tests for correct incoming sendme handling.Nick Mathewson2021-03-222-5/+207
| | | | | | At this point I'm going to pause writing tor-proto tests for a little while and think about refactoring that could make these tests simpler. I'm doing way too much copy-paste here.
* Extend the begindir test to exchange data on the stream.Nick Mathewson2021-03-191-3/+44
|
* Introduce a helper to tor_proto::circuit testsNick Mathewson2021-03-191-44/+24
|
* Add a compatibility layer so we can upgrade rand_core.Nick Mathewson2021-03-1814-23/+122
| | | | | | dalek-crypto is stuck on rand_core 0.5.1, so we've been stuck too. This commit introduces a compatibility module so that we can wrap new rand_core instances to make them backward compatible.
* Move our command-line interface into a new crate called "arti".Nick Mathewson2021-03-1711-14/+42
| | | | Closes #106
* Add appropriate categories to some Cargo.toml files.Nick Mathewson2021-03-1710-0/+10
|
* Add the tor project as an author.Nick Mathewson2021-03-1722-22/+22
|
* Add keywords to each Cargo.tomlNick Mathewson2021-03-1722-1/+22
|
* Add a description field to all our Cargo.toml filesNick Mathewson2021-03-1722-0/+22
|
* Give it a homepage everyplace.Nick Mathewson2021-03-1722-0/+22
|
* Resolve unwrap() instances in tor-netdir.Nick Mathewson2021-03-163-8/+52
| | | | | This includes revising the pick_weighted() function to not panic if its inputs are above 2^64 in total.
* Change an unwrap() in llcrypto to an expect().Nick Mathewson2021-03-161-1/+1
|
* circuit: Add a test for a bad crypto handshake.Nick Mathewson2021-03-161-0/+13
|
* circuit: tests for different undesired responses to EXTEND.Nick Mathewson2021-03-161-3/+93
|
* circuit: improve errors on bad extended2Nick Mathewson2021-03-161-4/+11
|
* Refactor circuit reactor for testing.Nick Mathewson2021-03-161-1/+6
|
* Test for Channel::check_matchNick Mathewson2021-03-161-0/+39
|
* Bump a couple of depsNick Mathewson2021-03-133-3/+3
|
* Merge remote-tracking branch 'origin/mr/21'Nick Mathewson2021-03-122-7/+4
|\
| * Avoid a slice copy in send_relay_cell().George Kadianakis2021-03-122-7/+4
| | | | | | | | Convert slice to array in the parent function instead of copying.
* | Allow spaces in command-line arguments againNick Mathewson2021-03-121-1/+3
| |
* | Improve implementation of copy_interactiveNick Mathewson2021-03-121-11/+50
| | | | | | | | | | | | | | Previously we'd flush after every write. Now we only flush when the reader has nothing more to tell us. This way we can be sure that we're sending out the data as soon as we can, without leaving any cells partially filled unnecessarily.
* | Remove a couple of unused deps from tor-llcrypto.Nick Mathewson2021-03-101-2/+0
| |
* | Avoid most regex features.Nick Mathewson2021-03-102-11/+6
| |
* | Only enable the `config` features we are using.Nick Mathewson2021-03-102-2/+3
| | | | | | | | | | This saves us from a lot of extra backends, including an entire extra version of serde (!).
* | Cut down on tokio features.Nick Mathewson2021-03-101-1/+1
| |
* | Better management for END cells in streams.Nick Mathewson2021-03-106-27/+59
| |
* | Box the buffer in DataWriterImpl.Nick Mathewson2021-03-101-3/+2
| |
* | Remove now-unused methods from DataStream and its allies.Nick Mathewson2021-03-101-36/+0
| |
* | Use AsyncRead and AsyncWrite in tor-dirclientNick Mathewson2021-03-101-4/+8
| |
* | Treat StreamClosed as indicating no error.Nick Mathewson2021-03-101-3/+7
| | | | | | | | This is wrong, but less wrong than the other way around.
* | Use AsyncRead and AsyncWrite in our proxy implementationNick Mathewson2021-03-103-30/+38
| |
* | Make DataStream implement AsyncRead and AsyncWrite.Nick Mathewson2021-03-101-1/+27
| |
* | Implement AsyncWrite for DataWriter.Nick Mathewson2021-03-101-24/+155
| |
* | Revise DataReader to implement AsyncRead.Nick Mathewson2021-03-102-23/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The tricks I needed here turned out to be: * I needed to store the future returned by read_cell() while it is returning Poll::Pending. * Since the type of that future is secret, I needed to put it in a Box<dyn Future>. * But since that future holds a reference to the DataReader, that would create a self-referential structure if we tried to store the DataReader and the future at the same time. So instead, I had to make an enum() that either holds a DataReader directly, or holds the future that will give us back the DataReader when it's done. (I also had to change the read_cell() function so that it takes ownership of the DataReader, and returns it when it's finished.) (Daniel Franke explained how to do this.) * Finally, I couldn't figure out how to change the enum's type in-place, so I had to wrap it in an Option<>. (Daniel Franke says this isn't actually necessary.) I've noted a couple of places in the read code where I want to handle errors and closes more carefully.
* | Rearrange DataStream code a bit and add an internal layer of indirectionNick Mathewson2021-03-101-36/+56
| |
* | Make note_ended private on RawCellStream.Nick Mathewson2021-03-102-8/+18
| |
* | Move DataStream into its own module.Nick Mathewson2021-03-102-204/+212
| |
* | Move ResolveStream to its own module.Nick Mathewson2021-03-102-35/+42
| |
* | Implement From<tor_proto::Error> for std::io::ErrorNick Mathewson2021-03-101-0/+23
| |
* | Move RawCellStream into its own module.Nick Mathewson2021-03-102-86/+106
| |
* | Rename TorStream => RawCellStreamNick Mathewson2021-03-102-20/+20
| |
* | Refactor DataStream constituents a bit.Nick Mathewson2021-03-092-34/+94
| | | | | | | | | | | | | | | | | | These new (internal so far) APIs correspond more closely to what we'll need for AsyncRead and AsyncWrite. We also make write methods take a mutable reference to self, since that seems to be (closer to) what the AsyncRead/AsyncWrite code expects.
* | upgrade async-traitNick Mathewson2021-03-093-3/+3
| |
* | Bump dependencies with "cargo upgrade"Nick Mathewson2021-03-0614-25/+25
| |
* | Avoid unwrap() in llcrypto.Nick Mathewson2021-03-041-1/+1
| |
* | Avoid unwrap() in dirmgr.Nick Mathewson2021-03-042-3/+7
| |