The dnslib/server.py implements isAlive but checks for self.thread.isAlive which should be self.thread.is_alive. The isAlive method on DNSserver class can remain for backwards compatibility reasons.
dnslib/shellresolver.py
114: while udp_server.isAlive():
dnslib/server.py
358: def isAlive(self):
359: return self.thread.isAlive()
dnslib/fixedresolver.py
96: while udp_server.isAlive():
dnslib/zoneresolver.py
116: while udp_server.isAlive():
dnslib/proxy.py
156: while udp_server.isAlive():
dnslib/intercept.py
161: while udp_server.isAlive():
The dnslib/server.py implements isAlive but checks for self.thread.isAlive which should be self.thread.is_alive. The isAlive method on DNSserver class can remain for backwards compatibility reasons.