-/**
- * Stop async GNS lookup.
- *
- * @param lookup_handle handle to the GNS lookup operation to stop
- */
-void
-GNUNET_GNS_lookup_stop (struct GNUNET_GNS_LookupHandle *lookup_handle)
-{
- struct GNUNET_DHT_Handle *handle;
- /* TODO Stop dht lookups */
+ if (NULL == name)
+ {
+ GNUNET_break (0);
+ return NULL;
+ }
+ LOG (GNUNET_ERROR_TYPE_DEBUG,
+ "Trying to lookup `%s' in GNS\n",
+ name);
+ nlen = strlen (name) + 1;
+ if (nlen >= GNUNET_MAX_MESSAGE_SIZE - sizeof (*lr))
+ {
+ GNUNET_break (0);
+ return NULL;
+ }
+ lr = GNUNET_new (struct GNUNET_GNS_LookupRequest);
+ lr->gns_handle = handle;
+ lr->lookup_proc = proc;
+ lr->proc_cls = proc_cls;
+ lr->r_id = handle->r_id_gen++;
+ lr->env = GNUNET_MQ_msg_extra (lookup_msg,
+ nlen,
+ GNUNET_MESSAGE_TYPE_GNS_LOOKUP);
+ lookup_msg->id = htonl (lr->r_id);
+ lookup_msg->options = htons ((uint16_t) options);
+ lookup_msg->zone = *zone;
+ lookup_msg->type = htonl (type);
+ GNUNET_memcpy (&lookup_msg[1],
+ name,
+ nlen);
+ GNUNET_CONTAINER_DLL_insert (handle->lookup_head,
+ handle->lookup_tail,
+ lr);
+ if (NULL != handle->mq)
+ GNUNET_MQ_send_copy (handle->mq,
+ lr->env);
+ return lr;