Commits on Sep 29, 2016
  1. upgrade to versioneer-0.17

    warner committed Sep 29, 2016
    This allows 'tox' to pass when run on an unpacked tarball: the previous
    versioneer had a pyflakes failure in the generated file.
Commits on Sep 27, 2016
Commits on Sep 20, 2016
  1. add tor.control_endpoint_maker()

    warner committed Sep 20, 2016
    closes ticket:270
Commits on Sep 14, 2016
  1. IPv6: accept IPv4-mapped and local-scope/zone-id too

    warner committed Sep 14, 2016
    These are kind of fringe use cases:
    * if you've got an IPv4-mapped address, you might as well just use
    * site-local addresses are deprecated
    * link-local addresses aren't useful to anyone outside your subnet
    but they're legitimate IPv6 addresses, and it's probably easier to
    accept them here, than to ask applications to filter them out or convert
    This patch also adds some comments to connections/, now that the
    regexps are a bit more complex.
    closes ticket:155
  2. Teach TCP handler to use ipv6 addresses with surrounding []s

    david415 committed Sep 14, 2016
    fixes trac ticket #155
    and Tahoe-LAFS trac ticket #867
Commits on Sep 1, 2016
  1. allocate_tcp_port: avoid loopback-bound sockets

    warner committed Sep 1, 2016
    I thought I'd fixed this, but I'm still seeing occasional failures,
    where another process has bound a socket to, and
    allocate_tcp_port() gives it to me anyways. I wouldn't be surprised if
    the code that's using the socket is binding it to lo0 too, otherwise it
    might not cause a problem.
    I think the fix is for allocate_tcp_port() to attempt to bind a
    socket (with the proposed port number) to both and then, seeing if either gives us an error.
    (re) closes ticket:258
  2. Merge branch 'pr29'

    warner committed Sep 1, 2016
  3. tor: clean up implementation, update tests

    warner committed Sep 1, 2016
    The internal _connect() method now yields the SOCKS endpoint which all
    Tor handlers use, instead of storing it as self._socks_endpoint. When
    useful, we stash the descriptor from which we create that endpoint, so
    tests can look at it later.
    Tests that can call the real txtorcon methods do so: others mock out the
    necessary parts of txtorcon so we avoid actually talking to Tor (or
    trying to launch it).
  4. appease pyflakes

    warner committed Sep 1, 2016
  5. Teach Tor handler to use endpoint for Tor SOCKS connection

    david415 committed Sep 1, 2016
    closes ticket:265
Commits on Aug 28, 2016
  1. improve tor/i2p test coverage

    warner committed Aug 28, 2016
  2. tor: tolerate non-numeric config.SocksPort values

    warner committed Aug 28, 2016
    When doing manual testing with a real Tor server, I got back a
    config.SocksPort with two lines, one of which was
    "unix:/var/run/tor/socks WorldWritable", which confused the parser. This
    patch improves the parser to ignore non-numeric lines. In the future, we
    could probably build an endpoint from the unix line and use that
Commits on Aug 21, 2016
  1. NEWS: update release date

    warner committed Aug 21, 2016
Commits on Aug 20, 2016
  1. README: note Twisted>=16.0.0 dependency

    warner committed Aug 20, 2016
    This actually went into place for Foolscap-0.11.0, but I forgot to
    update the README at that time.
  2. Listener: don't upcall to missing Service.__init__

    warner committed Aug 20, 2016
    This is causing errors against an older Twisted (14 and 15, but not 16).
    I'm puzzled why this is causing a problem now, when it wasn't before..
    maybe some other library has changed? Anyways, this seems correct (since
    Service doesn't define __init__), and fixes the problem for the older
Commits on Jul 27, 2016
  1. add 'i2p' extra

    warner committed Jul 27, 2016
  2. docs: add i2p

    warner committed Jul 27, 2016
  3. i2p: rename handlers to match tor/socks better

    warner committed Jul 27, 2016
    Basically I'm removing "i2p" from the function names, because they'll
    already be present in the code which does "from foolscap.connections
    import i2p", then e.g. "i2p.default()". I can't do this with "local_i2p"
    because "local" is special to python.