gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r28840 - gnunet/src/gns
Date: Sat, 24 Aug 2013 11:25:26 +0200

Author: grothoff
Date: 2013-08-24 11:25:26 +0200 (Sat, 24 Aug 2013)
New Revision: 28840

Modified:
   gnunet/src/gns/gnunet-service-gns_resolver.c
Log:
-convert additional record types

Modified: gnunet/src/gns/gnunet-service-gns_resolver.c
===================================================================
--- gnunet/src/gns/gnunet-service-gns_resolver.c        2013-08-24 09:02:49 UTC 
(rev 28839)
+++ gnunet/src/gns/gnunet-service-gns_resolver.c        2013-08-24 09:25:26 UTC 
(rev 28840)
@@ -29,7 +29,6 @@
  *        can likely be done in 'resolver_lookup_get_next_label'.
  * - GNS: expand ".+" in returned values to the respective absolute
  *        name using '.zkey'
- * - DNS: convert additional record types to GNS
  * - shortening triggers
  * - revocation checks (make optional: privacy!)
  * - DNAME support
@@ -923,7 +922,10 @@
   {
     struct GNUNET_NAMESTORE_RecordData rd[rd_count];
     unsigned int skip;
+    char buf[UINT16_MAX];
+    size_t buf_off;
 
+    buf_off = 0;
     skip = 0;
     memset (rd, 0, sizeof (rd));
     for (i=0;i<rd_count;i++)
@@ -974,26 +976,52 @@
       case GNUNET_DNSPARSER_TYPE_CNAME:
       case GNUNET_DNSPARSER_TYPE_PTR:
       case GNUNET_DNSPARSER_TYPE_NS:
-       rd[i - skip].data_size = strlen (rec->data.hostname) + 1;
-       rd[i - skip].data = rec->data.hostname;
+       if (GNUNET_OK !=
+           GNUNET_DNSPARSER_builder_add_name (buf,
+                                              sizeof (buf),
+                                              &buf_off,
+                                              rec->data.hostname))
+       {
+         GNUNET_break (0);
+         skip++;
+         continue;
+       }
        break;
       case GNUNET_DNSPARSER_TYPE_SOA:
-       // FIXME: not implemented
-       // NOTE: consider exporting implementation in DNSPARSER lib!
-       GNUNET_break (0);
-       skip++;
+       if (GNUNET_OK !=
+           GNUNET_DNSPARSER_builder_add_soa (buf,
+                                              sizeof (buf),
+                                              &buf_off,
+                                              rec->data.soa))
+       {
+         GNUNET_break (0);
+         skip++;
+         continue;
+       }
        break;
       case GNUNET_DNSPARSER_TYPE_MX:
-       // FIXME: not implemented
-       // NOTE: consider exporting implementation in DNSPARSER lib!
-       GNUNET_break (0);
-       skip++;
+       if (GNUNET_OK !=
+           GNUNET_DNSPARSER_builder_add_mx (buf,
+                                            sizeof (buf),
+                                            &buf_off,
+                                            rec->data.mx))
+       {
+         GNUNET_break (0);
+         skip++;
+         continue;
+       }
        break;
       case GNUNET_DNSPARSER_TYPE_SRV:
-       // FIXME: not implemented
-       // NOTE: consider exporting implementation in DNSPARSER lib!
-       GNUNET_break (0);
-       skip++;
+       if (GNUNET_OK !=
+           GNUNET_DNSPARSER_builder_add_srv (buf,
+                                             sizeof (buf),
+                                             &buf_off,
+                                             rec->data.srv))
+       {
+         GNUNET_break (0);
+         skip++;
+         continue;
+       }
        break;
       default:
        GNUNET_log (GNUNET_ERROR_TYPE_INFO,




reply via email to

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