From 4a18f03960dac88717d01b59b919a28bbd48ffea Mon Sep 17 00:00:00 2001 From: Matt Hazinski Date: Mon, 29 Dec 2014 20:21:24 -0500 Subject: [PATCH] Move UDP listen inside try block --- src/allmydata/util/iputil.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/allmydata/util/iputil.py b/src/allmydata/util/iputil.py index 4ea6aa6f..af44d186 100644 --- a/src/allmydata/util/iputil.py +++ b/src/allmydata/util/iputil.py @@ -6,6 +6,7 @@ from sys import platform # from Twisted from twisted.internet import defer, threads, reactor from twisted.internet.protocol import DatagramProtocol +from twisted.internet.error import CannotListenError from twisted.python.procutils import which from twisted.python import log @@ -125,16 +126,17 @@ def get_local_ip_for(target): # avoid this DNS lookup. This also makes node startup fractionally # faster. return None - udpprot = DatagramProtocol() - port = reactor.listenUDP(0, udpprot) + try: + udpprot = DatagramProtocol() + port = reactor.listenUDP(0, udpprot) udpprot.transport.connect(target_ipaddr, 7) localip = udpprot.transport.getHost().host - except socket.error: + d = port.stopListening() + d.addErrback(log.err) + except (socket.error, CannotListenError): # no route to that host localip = None - d = port.stopListening() - d.addErrback(log.err) return localip -- 2.37.2