From c484d9dcc1c43f6553c96c849cc852c60b11cfd6 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 15 Feb 2010 01:36:08 -0700 Subject: [PATCH] ... --- src/calibre/utils/mdns.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/calibre/utils/mdns.py b/src/calibre/utils/mdns.py index 8ccdd75e33..74547b9573 100644 --- a/src/calibre/utils/mdns.py +++ b/src/calibre/utils/mdns.py @@ -3,7 +3,7 @@ __license__ = 'GPL 3' __copyright__ = '2009, Kovid Goyal ' __docformat__ = 'restructuredtext en' -import socket, time +import socket, time, atexit _server = None @@ -36,7 +36,14 @@ def start_server(): global _server if _server is None: from calibre.utils.Zeroconf import Zeroconf - _server = Zeroconf(bindaddress=get_external_ip()) + try: + _server = Zeroconf() + except: + time.sleep(0.2) + _server = Zeroconf() + + atexit.register(stop_server) + return _server def publish(desc, type, port, properties=None, add_hostname=True): @@ -70,4 +77,7 @@ def publish(desc, type, port, properties=None, add_hostname=True): def stop_server(): global _server if _server is not None: - _server.close() + try: + _server.close() + finally: + _server = None