add --no-listen, for debugging
This commit is contained in:
parent
fdf96b07fe
commit
9d7b9dd8d2
|
@ -207,13 +207,14 @@ class RecordPipe:
|
||||||
self.skt.close()
|
self.skt.close()
|
||||||
|
|
||||||
class Common:
|
class Common:
|
||||||
def __init__(self, transit_relay, timing=None):
|
def __init__(self, transit_relay, no_listen=False, timing=None):
|
||||||
if transit_relay:
|
if transit_relay:
|
||||||
if not isinstance(transit_relay, type(u"")):
|
if not isinstance(transit_relay, type(u"")):
|
||||||
raise UsageError
|
raise UsageError
|
||||||
self._transit_relays = [transit_relay]
|
self._transit_relays = [transit_relay]
|
||||||
else:
|
else:
|
||||||
self._transit_relays = []
|
self._transit_relays = []
|
||||||
|
self._no_listen = no_listen
|
||||||
self._timing = timing or DebugTiming()
|
self._timing = timing or DebugTiming()
|
||||||
self._timing_started = self._timing.add_event("transit")
|
self._timing_started = self._timing.add_event("transit")
|
||||||
self.winning = threading.Event()
|
self.winning = threading.Event()
|
||||||
|
@ -224,6 +225,10 @@ class Common:
|
||||||
self._start_server()
|
self._start_server()
|
||||||
|
|
||||||
def _start_server(self):
|
def _start_server(self):
|
||||||
|
if self._no_listen:
|
||||||
|
self.my_direct_hints = []
|
||||||
|
self.listener = None
|
||||||
|
return
|
||||||
server = MyTCPServer(("", 0), None)
|
server = MyTCPServer(("", 0), None)
|
||||||
_, port = server.server_address
|
_, port = server.server_address
|
||||||
self.my_direct_hints = [u"tcp:%s:%d" % (addr, port)
|
self.my_direct_hints = [u"tcp:%s:%d" % (addr, port)
|
||||||
|
|
|
@ -29,6 +29,8 @@ g.add_argument("--dump-timing", type=type(u""), # TODO: hide from --help output
|
||||||
metavar="FILE", help="(debug) write timing data to file")
|
metavar="FILE", help="(debug) write timing data to file")
|
||||||
g.add_argument("--twisted", action="store_true",
|
g.add_argument("--twisted", action="store_true",
|
||||||
help="use Twisted-based implementations, for testing")
|
help="use Twisted-based implementations, for testing")
|
||||||
|
g.add_argument("--no-listen", action="store_true",
|
||||||
|
help="(debug) don't open a listening socket for Transit")
|
||||||
parser.set_defaults(timing=None)
|
parser.set_defaults(timing=None)
|
||||||
subparsers = parser.add_subparsers(title="subcommands",
|
subparsers = parser.add_subparsers(title="subcommands",
|
||||||
dest="subcommand")
|
dest="subcommand")
|
||||||
|
|
|
@ -144,6 +144,7 @@ class BlockingReceiver:
|
||||||
def establish_transit(self, w, them_d):
|
def establish_transit(self, w, them_d):
|
||||||
transit_key = w.derive_key(APPID+u"/transit-key")
|
transit_key = w.derive_key(APPID+u"/transit-key")
|
||||||
transit_receiver = TransitReceiver(self.args.transit_helper,
|
transit_receiver = TransitReceiver(self.args.transit_helper,
|
||||||
|
no_listen=self.args.no_listen,
|
||||||
timing=self.args.timing)
|
timing=self.args.timing)
|
||||||
transit_receiver.set_transit_key(transit_key)
|
transit_receiver.set_transit_key(transit_key)
|
||||||
data = json.dumps({
|
data = json.dumps({
|
||||||
|
|
|
@ -99,6 +99,7 @@ class TwistedReceiver(BlockingReceiver):
|
||||||
def establish_transit(self, w, them_d):
|
def establish_transit(self, w, them_d):
|
||||||
transit_key = w.derive_key(APPID+u"/transit-key")
|
transit_key = w.derive_key(APPID+u"/transit-key")
|
||||||
transit_receiver = TransitReceiver(self.args.transit_helper,
|
transit_receiver = TransitReceiver(self.args.transit_helper,
|
||||||
|
no_listen=self.args.no_listen,
|
||||||
timing=self.args.timing)
|
timing=self.args.timing)
|
||||||
transit_receiver.set_transit_key(transit_key)
|
transit_receiver.set_transit_key(transit_key)
|
||||||
direct_hints = yield transit_receiver.get_direct_hints()
|
direct_hints = yield transit_receiver.get_direct_hints()
|
||||||
|
|
|
@ -18,7 +18,9 @@ def send_blocking(args):
|
||||||
file=args.stdout)
|
file=args.stdout)
|
||||||
|
|
||||||
if fd_to_send is not None:
|
if fd_to_send is not None:
|
||||||
transit_sender = TransitSender(args.transit_helper, timing=args.timing)
|
transit_sender = TransitSender(args.transit_helper,
|
||||||
|
no_listen=args.no_listen,
|
||||||
|
timing=args.timing)
|
||||||
transit_data = {
|
transit_data = {
|
||||||
"direct_connection_hints": transit_sender.get_direct_hints(),
|
"direct_connection_hints": transit_sender.get_direct_hints(),
|
||||||
"relay_connection_hints": transit_sender.get_relay_hints(),
|
"relay_connection_hints": transit_sender.get_relay_hints(),
|
||||||
|
|
|
@ -45,7 +45,9 @@ def send_twisted(args):
|
||||||
w = Wormhole(APPID, args.relay_url, timing=args.timing)
|
w = Wormhole(APPID, args.relay_url, timing=args.timing)
|
||||||
|
|
||||||
if fd_to_send:
|
if fd_to_send:
|
||||||
transit_sender = TransitSender(args.transit_helper, timing=args.timing)
|
transit_sender = TransitSender(args.transit_helper,
|
||||||
|
no_listen=args.no_listen,
|
||||||
|
timing=args.timing)
|
||||||
phase1["transit"] = transit_data = {}
|
phase1["transit"] = transit_data = {}
|
||||||
transit_data["relay_connection_hints"] = transit_sender.get_relay_hints()
|
transit_data["relay_connection_hints"] = transit_sender.get_relay_hints()
|
||||||
direct_hints = yield transit_sender.get_direct_hints()
|
direct_hints = yield transit_sender.get_direct_hints()
|
||||||
|
|
|
@ -469,7 +469,8 @@ def there_can_be_only_one(contenders):
|
||||||
class Common:
|
class Common:
|
||||||
RELAY_DELAY = 2.0
|
RELAY_DELAY = 2.0
|
||||||
|
|
||||||
def __init__(self, transit_relay, reactor=reactor, timing=None):
|
def __init__(self, transit_relay, no_listen=False,
|
||||||
|
reactor=reactor, timing=None):
|
||||||
if transit_relay:
|
if transit_relay:
|
||||||
if not isinstance(transit_relay, type(u"")):
|
if not isinstance(transit_relay, type(u"")):
|
||||||
raise UsageError
|
raise UsageError
|
||||||
|
@ -477,6 +478,7 @@ class Common:
|
||||||
else:
|
else:
|
||||||
self._transit_relays = []
|
self._transit_relays = []
|
||||||
self._transit_key = None
|
self._transit_key = None
|
||||||
|
self._no_listen = no_listen
|
||||||
self._waiting_for_transit_key = []
|
self._waiting_for_transit_key = []
|
||||||
self._listener = None
|
self._listener = None
|
||||||
self._winner = None
|
self._winner = None
|
||||||
|
@ -485,6 +487,8 @@ class Common:
|
||||||
self._timing_started = self._timing.add_event("transit")
|
self._timing_started = self._timing.add_event("transit")
|
||||||
|
|
||||||
def _build_listener(self):
|
def _build_listener(self):
|
||||||
|
if self._no_listen:
|
||||||
|
return ([], None)
|
||||||
portnum = allocate_tcp_port()
|
portnum = allocate_tcp_port()
|
||||||
direct_hints = [u"tcp:%s:%d" % (addr, portnum)
|
direct_hints = [u"tcp:%s:%d" % (addr, portnum)
|
||||||
for addr in ipaddrs.find_addresses()]
|
for addr in ipaddrs.find_addresses()]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user