- }
- mlen = ntohs (msg->header.size);
- mlen -= sizeof (struct GNUNET_GNS_ClientLookupResultMessage);
- proc = qe->lookup_proc;
- proc_cls = qe->proc_cls;
- GNUNET_CONTAINER_DLL_remove (handle->lookup_head, handle->lookup_tail, qe);
- GNUNET_free (qe);
- if (GNUNET_SYSERR == GNUNET_GNSRECORD_records_deserialize (mlen,
- (const char*) &msg[1],
- rd_count,
- rd))
- {
- LOG (GNUNET_ERROR_TYPE_ERROR,
- _("Failed to deserialize lookup reply from GNS service!\n"));
- proc (proc_cls, 0, NULL);
- }
- else
- {
- LOG (GNUNET_ERROR_TYPE_DEBUG,
- "Received lookup reply from GNS service (%u records)\n",
- (unsigned int) rd_count);
- proc (proc_cls, rd_count, rd);
- }
+ proc = lr->lookup_proc;
+ proc_cls = lr->proc_cls;
+
+ GNUNET_assert (GNUNET_OK ==
+ GNUNET_GNSRECORD_records_deserialize (mlen,
+ (const char*) &lookup_msg[1],
+ rd_count,
+ rd));
+ proc (proc_cls,
+ rd_count,
+ rd);
+ GNUNET_CONTAINER_DLL_remove (handle->lookup_head,
+ handle->lookup_tail,
+ lr);
+ if (NULL != lr->env)
+ GNUNET_MQ_discard (lr->env);
+ GNUNET_free (lr);