-struct GNUNET_GNS_LookupHandle *
-GNUNET_GNS_lookup_start (struct GNUNET_GNS_Handle *handle,
- struct GNUNET_TIME_Relative timeout,
- const char * name,
- enum GNUNET_GNS_RecordType type,
- GNUNET_GNS_LookupIterator iter,
- void *iter_cls);
+struct GNUNET_GNS_LookupRequest*
+GNUNET_GNS_lookup (struct GNUNET_GNS_Handle *handle,
+ const char * name,
+ enum GNUNET_GNS_RecordType type,
+ int only_cached,
+ struct GNUNET_CRYPTO_RsaPrivateKey *shorten_key,
+ GNUNET_GNS_LookupResultProcessor proc,
+ void *proc_cls);
+
+
+/**
+ * Perform an asynchronous lookup operation on the GNS
+ * in the zone specified by 'zone'.
+ *
+ * @param handle handle to the GNS service
+ * @param name the name to look up
+ * @param zone the zone to start the resolution in
+ * @param type the GNUNET_GNS_RecordType to look for
+ * @param only_cached GNUNET_YES to only check locally not DHT for performance
+ * @param shorten_key the private key of the shorten zone (can be NULL)
+ * @param proc function to call on result
+ * @param proc_cls closure for processor
+ *
+ * @return handle to the queued request
+ */
+struct GNUNET_GNS_LookupRequest*
+GNUNET_GNS_lookup_zone (struct GNUNET_GNS_Handle *handle,
+ const char * name,
+ struct GNUNET_CRYPTO_ShortHashCode *zone,
+ enum GNUNET_GNS_RecordType type,
+ int only_cached,
+ struct GNUNET_CRYPTO_RsaPrivateKey *shorten_key,
+ GNUNET_GNS_LookupResultProcessor proc,
+ void *proc_cls);
+
+
+/**
+ * Cancel pending lookup request
+ *
+ * @param lr the lookup request to cancel
+ */
+void
+GNUNET_GNS_cancel_lookup_request (struct GNUNET_GNS_LookupRequest *lr);
+
+/* *************** Standard API: shorten ******************* */
+
+
+/**
+ * Processor called on for a name shortening result
+ * called only once
+ *
+ * @param cls closure
+ * @param short_name the shortened name or NULL if no result / error
+ */
+typedef void (*GNUNET_GNS_ShortenResultProcessor) (void *cls,
+ const char* short_name);