txtorcon Changelog

What's new in txtorcon 0.13.0

May 11, 2015
  • txtorcon-0.13.0.tar.gz (PyPI (local-sig or github-sig) (source)
  • support basic and stealth hidden service authorization, and parse client_keys files.
  • 2x speedup for TorState parsing (mostly by lazy-parsing timestamps)
  • can now parse ~75000 microdescriptors/second per core of 3.4GHz Xeon E3
  • launch_tor now doesn’t use a temporary torrc (command-line options instead)
  • tons of pep8 cleanups
  • several improvements to hidden-service configuration from sambuddhabasu1.
  • populated valid signals from GETINFO signals/names from sambuddhabasu1.

New in txtorcon 0.12.0 (Feb 4, 2015)

  • txtorcon-0.12.0.tar.gz (PyPI (local-sig or github-sig) (source)
  • doc, code and import cleanups from Kali Kaneko
  • HiddenServiceDirGroupReadable support
  • Issue #80: honour ControlPort 0 in incoming TorConfig instance. The caller owns both pieces: you have to figure out when it’s bootstraped, and are responsible for killing it off.
  • Issue #88: clarify documentation and fix appending to some config lists
  • If GeoIP data isn’t loaded in Tor, it sends protocol errors; if txtorcon also hasn’t got GeoIP data, the queries for country-code fail; this error is now ignored.
  • 100% unit-test coverage! (line coverage)
  • PyPy support (well, at least all tests pass)
  • TCP4HiddenServiceEndpoint now waits for descriptor upload before the listen() call does its callback (this means when using onion: endpoint strings, or any of the endpoints APIs your hidden service is 100% ready for action when you receive the callback)
  • TimeIntervalCommaList from Tor config supported
  • TorControlProtocol now has a .all_routers member (a set() of all Routers)
  • documentation fix from sammyshj

New in txtorcon 0.11.0 (Aug 18, 2014)

  • More control for launch_tor: access stdout, stderr in real-time and control whether we kill Tor on and stderr output. See issue #79.
  • Warning about build_circuit being called without a guard first is now optional (default is still warn)
  • available_tcp_port() now in util
  • TorState now has a .routers_by_hash member

New in txtorcon 0.10.1 (Aug 12, 2014)

  • Bug fix:
  • issue #78: Add tox tests and fix for Twisted 12.0.0 (and prior), as this is what Debian squeeze ships
  • issue #77: properly expand relative and tilde paths for hiddenServiceDir via endpoints
  • fix bug incorrectly issuing RuntimeError in brief window of time on event-listeners

New in txtorcon 0.9.2 (Apr 25, 2014)

  • add on_disconnect callback for TorControlProtocol (no more monkey-patching Protocol API)
  • add age() method to Circuit
  • add time_created property to Circuit
  • don’t incorrectly listen for NEWDESC events in TorState
  • add .flags dict to track flags in Circuit, Stream
  • build_circuit() can now take hex IDs (as well as Router instances)
  • add unique_name property to Router (returns the hex id, unless Named then return name)
  • add location property to Router
  • TorState.close_circuit now takes either a Circuit ID or Circuit instance
  • TorState.close_stream now takes either a Stream ID or Stream instance
  • support both GeoIP API versions
  • more test-coverage
  • small patch from enriquefynn improving tor binary locating
  • strip OK lines in TorControlProtocol (see issue #8)
  • add api_version kwarg to TorControlProtocol
  • use TERM not KILL when Tor launch times out (see issue #68) from hellais

New in txtorcon 0.9.1 (Feb 13, 2014)

  • Full list of improvements:
  • put test/ directory at the top level
  • using http://nedbatchelder.com/code/coverage tool instead of custom script
  • using coveralls.io and travis-ci.org for test coverage and continuous integration
  • issue #56: added Circuit.close() and Stream.close() starting from aagbsn's patch
  • parsing issues with multi-line keyword discovered and resolved
  • preserve router nicks from long-names if consensus lacks an entry (e.g. bridges)
  • using https://github.com/dstufft/twine for releases
  • "Wheel" release now also available
  • issue #57: "python setup.py develop" now supported
  • issue #59: if tor_launch() times out, Tor is properly killed (starting with pull-request from Ryman)
  • experimental docker.io-based tests (for HS listening, and tor_launch() timeouts)
  • issue #55: pubkey link on readthedocs
  • issue #63
  • clean up GeoIP handling, and support pygeoip both pre and post 0.3
  • slightly improve unit-test coverage (now at 97%, 61 lines out of 2031 missing)
  • added a walkthrough to the documentation

New in txtorcon 0.8.0 (May 13, 2013)

  • following semantic versioning;
  • slight API change ICircuitListener.circuit_failed(), circuit_closed() and IStreamListener.stream_failed(), stream_closed() and stream_detach() all now include any keywords in the notification method (some of these lacked flags, or only included some) (issue #18);
  • launch_tor() can take a timeout (starting with a patch from hellais);
  • cleanup from aagbsn;
  • more test coverage;
  • run tests cleanly without graphviz (from lukaslueg);
  • issue #26 fix from lukaslueg;
  • pep8 and whitespace targets plus massive cleanup (now pep8 clean, from lukaslueg);
  • issue #30 fix reported by webmeister making ipaddr actually-optional;
  • example using synchronous web server (built-in SimpleHTTPServer) with txtorcon (from lukaslueg);
  • TorState can now create circuits without an explicit path;
  • passwords for non-cookie authenticated sessions use a password callback (that may return a Deferred) instead of a string (issue #44);
  • fixes for AddrMap in case #8596 is implemented;

New in txtorcon 0.7 (May 13, 2013)

  • issue #20 config object now hooked up correctly after launch_tor();
  • patch from hellais for properly handling data_dir given to TCPHiddenServiceEndpoint;
  • .tac example from mmaker;
  • allow TorConfig().hiddenservices.append(hs) to work properly with no attached protocol

New in txtorcon 0.6 (May 13, 2013)

  • debian packaging (mmaker);
  • psutil fully gone;
  • changed API for launch_tor() to use TorConfig instead of args;
  • TorConfig.save() works properly with no connected Tor;
  • fix incorrect handling of 650 immediately after connect;
  • pep8 compliance;
  • use assertEqual in tests;
  • messages with embdedded keywords work properly;
  • fix bug with setup.py + pip;
  • issue #15 reported along with patch by Isis Lovecruft;
  • consolidate requirements (from aagbsn);
  • increased test coverage and various minor fixes;
  • https URIs for ReadTheDocs;

New in txtorcon 0.5 (May 13, 2013)

  • Remove psutil as a dependency, including from util.process_from_address