From 4a2f3baf28ccae0571eaa5985a3bcd94baf8c818 Mon Sep 17 00:00:00 2001 From: sneakypete81 Date: Thu, 6 Feb 2020 21:45:37 +0000 Subject: [PATCH] Avoid importing twisted.internet.reactor in global scope This import has side effects, which can cause problems when using a non- default reactor (qt5reactor, for example). --- src/wormhole/transit.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/wormhole/transit.py b/src/wormhole/transit.py index 98e1b72..0f28e89 100644 --- a/src/wormhole/transit.py +++ b/src/wormhole/transit.py @@ -10,8 +10,9 @@ from collections import deque import six from nacl.secret import SecretBox +import twisted.internet from twisted.internet import (address, defer, endpoints, error, interfaces, - protocol, reactor, task) + protocol, task) from twisted.internet.defer import inlineCallbacks, returnValue from twisted.protocols import policies from twisted.python import log @@ -559,7 +560,7 @@ class Common: transit_relay, no_listen=False, tor=None, - reactor=reactor, + reactor=None, timing=None): self._side = bytes_to_hexstr(os.urandom(8)) # unicode if transit_relay: @@ -579,6 +580,8 @@ class Common: self._waiting_for_transit_key = [] self._listener = None self._winner = None + if reactor is None: + reactor = twisted.internet.reactor self._reactor = reactor self._timing = timing or DebugTiming() self._timing.add("transit") @@ -596,7 +599,7 @@ class Common: direct_hints = [ DirectTCPV1Hint(six.u(addr), portnum, 0.0) for addr in addresses ] - ep = endpoints.serverFromString(reactor, "tcp:%d" % portnum) + ep = endpoints.serverFromString(twisted.internet.reactor, "tcp:%d" % portnum) return direct_hints, ep def get_connection_abilities(self):