summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Cargo.lock: v0.0.1 is now published.arti-v0.0.1Nick Mathewson2021-10-291-26/+26
|
* tor-persist: serde usage now requires derive feature.Nick Mathewson2021-10-291-2/+1
|
* Bump all crate versions to 0.0.1Nick Mathewson2021-10-2926-123/+123
|
* Remove alternative-name handling from exclude_contributors.txtNick Mathewson2021-10-291-4/+2
| | | | | | This doesn't actually do the right thing: it will make somebody get ignored completely for a release if they _only_ use their alternative name.
* thanks.sh: Remove tempdir on exit.Nick Mathewson2021-10-291-0/+2
|
* Fix shellcheck warnings in thanks.shNick Mathewson2021-10-291-3/+3
|
* Merge remote-tracking branch 'origin/mr/113'Nick Mathewson2021-10-292-0/+37
|\
| * Add an attempt at autogenerating contributor lists for releaseseta2021-10-292-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | Disclaimer: I have no idea what I'm doing when it comes to shell scripts. maint/thanks.sh autogenerates a list of contributors since a revision (that you pass it on the command line), intended to make the work of going through the shortlog a bit less manual. It can exclude contributors' names given in maint/exclude_contributors.txt, in order to filter out people who work for Tor, or who commit under more than one name.
* | Add a list_crates.py script, for help with foreach scripting.Nick Mathewson2021-10-291-0/+23
|/
* Typo fix in ChangelogNick Mathewson2021-10-291-1/+1
|
* Add a script to enforce topological sorting in workspace Cargo.tomlNick Mathewson2021-10-291-0/+91
|
* Update Cargo.lock in preparation for Arti 0.0.1 release.Nick Mathewson2021-10-291-71/+71
|
* Update README.md filesNick Mathewson2021-10-291-6/+10
|
* Begin a CHANGELOG.md for Arti 0.0.1Nick Mathewson2021-10-291-0/+84
|
* Merge remote-tracking branch 'origin/mr/112'Nick Mathewson2021-10-294-31/+130
|\
| * Improve docs of more (potentially re-exported) arti-client typeseta2021-10-294-31/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most of the structs in `arti-client` have example code now, to give a clearer idea of how they're used. Annoyingly, a lot of the types exposed in `arti-client` are actually re-exports, which makes documentation a bit harder: example code that references other parts of `arti-client` can't actually be run as a doctest, since the crate it's in is a dependency of `arti-client`. We might be able to fix this in future by doing the documentation in `arti-client` itself, but rustdoc seems to have some weird behaviours there that need to be investigated first (for example, it seems to merge the re-export and original documentation, and also put the re-export documentation on the `impl` block for some reason). For now, though, this commit just writes the docs from the point of view of an `arti-client` consumer, removing notes specific to the crate in which they're defined. It's not ideal, but at least the end user experience is decent.
* | Improve some documentation linksNick Mathewson2021-10-296-13/+15
|/ | | | | | | | | Instead of putting a fully qualified name in the text, in most cases we should just use the short name of the type or function we're referring to. In other words, instead of saying [`crate::module::Foo`], we should typically say [`Foo`](crate::module::Foo).
* Try writing a bit more documentation for configuration types.Nick Mathewson2021-10-283-11/+62
|
* Use correct link for AsyncWriteExt::flushNick Mathewson2021-10-281-1/+1
|
* Typo fix in an expect() message.Nick Mathewson2021-10-281-1/+1
|
* Encourage the use of TorClient::clone().Nick Mathewson2021-10-281-1/+2
|
* DataStream: document the importance of flush().Nick Mathewson2021-10-281-3/+12
|
* arti-client example: Try to make the comments a little more clear.Nick Mathewson2021-10-281-6/+10
| | | | | I'm not 100% sure this is better, but it might help the user understand how Arti works a bit better.
* Update README.md filesNick Mathewson2021-10-282-19/+95
|
* Add removed paragraphs to Architecture.mdNick Mathewson2021-10-281-0/+16
|
* Merge remote-tracking branch 'origin/mr/111'Nick Mathewson2021-10-283-16/+146
|\
| * Improve top-level arti-client documentation, add example codeeta2021-10-283-16/+146
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This overhauls the top-level `arti-client` documentation significantly: - the "Using arti-client" section walks the user through all of the necessary steps to initiate a Torified TCP connection, and then provides a code example - this example is also available as `examples/readme.rs`; it's not run as a doctest, since it involves connecting to Tor - a "More advanced usage" subheading provides information about stream isolation (and can potentially be used for other interesting features once we get them). - a new "Multiple runtime support" section was added to explain the purpose and usage of the `tor-rtcompat` crate - the section on design and privacy considerations was removed; this is probably okay to keep in a README, but users of the crate aren't going to be interested in this (at least I don't think) (also, the doc comment for `arti_client::Error` was fixed to make actual sense)
* | Oops: add missing data filesNick Mathewson2021-10-282-0/+109
| |
* | tor-dirmgr: tests for GetMicrodescsStateNick Mathewson2021-10-281-0/+100
| |
* | tor-dirmgr: tests for download schedules.Nick Mathewson2021-10-281-0/+23
| |
* | tor-chanmgr: remove PendingChanError as unnecessary.Nick Mathewson2021-10-282-37/+6
| |
* | Merge branch 'test_dirmgr'Nick Mathewson2021-10-285-3/+515
|\ \
| * | tor-dirmgr: Test for GetCertsStateNick Mathewson2021-10-284-5/+253
| | |
| * | tor-dirmgr: Tests for GetConsensusState.Nick Mathewson2021-10-282-0/+242
| | | | | | | | | | | | | | | | | | This test uses a consensus that I've copied from tor-netdoc/testdata. I would include it directly, but I think that will cause trouble when it comes time to run "cargo package".
| * | tor-dirmgr::state: Mock the view of current time.Nick Mathewson2021-10-281-3/+25
| |/ | | | | | | | | This will let us test the state processing code without having to give it up-to-date directory objects.
* | Fix clippy warnings in tests.Nick Mathewson2021-10-281-5/+5
| |
* | Merge remote-tracking branch 'origin/mr/110'Nick Mathewson2021-10-281-136/+233
|\ \
| * | tor_circmgr: Refactor and re-enable build_timeout() testNick Mathewson2021-10-271-136/+233
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous version of this test used the old, racy version of wait_for (see #149). The new version is refactored so that simulated time is only allowed to advance after each step is done, so that we can actually be sure that each step in the process will happen as it should. In order to get the time-advances to proceed properly, and avoid polluting state between tests, I've had to introduce some machinery to encode the proper amount for time to advance. It isn't something I'd want to use for a whole bunch of tests, but for just one set, it's fine. These tests now pass reliably for me. I wonder if a discrete-event-simulation approach (hello, Shadow) would let us write tests like these to our hearts' content?
* | Mark request_retried test as ignoredNick Mathewson2021-10-281-0/+1
| |
* | move integration tests to scriptsTrinity Pointard2021-10-285-8/+49
|/
* Small FAQ update.Nick Mathewson2021-10-271-1/+1
|
* Add missing entries to Architecture.mdNick Mathewson2021-10-271-0/+5
|
* Upgrade to fslock version 0.2Nick Mathewson2021-10-275-7/+6
| | | | | This version makes all locks per-handle rather than per-process, by moving from lockf() to flock() on unix.
* Improve and future-proof the `arti` CLIeta2021-10-278-171/+224
| | | | | | | | | | | | | | | | | | | | | | | | This switches out `arti`'s argument-parsing library with `clap`, which is a lot more featureful (and very widely used within the Rust ecosystem). We also now use a lot of `clap`'s features to improve the CLI experience: - The CLI now expects a subcommand (currently, either "help", or "proxy" for the existing SOCKS proxy behaviour). This should let us add additional non-SOCKS-proxy features to arti in future. - `clap` supports default values determined at runtime, so the way the default config file is loaded was changed: now, we determine the OS-specific path for said file before invoking `clap`, so the help command can show it properly. - The behaviour of `tor_config` was also changed; now, one simply specifies a list of configuration files to load, together with whether they're required. - That function also way overused generics; this has been fixed. - Instead of using the ARTI_LOG environment variable to configure logging, one now uses the `-l, --log-level` CLI option. (The intent is for this option to be more discoverable by users.) - The `proxy` subcommand allows the user to override the SOCKS port used on the CLI without editing the config file.
* Update our disclaimers and limitations sections.Nick Mathewson2021-10-2713-92/+38
|
* Add Futureproof<T> wrapper type, use for GuardDisabled enumeta2021-10-273-7/+77
| | | | | | | | | | | The Futureproof<T> type lets you serialize and deserialize types whose representations might change (most useful for enums that might grow additional variants). It uses #[serde(untagged)] to accomplish this. This gets used in order to make the `disabled` field of `Guard` more robust against future guard disablement reasons being added. A test was also added to verify correct behaviour of the new type.
* Add #[serde(flatten)] HashMap fields to serializable objectseta2021-10-274-6/+29
| | | | | | | | | | As per arti#175, we'd like to be able to handle newer Arti versions storing additional state in the persisted state files, without dropping this data on the floor when we write out changes to these files. Use the #[serde(flatten)] mechanism to achieve this, by adding catch-all HashMap<String, JsonValue> fields to all structs that are at risk of this happening to them.
* Fix some clippy-nightly warnings.Nick Mathewson2021-10-264-12/+18
| | | | These are my fault; I merged the wrong version of !102. :p
* Clarify that new SleepProvider methods are testing-only.Nick Mathewson2021-10-261-0/+9
|
* circmgr: Split request_timeout test into two.Nick Mathewson2021-10-261-0/+7
| | | | | | | There seems to be some issue here with the new WaitFor code, where using the same MockSleepProvider with both of these wait_for() calls gives questionable behavior under some circumstances (like when running under Tarpaulin with the wrong set of flags).