make single label resolution work (for pkey at least
[oweals/gnunet.git] / src / gns / gnunet-service-gns_resolver.h
index bc83b6b3d1383c1569426c76d45385e11de6433b..240747931b959cc83fbe51c2f855d39aa414be6a 100644 (file)
@@ -1,21 +1,21 @@
 /*
      This file is part of GNUnet.
-     (C) 2009-2013 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2009-2013 GNUnet e.V.
 
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 3, or (at your
-     option) any later version.
+     GNUnet is free software: you can redistribute it and/or modify it
+     under the terms of the GNU Affero General Public License as published
+     by the Free Software Foundation, either version 3 of the License,
+     or (at your option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
      WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
+     Affero General Public License for more details.
+    
+     You should have received a copy of the GNU Affero General Public License
+     along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
+     SPDX-License-Identifier: AGPL3.0-or-later
 */
 /**
  * @file gns/gnunet-service-gns_resolver.h
 #define GNS_RESOLVER_H
 #include "gns.h"
 #include "gnunet_dht_service.h"
-
+#include "gnunet_gns_service.h"
+#include "gnunet_namecache_service.h"
 
 /**
  * Initialize the resolver subsystem.
  * MUST be called before #GNS_resolver_lookup.
  *
- * @param nh handle to the namestore
+ * @param nc the namecache handle
  * @param dht handle to the dht
  * @param c configuration handle
  * @param max_bg_queries maximum amount of background queries
- * @param ignore_pending ignore records that still require user confirmation
- *        on lookup
- * @returns GNUNET_OK on success
  */
-int
-GNS_resolver_init (struct GNUNET_NAMESTORE_Handle *nh,
+void
+GNS_resolver_init (struct GNUNET_NAMECACHE_Handle *nc,
                   struct GNUNET_DHT_Handle *dht,
                   const struct GNUNET_CONFIGURATION_Handle *c,
-                  unsigned long long max_bg_queries,
-                  int ignore_pending);
+                  unsigned long long max_bg_queries);
 
 
 /**
@@ -68,9 +65,10 @@ struct GNS_ResolverHandle;
  * @param rd_count number of records in @a rd
  * @param rd records returned for the lookup
  */
-typedef void (*GNS_ResultProcessor)(void *cls,
-                                   uint32_t rd_count,
-                                   const struct GNUNET_NAMESTORE_RecordData *rd);
+typedef void
+(*GNS_ResultProcessor)(void *cls,
+                       uint32_t rd_count,
+                       const struct GNUNET_GNSRECORD_Data *rd);
 
 
 /**
@@ -80,17 +78,16 @@ typedef void (*GNS_ResultProcessor)(void *cls,
  * @param zone the zone to perform the lookup in
  * @param record_type the record type to look up
  * @param name the name to look up
- * @param shorten_key optional private key for authority caching, can be NULL
- * @param only_cached GNUNET_NO to only check locally not DHT for performance
+ * @param options options set to control local lookup
  * @param proc the processor to call
  * @param proc_cls the closure to pass to @a proc
+ * @return handle to cancel operation
  */
 struct GNS_ResolverHandle *
-GNS_resolver_lookup (const struct GNUNET_CRYPTO_EccPublicKey *zone,
+GNS_resolver_lookup (const struct GNUNET_CRYPTO_EcdsaPublicKey *zone,
                     uint32_t record_type,
                     const char *name,
-                    const struct GNUNET_CRYPTO_EccPrivateKey *shorten_key,
-                    int only_cached,
+                    enum GNUNET_GNS_LocalOptions options,
                     GNS_ResultProcessor proc,
                     void *proc_cls);
 
@@ -98,33 +95,9 @@ GNS_resolver_lookup (const struct GNUNET_CRYPTO_EccPublicKey *zone,
 /**
  * Cancel active resolution (i.e. client disconnected).
  *
- * @param h resolution to abort
+ * @param rh resolution to abort
  */
 void
-GNS_resolver_lookup_cancel (struct GNS_ResolverHandle *h);
-
-
-
-
-
-/**
- * Generic function to check for TLDs.  Checks if "name" ends in ".tld"
- *
- * @param name the name to check
- * @param tld the tld to check
- * @return #GNUNET_YES or #GNUNET_NO
- */
-int
-is_tld (const char *name, 
-       const char *tld);
-
-
-
-/**
- * Checks for gnu/zkey
- */
-#define is_gads_tld(name) is_tld(name, GNUNET_GNS_TLD)
-#define is_zkey_tld(name) is_tld(name, GNUNET_GNS_TLD_ZKEY)
-
+GNS_resolver_lookup_cancel (struct GNS_ResolverHandle *rh);
 
 #endif