aboutsummaryrefslogtreecommitdiff
path: root/src/vpn
diff options
context:
space:
mode:
authorPhilipp Tölke <toelke@in.tum.de>2011-10-18 18:41:16 +0000
committerPhilipp Tölke <toelke@in.tum.de>2011-10-18 18:41:16 +0000
commite7d61b1a418b271876e82a3693332559339e6189 (patch)
tree9715baab24f9d1b02ae03e4751d2614d669714e7 /src/vpn
parent5126b8a86522e7808c8827956fbc5d9071cdc6eb (diff)
downloadgnunet-e7d61b1a418b271876e82a3693332559339e6189.tar.gz
gnunet-e7d61b1a418b271876e82a3693332559339e6189.zip
send queries as both A and AAAA
Diffstat (limited to 'src/vpn')
-rw-r--r--src/vpn/gnunet-service-dns.c26
1 files changed, 26 insertions, 0 deletions
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
917 cls_->hdr.size - sizeof (struct GNUNET_MessageHeader)); 917 cls_->hdr.size - sizeof (struct GNUNET_MessageHeader));
918 GNUNET_SCHEDULER_add_now (send_mesh_query, cls_); 918 GNUNET_SCHEDULER_add_now (send_mesh_query, cls_);
919 919
920 if (pdns->s.qdcount == 1)
921 {
922 if (pdns->queries[0]->qtype == 1)
923 pdns->queries[0]->qtype = 28;
924 else if (pdns->queries[0]->qtype == 28)
925 pdns->queries[0]->qtype = 1;
926 else
927 goto outfree;
928 struct dns_pkt *rdns = unparse_dns_packet (pdns);
929 size_t size =
930 sizeof (struct GNUNET_MESH_Tunnel *) +
931 sizeof (struct GNUNET_MessageHeader) + (ntohs (message->size) -
932 sizeof (struct query_packet) +
933 1);
934 struct tunnel_cls *cls_ = GNUNET_malloc (size);
935
936 cls_->hdr.size = size - sizeof (struct GNUNET_MESH_Tunnel *);
937
938 cls_->hdr.type = ntohs (GNUNET_MESSAGE_TYPE_VPN_REMOTE_QUERY_DNS);
939 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "size: %d\n", size);
940
941 memcpy (&cls_->dns, rdns,
942 cls_->hdr.size - sizeof (struct GNUNET_MessageHeader));
943 GNUNET_SCHEDULER_add_now (send_mesh_query, cls_);
944 }
945
920 goto outfree; 946 goto outfree;
921 } 947 }
922 948