コード例 #1
0
ファイル: gnunet-download.c プロジェクト: muggenhor/GNUnet
static void
shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
  if (NULL != dc)
  {
    GNUNET_FS_download_stop (dc, delete_incomplete);
    dc = NULL;
  }
}
コード例 #2
0
ファイル: fs_search.c プロジェクト: claudiuolteanu/gnunet-1
/**
 * Stop probing activity associated with a search result.
 *
 * @param sr search result
 */
static void
GNUNET_FS_search_stop_probe_ (struct GNUNET_FS_SearchResult *sr)
{
  if (NULL != sr->probe_ctx)
  {
    GNUNET_FS_download_stop (sr->probe_ctx, GNUNET_YES);
    sr->probe_ctx = NULL;
  }
  if (GNUNET_SCHEDULER_NO_TASK != sr->probe_ping_task)
  {
    GNUNET_SCHEDULER_cancel (sr->probe_ping_task);
    sr->probe_ping_task = GNUNET_SCHEDULER_NO_TASK;
  }
  if (GNUNET_SCHEDULER_NO_TASK != sr->probe_cancel_task)
  {
    GNUNET_SCHEDULER_cancel (sr->probe_cancel_task);
    sr->probe_cancel_task = GNUNET_SCHEDULER_NO_TASK;
  }
}
コード例 #3
0
ファイル: fs_search.c プロジェクト: claudiuolteanu/gnunet-1
/**
 * Handle the case where we have failed to receive a response for our probe.
 *
 * @param cls our `struct GNUNET_FS_SearchResult *`
 * @param tc scheduler context
 */
static void
probe_failure_handler (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
  struct GNUNET_FS_SearchResult *sr = cls;

  sr->probe_cancel_task = GNUNET_SCHEDULER_NO_TASK;
  sr->availability_trials++;
  GNUNET_FS_download_stop (sr->probe_ctx, GNUNET_YES);
  sr->probe_ctx = NULL;
  if (GNUNET_SCHEDULER_NO_TASK != sr->probe_ping_task)
  {
    GNUNET_SCHEDULER_cancel (sr->probe_ping_task);
    sr->probe_ping_task = GNUNET_SCHEDULER_NO_TASK;
  }
  GNUNET_FS_search_result_sync_ (sr);
  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
	      "Probe #%u for search result %p failed\n",
	      sr->availability_trials,
	      sr);
  signal_probe_result (sr);
}