-options to play with
[oweals/gnunet.git] / src / fs / fs_api.c
index c99131d9463d52656076dadff97aaa837de32530..678187a27124ba60208c7a3221ca705607eb2e8b 100644 (file)
@@ -61,6 +61,10 @@ start_job (struct GNUNET_FS_QueueEntry *qe)
   qe->h->active_blocks += qe->blocks;
   qe->h->active_downloads++;
   qe->start_time = GNUNET_TIME_absolute_get ();
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+             "Starting job %p (%u active)\n",
+             qe,
+             qe->h->active_downloads);
   GNUNET_CONTAINER_DLL_remove (qe->h->pending_head, qe->h->pending_tail, qe);
   GNUNET_CONTAINER_DLL_insert_after (qe->h->running_head, qe->h->running_tail,
                                      qe->h->running_tail, qe);
@@ -85,6 +89,10 @@ stop_job (struct GNUNET_FS_QueueEntry *qe)
       GNUNET_TIME_relative_add (qe->run_time,
                                 GNUNET_TIME_absolute_get_duration
                                 (qe->start_time));
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+             "Stopping job %p (%u active)\n",
+             qe,
+             qe->h->active_downloads);
   GNUNET_CONTAINER_DLL_remove (qe->h->running_head, qe->h->running_tail, qe);
   GNUNET_CONTAINER_DLL_insert_after (qe->h->pending_head, qe->h->pending_tail,
                                      qe->h->pending_tail, qe);
@@ -318,24 +326,31 @@ GNUNET_FS_queue_ (struct GNUNET_FS_Handle *h, GNUNET_FS_QueueStart start,
   if (h->queue_job != GNUNET_SCHEDULER_NO_TASK)
     GNUNET_SCHEDULER_cancel (h->queue_job);
   h->queue_job = GNUNET_SCHEDULER_add_now (&process_job_queue, h);
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+             "Queueing job %p\n",
+             qe);
   return qe;
 }
 
 
 /**
  * Dequeue a job from the queue.
- * @param qh handle for the job
+ *
+ * @param qe handle for the job
  */
 void
-GNUNET_FS_dequeue_ (struct GNUNET_FS_QueueEntry *qh)
+GNUNET_FS_dequeue_ (struct GNUNET_FS_QueueEntry *qe)
 {
   struct GNUNET_FS_Handle *h;
 
-  h = qh->h;
-  if (NULL != qh->client)
-    stop_job (qh);
-  GNUNET_CONTAINER_DLL_remove (h->pending_head, h->pending_tail, qh);
-  GNUNET_free (qh);
+  h = qe->h;
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+             "Dequeueing job %p\n",
+             qe);
+  if (NULL != qe->client)
+    stop_job (qe);
+  GNUNET_CONTAINER_DLL_remove (h->pending_head, h->pending_tail, qe);
+  GNUNET_free (qe);
   if (h->queue_job != GNUNET_SCHEDULER_NO_TASK)
     GNUNET_SCHEDULER_cancel (h->queue_job);
   h->queue_job = GNUNET_SCHEDULER_add_now (&process_job_queue, h);
@@ -738,7 +753,7 @@ GNUNET_FS_remove_sync_dir_ (struct GNUNET_FS_Handle *h, const char *ext,
   dn = get_serialization_file_name_in_dir (h, ext, uni, "");
   if (NULL == dn)
     return;
-  if ((GNUNET_OK == GNUNET_DISK_directory_test (dn)) &&
+  if ((GNUNET_YES == GNUNET_DISK_directory_test (dn, GNUNET_YES)) &&
       (GNUNET_OK != GNUNET_DISK_directory_remove (dn)))
     GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING, "rmdir", dn);
   GNUNET_free (dn);
@@ -2681,7 +2696,7 @@ deserialize_download (struct GNUNET_FS_Handle *h,
   }
   dc->options = (enum GNUNET_FS_DownloadOptions) options;
   dc->active =
-      GNUNET_CONTAINER_multihashmap_create (1 + 2 * (dc->length / DBLOCK_SIZE));
+    GNUNET_CONTAINER_multihashmap_create (1 + 2 * (dc->length / DBLOCK_SIZE), GNUNET_NO);
   dc->has_finished = (int) status;
   dc->treedepth =
       GNUNET_FS_compute_depth (GNUNET_FS_uri_chk_get_file_size (dc->uri));
@@ -2700,7 +2715,7 @@ deserialize_download (struct GNUNET_FS_Handle *h,
   dn = get_download_sync_filename (dc, dc->serialization, ".dir");
   if (NULL != dn)
   {
-    if (GNUNET_YES == GNUNET_DISK_directory_test (dn))
+    if (GNUNET_YES == GNUNET_DISK_directory_test (dn, GNUNET_YES))
       GNUNET_DISK_directory_scan (dn, &deserialize_subdownload, dc);
     GNUNET_free (dn);
   }
@@ -2804,7 +2819,7 @@ deserialize_search (struct GNUNET_FS_Handle *h,
     goto cleanup;
   }
   sc->options = (enum GNUNET_FS_SearchOptions) options;
-  sc->master_result_map = GNUNET_CONTAINER_multihashmap_create (16);
+  sc->master_result_map = GNUNET_CONTAINER_multihashmap_create (16, GNUNET_NO);
   dn = get_serialization_file_name_in_dir (h,
                                            (sc->psearch_result ==
                                             NULL) ?
@@ -2813,7 +2828,7 @@ deserialize_search (struct GNUNET_FS_Handle *h,
                                            sc->serialization, "");
   if (NULL != dn)
   {
-    if (GNUNET_YES == GNUNET_DISK_directory_test (dn))
+    if (GNUNET_YES == GNUNET_DISK_directory_test (dn, GNUNET_YES))
       GNUNET_DISK_directory_scan (dn, &deserialize_search_result, sc);
     GNUNET_free (dn);
   }
@@ -2940,7 +2955,7 @@ deserialization_master (const char *master_path, GNUNET_FileNameCallback proc,
   dn = get_serialization_file_name (h, master_path, "");
   if (NULL == dn)
     return;
-  if (GNUNET_YES == GNUNET_DISK_directory_test (dn))
+  if (GNUNET_YES == GNUNET_DISK_directory_test (dn, GNUNET_YES))
     GNUNET_DISK_directory_scan (dn, proc, h);
   GNUNET_free (dn);
 }