From 273c4d796cbc2080ae2cb7545aa4c8b8250d182c Mon Sep 17 00:00:00 2001 From: Brian Warner <warner@lothar.com> Date: Tue, 10 Sep 2019 23:09:04 -0700 Subject: [PATCH] change default port= to listen on both IPv4+IPv6 The default was "tcp:4001", which happens to expand into "tcp:4001:interface=127.0.0.1", which limits the listening socket to IPv4 connections only. Changing it to "tcp:4001:interface=\:\:1" means "listen on ::1", which is the IPv6 name for the loopback interface, and gets us a socket that accepts both IPv4 and IPv6 connections. Note: this might cause incompatibilities with IPv4-only hosts, if they don't accept the "::1" name. For these systems, run the server as `twist transitrelay --port=tcp:4001" to revert to the old behavior. closes #12 --- src/wormhole_transit_relay/server_tap.py | 2 +- src/wormhole_transit_relay/test/test_config.py | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/wormhole_transit_relay/server_tap.py b/src/wormhole_transit_relay/server_tap.py index 718759e..d3e3f56 100644 --- a/src/wormhole_transit_relay/server_tap.py +++ b/src/wormhole_transit_relay/server_tap.py @@ -19,7 +19,7 @@ class Options(usage.Options): longdesc = LONGDESC optParameters = [ - ("port", "p", "tcp:4001", "endpoint to listen on"), + ("port", "p", "tcp:4001:interface=\:\:1", "endpoint to listen on"), ("blur-usage", None, None, "blur timestamps and data sizes in logs"), ("log-fd", None, None, "write JSON usage logs to this file descriptor"), ("usage-db", None, None, "record usage data (SQLite)"), diff --git a/src/wormhole_transit_relay/test/test_config.py b/src/wormhole_transit_relay/test/test_config.py index 02e3fee..6eb5dc2 100644 --- a/src/wormhole_transit_relay/test/test_config.py +++ b/src/wormhole_transit_relay/test/test_config.py @@ -2,17 +2,19 @@ from __future__ import unicode_literals, print_function from twisted.trial import unittest from .. import server_tap +PORT = "tcp:4001:interface=\:\:1" + class Config(unittest.TestCase): def test_defaults(self): o = server_tap.Options() o.parseOptions([]) self.assertEqual(o, {"blur-usage": None, "log-fd": None, - "usage-db": None, "port": "tcp:4001"}) + "usage-db": None, "port": PORT}) def test_blur(self): o = server_tap.Options() o.parseOptions(["--blur-usage=60"]) self.assertEqual(o, {"blur-usage": 60, "log-fd": None, - "usage-db": None, "port": "tcp:4001"}) + "usage-db": None, "port": PORT}) def test_string(self): o = server_tap.Options()