When ignore_unexpected is set to True, query.py loops endlessly after
receiving a response:
>>> r = dns.query.udp(q, '224.0.0.251', port=5353, timeout=5,
ignore_unexpected=False)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "dns/query.py", line 123, in udp
raise UnexpectedSource, \
dns.query.UnexpectedSource: got a response from ('192.168.1.62',
5353) instead of ('224.0.0.251', 5353)
So you can see we got a response, but.....
>>> r = dns.query.udp(q, '224.0.0.251', port=5353, timeout=5,
ignore_unexpected=True)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "dns/query.py", line 118, in udp
_wait_for_readable(s, expiration)
File "dns/query.py", line 63, in _wait_for_readable
_wait_for([s], [], [s], expiration)
File "dns/query.py", line 60, in _wait_for
raise dns.exception.Timeout
dns.exception.Timeout
Whoops!
The patch is simple:
120c120
< if from_address == destination:
---
> if (ignore_unexpected or (from_address == destination)):
Cheers
Matt
_______________________________________________
dnspython-bugs mailing list
[email protected]
http://woof.play-bow.org/mailman/listinfo/dnspython-bugs