- Jun 17, 2021
-
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
- Jun 16, 2021
-
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
This function has been used for testing tor-netdir, but it will also be useful for testing path selection in tor-cirmgr as well. I've put it behind a "testing" feature, since it shouldn't really be used by most applications.
-
Nick Mathewson authored
-
Nick Mathewson authored
-
- Jun 15, 2021
-
-
Nick Mathewson authored
-
- Jun 14, 2021
-
-
Nick Mathewson authored
It just duplicates TorPath::build_circuit, which is all you actually need.
-
Nick Mathewson authored
Closes #124
-
Nick Mathewson authored
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.
-
Nick Mathewson authored
-
Nick Mathewson authored
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.
-
- Jun 13, 2021
-
-
Nick Mathewson authored
-
- Jun 09, 2021
-
-
Nick Mathewson authored
-
- Jun 08, 2021
-
-
Nick Mathewson authored
-
- Jun 04, 2021
-
-
Nick Mathewson authored
-
- Jun 03, 2021
-
-
Nick Mathewson authored
-
Nick Mathewson authored
-
- May 28, 2021
-
-
Nick Mathewson authored
-
Nick Mathewson authored
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.
-
- May 27, 2021
-
-
Nick Mathewson authored
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.
-
- May 26, 2021
-
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
- May 25, 2021
-
-
Nick Mathewson authored
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.
-
Nick Mathewson authored
Work with the latest version of the crypto crate, and suppress the unreachable_pub warning.
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-