Pluggable transports should learn Tor's data directory
At least ScrambleSuit needs to store persistent information and Tor's data directory would be the best place to do that. Right now, however, pluggable transports have no way of learning the data directory.
A possible fix for that is in the branch
pass_datadir (which itself is a branch of
The patches pass the state location (Tor's data directory in managed mode) to the pluggable transport's constructor. For external mode, the patch adds another command line argument to
pyobfsproxy.py which allows the user to do that manually.
On the plus side, it's an easy fix. On the minus side, it requires changing existing transports (even though it's just the constructor's method head). An alternative would be yet another method, transports would have to implement?
Please let me know if the patches make sense and if I missed anything. I could restructure it if you don't like the constructor way. Either way, it worked in my tests.