-LRN: check for .gnunet TLD explicitly fail if it is not
authorChristian Grothoff <christian@grothoff.org>
Mon, 2 Jul 2012 23:16:38 +0000 (23:16 +0000)
committerChristian Grothoff <christian@grothoff.org>
Mon, 2 Jul 2012 23:16:38 +0000 (23:16 +0000)
src/gns/gnunet-service-gns_resolver.c

index af90b28fae9c6cafdb2df335df4a3236b9c6a9da..feb49ade1e30abef72a94b3eaa47315d8ef8d243 100644 (file)
@@ -4359,7 +4359,7 @@ gns_resolver_shorten_name (struct GNUNET_CRYPTO_ShortHashCode *zone,
     return;
 
   }
-  else
+  else if (is_gnunet_tld (name) == GNUNET_YES)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "TLD is gnunet\n");
@@ -4371,6 +4371,15 @@ gns_resolver_shorten_name (struct GNUNET_CRYPTO_ShortHashCode *zone,
     memcpy (rh->name, name,
             strlen (name)-strlen (GNUNET_GNS_TLD) - 1);
   }
+  else
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Unknown TLD in %s\n", name);
+    GNUNET_free (rh);
+    GNUNET_free (nsh);
+    GNUNET_CONTAINER_DLL_remove (nsh_head, nsh_tail, rh);
+    proc (proc_cls, name);
+    return;
+  }
 
   rh->authority_chain_head = GNUNET_malloc (sizeof (struct AuthorityChain));
   rh->authority_chain_tail = rh->authority_chain_head;