Commit Graph

26 Commits

Author SHA1 Message Date
Nick Mathewson 29050c2555 Refactor DataStream constituents a bit.
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.
2021-03-09 13:11:59 -05:00
Nick Mathewson 302653977d Bump dependencies with "cargo upgrade" 2021-03-06 08:55:13 -05:00
Nick Mathewson 2f81e8dd34 Remove use of unwrap() in tor-client. 2021-03-04 11:37:14 -05:00
Nick Mathewson 8c31418500 Port to work with tokio or async-std.
This is fairly ugly and I think I'll need to mess around with the
feature configuration a while until we get something that's pleasant
to develop with.  This still seems like a good idea, though, since
we _will_ need to be executor-agnostic in the end, or we'll have no
way to handle wasm or embedded environments.

Later down the road, we'll probably want to use futures::Executor or
futures::Spawn more than having global entry points in
tor_rtcompat.  That would probably make our feature story simpler.

Tokio is the default now, since tokio seems to be more heavily used
for performance-critical stuff.

This patch breaks tests; the next one will fix them, albeit
questionably.
2021-03-02 11:55:09 -05:00
Nick Mathewson b8956b6bd8 Move .onion check into TorClient. 2021-02-25 15:01:54 -05:00
Nick Mathewson cf474e17ec Clean-ups for documentations and lints in tor-client 2021-02-25 14:55:48 -05:00
Nick Mathewson 5da9186d31 Use a ConnectPref type for TorClient::connect, simplify APIs a bit, doc some. 2021-02-25 14:47:43 -05:00
Nick Mathewson 920e5036cb Restore code in proxy.rs so that socks timeout errors work again
This isn't pretty, since it now has to use anyhow::downcast_ref().
I've noted a TODO about maybe not using anyhow::Error for this case.
2021-02-25 13:54:05 -05:00
Nick Mathewson 7133b9900b Start refactoring the tor-client crate.
This commit splits the proxy and client code into a proper module,
and keeps a stripped down version of the main.rs file.
2021-02-25 13:49:04 -05:00
Nick Mathewson 568567c5e0 Update to latest futures, once_cell 2021-02-23 15:54:29 -05:00
Nick Mathewson ab9d4a2229 Update some dependencies. 2021-02-19 09:39:23 -05:00
Nick Mathewson afdcd69e03 Make first-level directory retry logic configurable. 2021-02-17 11:55:39 -05:00
Nick Mathewson d8d2c0f79c Make our initial bootstrap retry schedule configurarable 2021-02-17 11:25:57 -05:00
Nick Mathewson ddf994acc5 Add support to override network parameters in the configuration. 2021-02-16 13:29:46 -05:00
Nick Mathewson 94901ec355 Apply "deny_unknown_fields" to configuration types. 2021-02-12 11:26:00 -05:00
Nick Mathewson d8c1e7f0cf Implement storage-directory configuration.
This affects the cache_dir and the as-yet-unused state_dir.  It uses
the shellexpand and directories crates so that the default values
can be constant strings that use variables to refer to the right
default locations.
2021-02-12 10:54:24 -05:00
Nick Mathewson 32c857f71a Add comments to default config files 2021-02-11 14:09:39 -05:00
Nick Mathewson aeb410b915 Make authorities and fallbacks configurable.
This commit adds configuration options for these values, with the
right defaults, and uses those options instead of built-in functions
to set them.

We also remove the function to extract information from chutney
directories: now that arti is configurable, it can be chutney's job
to make its own network configurations.
2021-02-11 13:08:46 -05:00
Nick Mathewson 59fb158cc2 Merge branch 'main' of gitlab.torproject.org:/tpo/core/arti 2021-02-10 19:25:30 -05:00
Nick Mathewson e1c3f550d8 upgrade a few dependencies 2021-02-10 18:23:38 -05:00
Nick Mathewson bf64b335e1 Add a test to make sure defaults are parseable. 2021-02-10 15:00:21 -05:00
Nick Mathewson c35f72082d Move defaults into a toml file. 2021-02-10 14:33:55 -05:00
George Kadianakis bd4169e7d2 Send back the right SOCKS reply in case of a timeout 2021-02-06 00:11:37 +02:00
Nick Mathewson b3ae88cf70 Whoops, we were using 9150 for now. 2021-02-02 13:41:20 -05:00
Nick Mathewson 66ffa44512 Initial support for configuration from file and/or command-line. 2021-02-02 13:26:02 -05:00
Nick Mathewson 6f28f7dea5 Rename client-demo to tor-client. 2021-02-02 09:27:38 -05:00