Ejemplo n.º 1
0
	def encodeResponse(self, response):
		header_s = struct.pack('>HHHHHH', response.identifier, 1<<15, response.query_len, response.response_len, response.authority_len, response.additional_len)

		for q in response.queries:
			dnstype, question = self.resource_factory.encodeQuery(q)
			name = convert.string_to_dns(question)

			header_s += name + struct.pack('>HH', dnstype, q.dnsclass)

		for r in response.resources:
			dnstype, question, decoded, ttl = self.resource_factory.encodeResource(r)
			name = convert.string_to_dns(question)

			new_header_s = name + struct.pack('>HHIH', dnstype, r.dnsclass, ttl, len(decoded)) + decoded
			header_s += new_header_s

		return header_s
Ejemplo n.º 2
0
	def encodeResponse(self, response):
		header_s = struct.pack('>HHHHHH', response.identifier, 1<<15, response.query_len, response.response_len, response.authority_len, response.additional_len)

		for q in response.queries:
			dnstype, question = self.resource_factory.encodeQuery(q)
			name = convert.string_to_dns(question)

			header_s += name + struct.pack('>HH', dnstype, q.dnsclass)

		for r in response.resources:
			dnstype, question, decoded, ttl = self.resource_factory.encodeResource(r)
			name = convert.string_to_dns(question)

			new_header_s = name + struct.pack('>HHIH', dnstype, r.dnsclass, ttl, len(decoded)) + decoded
			header_s += new_header_s

		return header_s
Ejemplo n.º 3
0
	def encodeRequest(self, request):
		header_s = struct.pack('>HHH6s', request.identifier, request.flags, request.query_len, '\0\0\0\0\0\0')

		for q in request.queries:
			dnstype, question = self.resource_factory.encodeQuery(q)
			name = convert.string_to_dns(question)

			header_s += name + struct.pack('>HH', dnstype, q.dnsclass)

		return header_s
Ejemplo n.º 4
0
	def encodeRequest(self, request):
		header_s = struct.pack('>HHH6s', request.identifier, request.flags, request.query_len, '\0\0\0\0\0\0')

		for q in request.queries:
			dnstype, question = self.resource_factory.encodeQuery(q)
			name = convert.string_to_dns(question)

			header_s += name + struct.pack('>HH', dnstype, q.dnsclass)

		return header_s