+ GNUNET_MQ_send (ch->mq,
+ env);
+ GNUNET_SERVICE_client_continue (ch->client);
+}
+
+
+/**
+ * Check DHT GET messages from the client.
+ *
+ * @param cls the client we received this message from
+ * @param message the actual message received
+ * @return #GNUNET_OK (always)
+ */
+static int
+check_dht_local_get (void *cls,
+ const struct GNUNET_DHT_ClientGetMessage *get)
+{
+ /* always well-formed */
+ return GNUNET_OK;
+}
+
+
+/**
+ * Handle a result from local datacache for a GET operation.
+ *
+ * @param cls the `struct ClientHandle` of the client doing the query
+ * @param type type of the block
+ * @param expiration_time when does the content expire
+ * @param key key for the content
+ * @param put_path_length number of entries in @a put_path
+ * @param put_path peers the original PUT traversed (if tracked)
+ * @param get_path_length number of entries in @a get_path
+ * @param get_path peers this reply has traversed so far (if tracked)
+ * @param data payload of the reply
+ * @param data_size number of bytes in @a data
+ */
+static void
+handle_local_result (void *cls,
+ enum GNUNET_BLOCK_Type type,
+ struct GNUNET_TIME_Absolute expiration_time,
+ const struct GNUNET_HashCode *key,
+ unsigned int put_path_length,
+ const struct GNUNET_PeerIdentity *put_path,
+ unsigned int get_path_length,
+ const struct GNUNET_PeerIdentity *get_path,
+ const void *data,
+ size_t data_size)
+{
+ // FIXME: this needs some clean up: inline the function,
+ // possibly avoid even looking up the client!
+ GDS_CLIENTS_handle_reply (expiration_time,
+ key,
+ 0, NULL,
+ put_path_length, put_path,
+ type,
+ data_size, data);