summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | 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
| | |
* | | arti: On startup, increase the NOFILE resource limit.Nick Mathewson2021-10-144-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The default soft limit is typically enough for process usage on most Unixes, but OSX has a pretty low default (256), which you can run into easily under heavy usage. With this patch, we're going to aim for as much as 16384, if we're allowed. Fixes part of #188.