-use GPLv3+ consistently
[oweals/gnunet.git] / src / fs / fs_download.c
index ecb5c5f8aae0bbeb3d464d7fa1bb6d458291c4e9..a86df253ab31e89b1017875446511fc07aafe541 100644 (file)
@@ -122,6 +122,7 @@ GNUNET_FS_download_make_status_ (struct GNUNET_FS_ProgressInfo *pi,
   pi->value.download.eta =
       GNUNET_TIME_calculate_eta (dc->start_time, dc->completed, dc->length);
   pi->value.download.is_active = (NULL == dc->client) ? GNUNET_NO : GNUNET_YES;
+  pi->fsh = dc->h;
   if (0 == (dc->options & GNUNET_FS_DOWNLOAD_IS_PROBE))
     dc->client_info = dc->h->upcb (dc->h->upcb_cls, pi);
   else
@@ -1081,7 +1082,7 @@ process_result_with_request (void *cls, const struct GNUNET_HashCode * key,
   pi.value.download.specifics.progress.depth = dr->depth;
   pi.value.download.specifics.progress.respect_offered = prc->respect_offered;
   pi.value.download.specifics.progress.num_transmissions = prc->num_transmissions;
-  if (prc->last_transmission.abs_value != GNUNET_TIME_UNIT_FOREVER_ABS.abs_value)
+  if (prc->last_transmission.abs_value_us != GNUNET_TIME_UNIT_FOREVER_ABS.abs_value_us)
     pi.value.download.specifics.progress.block_download_duration 
       = GNUNET_TIME_absolute_get_duration (prc->last_transmission);
   else
@@ -1436,12 +1437,11 @@ try_reconnect (struct GNUNET_FS_DownloadContext *dc)
     dc->in_receive = GNUNET_NO;
     dc->client = NULL;
   }
-  if (0 == dc->reconnect_backoff.rel_value)
+  if (0 == dc->reconnect_backoff.rel_value_us)
     dc->reconnect_backoff = GNUNET_TIME_UNIT_MILLISECONDS;
   else
-    dc->reconnect_backoff = GNUNET_TIME_relative_min (GNUNET_TIME_relative_multiply (dc->reconnect_backoff, 2),
-                                                     GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 10));
-  
+    dc->reconnect_backoff = GNUNET_TIME_STD_BACKOFF (dc->reconnect_backoff);
+
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Will try to reconnect in %s\n",
              GNUNET_STRINGS_relative_time_to_string (dc->reconnect_backoff, GNUNET_YES));
   dc->task =
@@ -1885,7 +1885,7 @@ GNUNET_FS_download_start_task_ (void *cls,
     dc->top_request->state = BRS_CHK_SET;
     dc->top_request->chk =
         (dc->uri->type ==
-         chk) ? dc->uri->data.chk.chk : dc->uri->data.loc.fi.chk;
+         GNUNET_FS_URI_CHK) ? dc->uri->data.chk.chk : dc->uri->data.loc.fi.chk;
     /* signal start */
     GNUNET_FS_download_sync_ (dc);
     if (NULL != dc->search)
@@ -2082,6 +2082,11 @@ create_download_context (struct GNUNET_FS_Handle *h,
     return NULL;
   }
   dc = GNUNET_malloc (sizeof (struct GNUNET_FS_DownloadContext));
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+             "Starting download %p, %u bytes at offset %llu\n",
+             dc,
+             (unsigned long long) length,
+             (unsigned long long) offset);
   dc->h = h;
   dc->uri = GNUNET_FS_uri_dup (uri);
   dc->meta = GNUNET_CONTAINER_meta_data_duplicate (meta);
@@ -2237,6 +2242,11 @@ GNUNET_FS_download_start_from_search (struct GNUNET_FS_Handle *h,
     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;
+  }
   return dc;
 }
 
@@ -2259,6 +2269,10 @@ GNUNET_FS_download_start_downloading_ (struct GNUNET_FS_DownloadContext *dc)
                        (0 == (dc->options & GNUNET_FS_DOWNLOAD_IS_PROBE))
                        ? GNUNET_FS_QUEUE_PRIORITY_NORMAL 
                        : GNUNET_FS_QUEUE_PRIORITY_PROBE);
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+             "Download %p put into queue as job %p\n",
+             dc,
+             dc->job_queue);
 }