Something related to Google Chromecast is broadcasting invalid MDNS packets (sigh). Make calibre's MDNS stuff tolerate them without flooding the log with exceptions.

This commit is contained in:
Charles Haley 2014-07-15 09:43:01 +02:00
parent f6b2e9aba8
commit 3e4b4024b2

View File

@ -199,6 +199,9 @@ def address_type(address):
# Exceptions
class MalformedPacketException(Exception):
pass
class NonLocalNameException(Exception):
pass
@ -595,6 +598,7 @@ class DNSIncoming(object):
first = off
while 1:
try:
len = ord(self.data[off])
off += 1
if len == 0:
@ -612,6 +616,8 @@ class DNSIncoming(object):
first = off
else:
raise BadDomainName(off)
except IndexError:
raise MalformedPacketException
if next >= 0:
self.offset = next
@ -876,6 +882,8 @@ class Engine(threading.Thread):
for sock in rr:
try:
self.readers[sock].handle_read()
except MalformedPacketException:
pass
except:
if DEBUG:
traceback.print_exc()