Improve and refactor circuit isolation code
With !38 (merged), we now have working circuit isolation code. Here are some follow-up items for %Arti 0.0.1 release: basic anonymity. We should probably talk about these before going ahead and doing them, however: most of these involve some design thinking.
-
Possibly: Split the Usage types and the Isolation types into separate types, such that they can be used and tested independently. Maybe the concrete TargetCircUsage
andSupportedCircUsage
types ought to be . -
Possibly: Instead of IsolationToken, support isolation profiles with multiple fields, like we do in Tor. This would let us get rid of IsolationMap
in tor-client. Perhaps "isolation" should be represented with a a trait and CircMgr should be parameterized with it? -
Test coverage on IsolationMap, assuming we keep it. -
A function on TorClient to return a clone of the TorClient whose streams are always isolated from the original TorClient. -
Configurable isolation for different types of field in tor-client, like tor has today. -
Integration tests that make sure that streams that are supposed to be isolated are in fact assigned to different circuits.
Edited by Nick Mathewson