diff --git a/src/calibre/utils/filenames.py b/src/calibre/utils/filenames.py index 260671dc7a..8c4b7edfe5 100644 --- a/src/calibre/utils/filenames.py +++ b/src/calibre/utils/filenames.py @@ -17,7 +17,7 @@ def ascii_text(orig): ascii = udc.decode(orig) except: if isinstance(orig, unicode): - ascii = orig.encode('ascii', 'replace') + orig = orig.encode('ascii', 'replace') ascii = orig.decode(preferred_encoding, 'replace').encode('ascii', 'replace') return ascii diff --git a/src/calibre/utils/mdns.py b/src/calibre/utils/mdns.py index 146491ad99..63112036fd 100644 --- a/src/calibre/utils/mdns.py +++ b/src/calibre/utils/mdns.py @@ -6,6 +6,9 @@ __docformat__ = 'restructuredtext en' import socket, time, atexit from collections import defaultdict +from calibre.utils.filenames import ascii_text +from calibre import force_unicode + _server = None def get_all_ips(): @@ -82,12 +85,16 @@ def start_server(): def create_service(desc, type, port, properties, add_hostname, use_ip_address=None): port = int(port) try: - hostname = socket.gethostname().partition('.')[0] + hostname = ascii_text(force_unicode(socket.gethostname())).partition('.')[0] except: hostname = 'Unknown' if add_hostname: - desc += ' (on %s)'%hostname + try: + desc += ' (on %s)'%hostname + except: + pass + if use_ip_address: local_ip = use_ip_address else: