txtorcon
txtorcon copied to clipboard
Twisted-based asynchronous Tor control protocol implementation. Includes unit-tests, examples, state-tracking code and configuration abstraction.
Metadata
Make it possible to debug if a configured hidden service is working and eventually reinitialize it
Many of the @GlobaLeaks users have encountered situations in which hidden servers instantiated via TxTorcon seems to lose reachability. It would be really interesting if it could be made possible...
As documented in https://github.com/meejah/txtorcon/blob/master/txtorcon/controller.py#L131, it seems like txtorcon checks simply for the first bootstrapping line to learn if the control port is open, it seems like this is actually a...
A way to give a completely synchronous Endpoint-returning API for use by "startup"-type code (e.g. before the reactor has been started). A use-case would be to parse configuration and create...
The latest stable Tor includes methods allowing embedding of tor directly in applications, via a `tor_main` C call. e.g. https://trac.torproject.org/projects/tor/ticket/23900 Should investigate the use of these options and this method...
As per comments in #104 and on Foolscap, _at least_ the SOCKS host from "tor:" endpoint strings should be sanitized to be local-only. Possibly not as restrictive as 127.0.0.0/8 in...
While its still reading the config, it looks like `TorConfig` can get `CONF_CHANGED` events (and probably does bad things). It should ignore `CONF_CHANGED` until after bootstrap is completed. See https://github.com/TheTorProject/bwscanner/commit/ccddac6f20ce7963e8fc2e8d9921f672da6be390#diff-5d97531ed54d2f8c4d91ebce0fb91774R170
I believe the test-suite could be made more clear and shrink a little if using `py.test`. In any case, I prefer the py.test style and it saves an indent-level. So,...
Several classes use a Deferred attribute `.post_bootstrap` or similar so that calling code knows "when they're ready". This is pretty hacky and not very nice. JP Calderone has a good...
The current `get_info` API is awkward because it always returns a `dict`. Instead, it should: - if a single arg, return a single string - if multiple args, return a...