summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | Remove try_lock from StorageHandle.Nick Mathewson2021-10-202-8/+2
| | | |
| * | | Replace the return type of StorageMgr::try_lock with a tristateNick Mathewson2021-10-208-46/+86
| | | | | | | | | | | | | | | | | | | | It's useful to know now only if we now have the lock, but also if we just got it for the first time.
| * | | Initial work on periodically reloading state.Nick Mathewson2021-10-194-28/+54
| | | | | | | | | | | | | | | | | | | | We can use this in the case where we don't get the lock on the state file, because another process is running.
| * | | On startup, try to lock the state file, and log whether we succeed.Nick Mathewson2021-10-191-1/+9
| | | | | | | | | | | | | | | | | | | | Previously we'd try to grab the lock the first time we wrote to the file.
* | | | fallbackdir: Regenerate list for October 2021David Goulet2021-10-211-881/+870
| |/ / |/| | | | | | | | | | | | | | Closes #200 Signed-off-by: David Goulet <[email protected]>
* | | Remove unused d_pre from DiffResult.Nick Mathewson2021-10-201-24/+15
| | |
* | | Implement the "request_loyalty" configuration optionNick Mathewson2021-10-191-2/+1
| | |
* | | Fix most warnings from nightly.Nick Mathewson2021-10-1911-21/+24
| | | | | | | | | | | | (One represents code that I forgot to write.)
* | | Fix a broken rustdoc link.Nick Mathewson2021-10-191-1/+1
| | |
* | | tor-client/examples: add `hyper` exampleeta2021-10-193-2/+253
| | | | | | | | | | | | | | | | | | | | | 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.
* | | Also implement tokio Async{Read,Write} on Data{Reader,Writer}.Nick Mathewson2021-10-191-5/+31
| | | | | | | | | | | | | | | | | | | | | | | | This will let callers use the tokio traits on these types too, if they call `split()` on the DataStream. (Tokio also has a `tokio::io::split()` method, but it requires a lock whereas `DataStream::split()` doesn't.)
* | | Add a little documentation about when you'll need the tokio trait.Nick Mathewson2021-10-191-0/+7
| | |
* | | Merge remote-tracking branch 'origin/mr/97'Nick Mathewson2021-10-194-1/+40
|\ \ \
| * | | tor-proto: implement tokio Async{Read, Write} traits conditionallyeta2021-10-194-1/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | Move TorClientBuilder into tor_client::config, for consistency.Nick Mathewson2021-10-193-61/+62
| | | |
* | | | Make elements of TorClientConfig private.Nick Mathewson2021-10-193-18/+15
|/ / /
* / / tor-client: refactor TorClient::bootstrap's args into a config objecteta2021-10-199-30/+97
|/ / | | | | | | | | | | | | | | | | | | | | | | | | 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)
* | Fix some typos in comments.Nick Mathewson2021-10-194-6/+6
| | | | | | | | Also, tell the "typos" tool to ignore Cargo.lock.
* | Reverse two swapped log messagesNick Mathewson2021-10-191-2/+2
| |
* | Improve logging when trying to get the lock on the directory cache.Nick Mathewson2021-10-191-3/+20
| | | | | | | | | | | | Previously we'd say that we were "waiting for the other process to bootstrap" even if it was already bootstrapped: and we wouldn't actually declare success when it was done.
* | Remove Guard::get_relay(); use Guard::guard_id().get_relay().Nick Mathewson2021-10-191-12/+4
| | | | | | | | | | | | | | | | | | The `get_relay` function was confusing, since it would return None if the relay was present, but wasn't actually a guard. We only used it in one place, and in that one place we used it wrong, leading to a panic bug. Fixes #193.
* | Upgrade to latest chrono; update cargo_audit.shNick Mathewson2021-10-192-34/+35
| | | | | | | | | | | | | | | | | | | | | | | | Thanks to the chrono update, we no longer include an obsolete/vulnerable version of the `time` crate. Unfortunately, it turns out that chrono has the same trouble as `time`: it, too, looks at the environment via localtime_r, and the environment isn't threadsafe. One step forward, one step back. At least the underlying issue is one that lots of people seem to care about; let's hope they come up with a solution.
* | Remove special-case for ipv6 in is_valid_hostnameNick Mathewson2021-10-181-10/+2
| |
* | Use a proper RFC5737 address in tests.Nick Mathewson2021-10-181-2/+2
| |
* | Add the "clock" feature to chrono in netdoc.Nick Mathewson2021-10-181-1/+1
| | | | | | | | | | | | This seems to fix a bug when running cargo check on netdoc individually. Reported by @janimo
* | Move hostname enforcement into TorAddr.Nick Mathewson2021-10-182-97/+132
| |
* | Change how we connect to target addresses.Nick Mathewson2021-10-185-9/+262
| | | | | | | | | | | | | | Now we all both address:port, (address, port), and more. We also allow SocketAddr and IpAddr, but only via a trait labeled as "Dangerous".
* | Remove "internal" address checking to its own function.Nick Mathewson2021-10-181-38/+45
| |
* | Merge branch 'reject_bad_hostnames'Nick Mathewson2021-10-187-3/+146
|\ \
| * | Rename is_localhost to allow_local_addrs, and apply it to IPs too.Nick Mathewson2021-10-183-8/+13
| | |
| * | Formatting fixesNeel Chauhan2021-10-062-5/+9
| | |
| * | Make is_valid_hostname() globalNeel Chauhan2021-10-061-44/+45
| | |
| * | Add unit tests for hostnamesNeel Chauhan2021-10-061-4/+34
| | |
| * | Introduce ClientConfig for is_localhost config parameterNeel Chauhan2021-10-067-7/+59
| | |
| * | Hostname corrections and add IPv6 hostname validation supportNeel Chauhan2021-10-061-5/+15
| | |
| * | Reject bad hostnames and internal addresses in ArtiNeel Chauhan2021-10-061-0/+39
| | |
* | | Commit change to cargo.lock.Nick Mathewson2021-10-181-1/+0
| | |
* | | Do not use downcast_ref, use tor-client error.Jani Monoses2021-10-181-8/+6
| | |
* | | Remove anyhow usage in tor-client.Jani Monoses2021-10-184-5/+65
| | |
* | | Remove useless into() conversions caught by clippy.Jani Monoses2021-10-185-28/+30
| | |
* | | Update Cargo.lock.Jani Monoses2021-10-181-1/+1
| | |
* | | Remove anyhow dependency from tor-dirmgr.Jani Monoses2021-10-184-13/+62
| | |
* | | Use unwrap in tests.Jani Monoses2021-10-181-9/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | For now, this avoids having to separately handle AuthorityBuilderError, DirMgrConfigBuilderError, DownloadScheduleConfigBuilderError, NetworkConfigBuilderError and FallbackDirBuilderError when anyhow is not used. Turn off a clippy warning.
* | | Use append in place of extend_from_slice in DataReaderImpl::add_data.Nick Mathewson2021-10-171-2/+2
| | | | | | | | | | | | Suggested by @cheako.
* | | Add in first cargo-audit exception, as an example.Nick Mathewson2021-10-171-0/+19
| | |
* | | Add an ignored cargo-audit warning, with appropriate documentationNick Mathewson2021-10-171-2/+35
| | |
* | | Move "cargo audit" invocation into a script.Nick Mathewson2021-10-172-1/+9
| | |
* | | Turn off default-features in chrono where possible.Nick Mathewson2021-10-172-2/+2
| | |
* | | Add a cast to correct a type error about WSAEMFILENick Mathewson2021-10-151-1/+7
| | |
* | | Update const-oid: the previous version has been yanked.Nick Mathewson2021-10-151-2/+2
| | |