On Tue, Nov 26, 2013 at 03:21:04PM +0100, Lunar wrote:
Philipp Winter:
I now have similar code which is based on stem: https://github.com/NullHypothesis/exitmap
However, the problem with a parallel single-Tor-process design is that there is no easy way for scanning modules to figure out which exit relay they were attached to. The Tor controller just sees a bunch of incoming streams but once, one of these streams spots something fishy, it is difficult to figure out which exit relay is to blame.
I am unsure about the meaning of the `cmd` parameter in the probe method of your modules. But, can't you pass the circuit ID (or an opaque wrapper object, actually) to the scanning module, and have the scanning module pass that to the stream attacher when it has a stream ready?
"cmd" abstracts away torsocks and handling standlone processes. That's useful for modules which don't make use of Python libraries.
And yes, your idea should work in theory but Python's concurrent.futures doesn't make it straightforward at this point. I'll look into it. Thanks for having a look at the code.
Cheers, Philipp