- gettext_noop ("# on-demand blocks matched requests"),
- 1,
- GNUNET_NO);
- pr->qe_start = GNUNET_TIME_absolute_get ();
- pr->warn_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_MINUTES,
- &odc_warn_delay_task,
- pr);
- if (GNUNET_OK ==
- GNUNET_FS_handle_on_demand_block (key, size, data, type, priority,
- anonymity, expiration, uid,
- &process_local_reply,
- pr))
- {
- GNUNET_STATISTICS_update (GSF_stats,
- gettext_noop ("# on-demand lookups performed successfully"),
- 1,
- GNUNET_NO);
- return; /* we're done */
- }
- GNUNET_STATISTICS_update (GSF_stats,
- gettext_noop ("# on-demand lookups failed"),
- 1,
- GNUNET_NO);
- GNUNET_SCHEDULER_cancel (pr->warn_task);
- pr->warn_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_MINUTES,
- &warn_delay_task,
- pr);
- pr->qe = GNUNET_DATASTORE_get_key (GSF_dsh,
- pr->local_result_offset - 1,
- &pr->public_data.query,
- pr->public_data.type == GNUNET_BLOCK_TYPE_FS_DBLOCK
- ? GNUNET_BLOCK_TYPE_ANY
- : pr->public_data.type,
- (0 != (GSF_PRO_PRIORITY_UNLIMITED & pr->public_data.options))
- ? UINT_MAX
- : 1 /* queue priority */,
- (0 != (GSF_PRO_PRIORITY_UNLIMITED & pr->public_data.options))
- ? UINT_MAX
- : 1 /* max queue size */,
- GNUNET_TIME_UNIT_FOREVER_REL,
- &process_local_reply,
- pr);
- if (NULL != pr->qe)
- {
- GNUNET_STATISTICS_update (GSF_stats,
- gettext_noop ("# Datastore lookups concluded (error queueing)"),
- 1,
- GNUNET_NO);
- return; /* we're done */
- }
- goto check_error_and_continue;