コード例 #1
0
 def run(self):
     """ Run the handler thread"""
     try:
         self.message = Message.from_bytes(self.data)
     except:
         self.message = Message(Header(0, 0, 0, 0, 0, 0))
         self.send_response([], False, 1)
         return
     self.domain = self.message.questions[0].qname
     print(threading.current_thread())
     print("\tDomain:", self.domain)
     print("\tAddress:", self.address)
     authoritative, records = self.lookup_zone(self.domain)
     if records is None:
         if self.message.header.rd:
             sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
             resolver = Resolver(5, Server.cache)
             records = resolver.query_recursive(sock, self.domain,
                                                Resolver.root_server)
             sock.close()
         else:
             records = []
     self.send_response(records, authoritative)