Nick Mathewson
f3dc66d964
Merge branch 'share_state'
2021-10-21 13:34:38 -04:00
Nick Mathewson
7b6ed9dab6
Replace the return type of StorageMgr::try_lock with a tristate
...
It's useful to know now only if we now have the lock, but also if we
just got it for the first time.
2021-10-20 09:37:53 -04:00
Nick Mathewson
fc1556461f
Fix a broken rustdoc link.
2021-10-19 16:07:13 -04:00
eta
e4a3ae492a
tor-client/examples: add `hyper` example
...
The new `hyper` tor-client example demonstrates integrating arti with the
popular Rust `hyper` HTTP library by implementing a custom Hyper "connector"
(a type that can initiate connections to HTTP servers) that proxies said
connections via the Tor network.
2021-10-19 15:59:02 -04:00
Nick Mathewson
f5a7916717
Merge remote-tracking branch 'origin/mr/97'
2021-10-19 15:39:18 -04:00
Nick Mathewson
ed6ca1bc18
Move TorClientBuilder into tor_client::config, for consistency.
2021-10-19 15:34:27 -04:00
Nick Mathewson
d245147c7f
Make elements of TorClientConfig private.
2021-10-19 15:29:36 -04:00
eta
ccd1d36e90
tor-proto: implement tokio Async{Read, Write} traits conditionally
...
futures::io::AsyncRead (and Write) isn't the same thing as tokio::io::AsyncRead,
which is a somewhat annoying misfeature of the Rust async ecosystem (!).
To mitigate this somewhat for people trying to use the `DataStream` struct with
tokio, implement the tokio versions of the above traits using `tokio-util`'s
compat layer, if a crate feature (`tokio`) is enabled.
2021-10-19 19:59:29 +01:00
eta
b42a6712c9
tor-client: refactor TorClient::bootstrap's args into a config object
...
The three arguments TorClient::bootstrap requires by way of configuration
have been factored into a new TorClientConfig object.
This object gains two associated functions: one which uses `tor_config`'s
`CfgPath` machinery to generate sane defaults for the state and cache
directories, and one that accepts said directories in order to create a
config object with those inserted.
(this commit was inspired by trying to use arti as a library and being somewhat
overwhelmed by the amount of config stuff there was to do :p)
2021-10-19 19:59:25 +01:00
Nick Mathewson
89d1fb1767
Initial work on periodically reloading state.
...
We can use this in the case where we don't get the lock on the
state file, because another process is running.
2021-10-19 11:26:22 -04:00
Nick Mathewson
6b26ae20a1
On startup, try to lock the state file, and log whether we succeed.
...
Previously we'd try to grab the lock the first time we wrote to the
file.
2021-10-19 10:41:44 -04:00
Nick Mathewson
36353aacd8
Fix some typos in comments.
...
Also, tell the "typos" tool to ignore Cargo.lock.
2021-10-19 10:40:32 -04:00
Nick Mathewson
45fb7022df
Remove special-case for ipv6 in is_valid_hostname
2021-10-18 14:56:12 -04:00
Nick Mathewson
b63fee25b2
Use a proper RFC5737 address in tests.
2021-10-18 14:53:01 -04:00
Nick Mathewson
0750199a8c
Move hostname enforcement into TorAddr.
2021-10-18 14:32:05 -04:00
Nick Mathewson
5ae433c747
Change how we connect to target addresses.
...
Now we all both address:port, (address, port), and more.
We also allow SocketAddr and IpAddr, but only via a trait
labeled as "Dangerous".
2021-10-18 14:03:38 -04:00
Nick Mathewson
26aa0f8e25
Remove "internal" address checking to its own function.
2021-10-18 12:28:50 -04:00
Nick Mathewson
a91884389d
Merge branch 'reject_bad_hostnames'
2021-10-18 12:19:12 -04:00
Nick Mathewson
36febf7c14
Rename is_localhost to allow_local_addrs, and apply it to IPs too.
2021-10-18 12:07:18 -04:00
Jani Monoses
12da3f0771
Remove anyhow usage in tor-client.
2021-10-18 13:43:01 +03:00
Nick Mathewson
33ba697b5d
Notify guard manager on network change and state flush.
2021-10-10 12:38:50 -04:00
Nick Mathewson
58355d7d54
Re-export configuration types from tor-client.
2021-10-09 17:30:06 -04:00
Nick Mathewson
af7c9d5a0b
enable checked_conversions lint.
2021-10-09 16:53:13 -04:00
Neel Chauhan
2e4f5e2d10
Formatting fixes
2021-10-06 12:32:17 -07:00
Neel Chauhan
31cf7e4d56
Make is_valid_hostname() global
2021-10-06 12:32:17 -07:00
Neel Chauhan
0e98e4a033
Add unit tests for hostnames
2021-10-06 12:32:17 -07:00
Neel Chauhan
e76988738a
Introduce ClientConfig for is_localhost config parameter
2021-10-06 12:32:17 -07:00
Neel Chauhan
f4caae3569
Hostname corrections and add IPv6 hostname validation support
2021-10-06 12:32:17 -07:00
Neel Chauhan
0edafc76fa
Reject bad hostnames and internal addresses in Arti
2021-10-06 12:32:17 -07:00
Nick Mathewson
557a0ff40b
Move all crates into a `crates` subdirectory.
...
This will cause some pain for now, but now is really the best time
to do this kind of thing.
2021-08-27 09:53:09 -04:00