* should never get here unless false dht key/put
* block plugin should handle this
**/
- GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "DHT authority lookup error!\n");
- GNUNET_break(0);
+ GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "DHT authority lookup found no match!\n");
+ rh->proc(rh->proc_cls, rh, 0, NULL);
}
if (type != GNUNET_BLOCK_TYPE_GNS_NAMERECORD)
return GNUNET_BLOCK_EVALUATION_TYPE_NOT_SUPPORTED;
- if (reply_block_size == 0)
- return GNUNET_BLOCK_EVALUATION_REQUEST_VALID;
-
+ if (reply_block == NULL)
+ {
+ /**
+ * check if request is valid
+ * FIXME we could check for the record types here
+ **/
+ if (xquery_size < sizeof(uint32_t))
+ return GNUNET_BLOCK_EVALUATION_REQUEST_INVALID;
+ else
+ return GNUNET_BLOCK_EVALUATION_REQUEST_VALID;
+ }
+
+ /* this is a reply */
+
nrb = (struct GNSNameRecordBlock *)reply_block;
name = (char*)&nrb[1];
GNUNET_CRYPTO_hash(&nrb->public_key,
/* Check query key against public key */
if (0 != GNUNET_CRYPTO_hash_cmp(query, &query_key))
- return GNUNET_BLOCK_EVALUATION_REQUEST_VALID;
+ return GNUNET_BLOCK_EVALUATION_RESULT_INVALID;
record_match = 0;
rd_count = ntohl(nrb->rd_count);
{
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
"Data invalid (%d bytes, %d records)\n", rd_len, rd_count);
- return GNUNET_BLOCK_EVALUATION_REQUEST_INVALID;
+ return GNUNET_BLOCK_EVALUATION_RESULT_INVALID;
}
if (xquery_size < sizeof(uint32_t))
&nrb->signature))
{
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Signature invalid\n");
- return GNUNET_BLOCK_EVALUATION_REQUEST_INVALID;
+ return GNUNET_BLOCK_EVALUATION_RESULT_INVALID;
}
}
- if ((record_xquery != 0) && (record_match == 0))
- {
- GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
- "No record matches query!\n");
- return GNUNET_BLOCK_EVALUATION_REQUEST_VALID;
- }
-
- GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Records match\n");
-
if (NULL != bf)
{
GNUNET_CRYPTO_hash(reply_block, reply_block_size, &chash);