gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r22053 - gnunet/src/gns


From: gnunet
Subject: [GNUnet-SVN] r22053 - gnunet/src/gns
Date: Sat, 16 Jun 2012 23:47:37 +0200

Author: schanzen
Date: 2012-06-16 23:47:37 +0200 (Sat, 16 Jun 2012)
New Revision: 22053

Modified:
   gnunet/src/gns/gnunet-service-gns_resolver.c
Log:
properly handle CNAME as specified in rfc1034#section-3.6.2

Modified: gnunet/src/gns/gnunet-service-gns_resolver.c
===================================================================
--- gnunet/src/gns/gnunet-service-gns_resolver.c        2012-06-16 21:18:03 UTC 
(rev 22052)
+++ gnunet/src/gns/gnunet-service-gns_resolver.c        2012-06-16 21:47:37 UTC 
(rev 22053)
@@ -1359,6 +1359,19 @@
 
   for (i = 0; i < packet->num_answers; i++)
   {
+    /* http://tools.ietf.org/html/rfc1034#section-3.6.2 */
+    if (packet->authority_records[i].type == GNUNET_GNS_RECORD_TYPE_CNAME)
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                  "CNAME... restarting query with %s\n",
+                  packet->answers[i].data.hostname
+                 );
+      strcpy (rh->dns_name, packet->answers[i].data.hostname);
+      send_dns_packet (rh);
+      GNUNET_DNSPARSER_free_packet (packet);
+      return;
+    }
+    
     if ((packet->answers[i].type == rlh->record_type) &&
         (0 == strcmp (packet->answers[i].name, rh->dns_name)))
     {
@@ -1379,6 +1392,7 @@
 
   for (i = 0; i < packet->num_authority_records; i++)
   {
+    
     if (packet->authority_records[i].type == GNUNET_GNS_RECORD_TYPE_NS)
     {
       GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,




reply via email to

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