gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r17788 - gnunet/src/vpn


From: gnunet
Subject: [GNUnet-SVN] r17788 - gnunet/src/vpn
Date: Wed, 26 Oct 2011 14:30:41 +0200

Author: toelke
Date: 2011-10-26 14:30:41 +0200 (Wed, 26 Oct 2011)
New Revision: 17788

Modified:
   gnunet/src/vpn/gnunet-service-dns.c
Log:
*really* do A/AAAA

Modified: gnunet/src/vpn/gnunet-service-dns.c
===================================================================
--- gnunet/src/vpn/gnunet-service-dns.c 2011-10-26 12:12:46 UTC (rev 17787)
+++ gnunet/src/vpn/gnunet-service-dns.c 2011-10-26 12:30:41 UTC (rev 17788)
@@ -97,6 +97,7 @@
   uint16_t local_port;
   char *name;
   uint8_t namelen;
+  uint16_t qtype;
 } query_states[UINT16_MAX+1];
 
 /**
@@ -529,14 +530,14 @@
       (struct dns_record_line *) (dpkt->data +
                                   (query_states[dns->s.id].namelen) +
                                   sizeof (struct dns_query_line) + 2);
-  if (16 == answer->pkt.addrsize)
+  if (ntohs(28) == query_states[dns->s.id].qtype)
   {
     answer->pkt.subtype = GNUNET_DNS_ANSWER_TYPE_REMOTE_AAAA;
     dque->type = htons (28);    /* AAAA */
     drec_data->type = htons (28);       /* AAAA */
     drec_data->data_len = htons (16);
   }
-  else if (4 == answer->pkt.addrsize)
+  if (ntohs(1) == query_states[dns->s.id].qtype)
   {
     answer->pkt.subtype = GNUNET_DNS_ANSWER_TYPE_REMOTE_A;
     dque->type = htons (1);     /* A */
@@ -819,6 +820,17 @@
   memcpy (query_states[dns->s.id].name, dns->data,
           query_states[dns->s.id].namelen);
 
+  int i;
+  for (i= 0; i < pdns->s.qdcount; i++)
+    {
+      if (pdns->queries[i]->qtype == htons(28) ||
+          pdns->queries[i]->qtype == htons(28))
+        {
+          query_states[dns->s.id].qtype = pdns->queries[i]->qtype;
+            break;
+        }
+    }
+
   /* The query is for a .gnunet-address */
   if (pdns->queries[0]->namelen > 9 &&
       0 == strncmp (pdns->queries[0]->name + (pdns->queries[0]->namelen - 9),




reply via email to

[Prev in Thread] Current Thread [Next in Thread]