示例#1
0
文件: dns.py 项目: loryka/DNSpy
 def datagram_received(self, data, addr):
     (host, port) = addr
     try:
         (dns_packet, offset) = DnsPacket.parse(data)
     except AssertionError:
         self.log.warn('Unable to parse packet %s from %s.' % (data, host))
     else:
         self.log.info('Incoming packet: %s' % dns_packet)
         task = asyncio.async(self.respond_to_packet(dns_packet, addr))
示例#2
0
文件: dns.py 项目: loryka/DNSpy
 def datagram_received(self, data, addr):
     try:
         (dns_packet, offset) = DnsPacket.parse(data)
     except AssertionError as e:
         self.log.warning('Unable to parse packet:', data)
     else:
         self.log.info('resolver_datagram_recieved(%s, %s)' % (dns_packet, addr))
         self.db.store_packet(dns_packet, source=addr)
         (host, port) = addr
         key = (str(host), dns_packet.ID)
         if key in self.queue:
             (query_packet, future) = self.queue[key]
             del self.queue[key]
             # TODO: asserts about answer matching query_packet
             self.db.update_query_response(query_packet.pk, dns_packet.pk)
             future.set_result(dns_packet)
         else:
             self.log.warn("Unexpected packet.")