summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Use FuturesUnordered, not SelectAll<Once<...>>Nick Mathewson2021-06-142-12/+11
| | | | Closes #124
* Enormous tor-circmgr rewrite.Nick Mathewson2021-06-1411-435/+1662
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As with the tor-chanmgr code, the circuit manager is now implemented using an AbstractCircMgr type that uses traits to abstract the particular behavior of other types that it uses. (Specifically: circuits, building circuits, and telling whether one circuit usage is compatible with another.) Abstracting out the dependencies in this ways makes it possible to test the circuit manager without having to actually build real circuits. This commit also introduces new behavior for handling pending circuit requests. Upon getting a new request, first we check to see if there's an existing circuit we can use. If there isn't, we look for pending circuits and wait for them. If there aren't any pending circuits we can use, we launch one or more, and wait for them. So far, that's the same as the old behavior. But here's a change: if, while we are waiting for some pending circuits, a different circuit is completed, and it's one we could use, then the task that was building _that_ circuit will tell us: "please look at this circuit". This gives us better changes of getting a usable circuit fast. Minor changes: * The Error type in CircMgr no longer uses anyhow; several errors have been simplified. * We've gotten more formal about the relationship between circuit usage and target usage.
* Implement Debug for ClientCirc and Channel.Nick Mathewson2021-06-142-0/+20
|
* Make a few error types implement CloneNick Mathewson2021-06-143-7/+31
| | | | | | | To make this work we have to wrap std::io::Error in an Arc. The benefit of having these errors implement Clone is that we can provide the same Error in response to multiple requests when they are all waiting on the same operation.
* linkspec: Define owned variants of ChanTarget and CircTarget.Nick Mathewson2021-06-135-65/+139
|
* add rustdoc link to readmeNick Mathewson2021-06-091-0/+2
|
* Remove accidentally committed graph files.Nick Mathewson2021-06-083-270/+0
|
* Add an XXXX to path.rsNick Mathewson2021-06-041-0/+1
|
* Missing experimental-api imports.Nick Mathewson2021-06-031-1/+3
|
* cirmgr: Move usage-related code into a submodule, and refactor.Nick Mathewson2021-06-023-137/+168
|
* Add a warning comment about truncate-and-reextend.Nick Mathewson2021-05-281-0/+5
|
* tor-proto: change internal meta-handler API for error-proofingNick Mathewson2021-05-282-67/+108
| | | | | | | The previous API required the caller to check that the meta-cell it got was coming from the right hop; the new API requires the caller to say which hop it expects to get a cell from. With this change, it's not possible to omit the correct-hop check.
* Add noop_method_call warning.Nick Mathewson2021-05-2725-0/+25
| | | | | | This would have saved ahf and me a lot of confusion in debugging a situation where we were cloning a reference of a type that didn't implement Clone.
* Use the "typos" tool to fix some spellingNick Mathewson2021-05-2626-30/+30
|
* Use thiserror to simplify tor-unitsNick Mathewson2021-05-262-26/+7
|
* Add a Display test in tor-unitsNick Mathewson2021-05-261-0/+6
|
* Add a script with the command I've been using for coverageNick Mathewson2021-05-262-0/+4
|
* Try some tweaks to .gitlab-ci.ymlNick Mathewson2021-05-251-7/+8
| | | | | | | | | | The "--all" flag is deprecated in favor of "--workspace", which isn't actually needed here. "--all-features" catches a few things that we want to make sure we're catching. Let's try out cargo doc and make sure that passes too.
* Update hs_ntor code.Nick Mathewson2021-05-251-4/+6
| | | | | Work with the latest version of the crypto crate, and suppress the unreachable_pub warning.
* Enable cargo_common_metadata warning.Nick Mathewson2021-05-2525-3/+27
|
* Add automatically generated README.md files to each crate.Nick Mathewson2021-05-2524-0/+1145
|
* Module docs for remaining cratesNick Mathewson2021-05-255-13/+53
|
* Replace the last user of caret_enum with caret_int.Nick Mathewson2021-05-254-301/+74
| | | | This lets us remove caret_enum entirely.
* Remove extern crate declarations.Nick Mathewson2021-05-251-1/+0
| | | | They're no longer needed for macro use in Rust 2018.
* Use "use" in tor_netdir, remove needless qualifications.Nick Mathewson2021-05-251-7/+8
|
* tor-netdir no longer uses caret.Nick Mathewson2021-05-251-1/+0
|
* Re-add a percentage type wrapper.Nick Mathewson2021-05-253-12/+71
| | | | | | It turns out that when we don't have a percentage type associated with a value, it is far too easy to forget to divide by 100 before using it as a fraction.
* fixup! Revert change to type of NetParams value.Nick Mathewson2021-05-251-4/+0
|
* Remove a needless lifetime.Nick Mathewson2021-05-251-1/+1
|
* Remove unused derive_more.Nick Mathewson2021-05-251-5/+0
|
* tor-units: warn about uninhabited types and panicsNick Mathewson2021-05-251-1/+21
|
* Mention tor-units in the readmeNick Mathewson2021-05-251-0/+2
|
* Tweaks docs and style in tor-units.Nick Mathewson2021-05-251-17/+52
|
* Remove the no-longer-used params::ErrorNick Mathewson2021-05-251-25/+0
|
* Documentation fix.Nick Mathewson2021-05-251-5/+6
|
* It is not an error to see an unrecognized parameter.Nick Mathewson2021-05-252-56/+45
|
* Apply our suite of clippy warnings to tor-units.Nick Mathewson2021-05-251-5/+23
|
* Fix clippy warnings by marking types non-exhaustive.Nick Mathewson2021-05-251-1/+3
|
* Revert change to type of NetParams value.Nick Mathewson2021-05-255-74/+54
| | | | | This truly is an i32, not a strings: it is a specified requirement in parsing consensus documents.
* Use macros and types to improve handling of Netdir parameters.Nick Mathewson2021-05-2511-272/+538
| | | | (Squashed from typed-netdir-params)
* Crate documentation for tor-consdiff.Nick Mathewson2021-05-241-3/+11
|
* fix a doc link in tor-linkspec.Nick Mathewson2021-05-241-1/+1
|
* More docs on tor-netdir.Nick Mathewson2021-05-241-8/+26
|
* Light tweaks to tor-netdoc.Nick Mathewson2021-05-241-2/+8
|
* Light tweaks to tor-cell docNick Mathewson2021-05-241-0/+6
|
* Use full suite of warnings in arti crate as well.Nick Mathewson2021-05-242-1/+21
|
* improve crate docs for tor-linkspecNick Mathewson2021-05-241-4/+36
|
* Small updates to READMENick Mathewson2021-05-241-4/+10
|
* Improve crate-level docs in arti CLI crate.Nick Mathewson2021-05-245-0/+323
|
* tor-llcrypto: finish a sentence in the docs.Nick Mathewson2021-05-241-1/+3
|