From e7d61b1a418b271876e82a3693332559339e6189 Mon Sep 17 00:00:00 2001 From: Philipp Tölke Date: Tue, 18 Oct 2011 18:41:16 +0000 Subject: send queries as both A and AAAA --- src/vpn/gnunet-service-dns.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/vpn') diff --git a/src/vpn/gnunet-service-dns.c b/src/vpn/gnunet-service-dns.c index e0692937b..49e774dc2 100644 --- a/src/vpn/gnunet-service-dns.c +++ b/src/vpn/gnunet-service-dns.c @@ -917,6 +917,32 @@ receive_query (void *cls cls_->hdr.size - sizeof (struct GNUNET_MessageHeader)); GNUNET_SCHEDULER_add_now (send_mesh_query, cls_); + if (pdns->s.qdcount == 1) + { + if (pdns->queries[0]->qtype == 1) + pdns->queries[0]->qtype = 28; + else if (pdns->queries[0]->qtype == 28) + pdns->queries[0]->qtype = 1; + else + goto outfree; + struct dns_pkt *rdns = unparse_dns_packet (pdns); + size_t size = + sizeof (struct GNUNET_MESH_Tunnel *) + + sizeof (struct GNUNET_MessageHeader) + (ntohs (message->size) - + sizeof (struct query_packet) + + 1); + struct tunnel_cls *cls_ = GNUNET_malloc (size); + + cls_->hdr.size = size - sizeof (struct GNUNET_MESH_Tunnel *); + + cls_->hdr.type = ntohs (GNUNET_MESSAGE_TYPE_VPN_REMOTE_QUERY_DNS); + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "size: %d\n", size); + + memcpy (&cls_->dns, rdns, + cls_->hdr.size - sizeof (struct GNUNET_MessageHeader)); + GNUNET_SCHEDULER_add_now (send_mesh_query, cls_); + } + goto outfree; } -- cgit v1.2.3