-only trigger check config if we actually need it
[oweals/gnunet.git] / src / fs / gnunet-download.c
index 04edc66c8864a37b4aa7a5e253afb1fcea30c5e3..6d9adb8abe46db55bb120291db753818d0683da7 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2001, 2002, 2004, 2005, 2006, 2007, 2009 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2001, 2002, 2004, 2005, 2006, 2007, 2009 GNUnet e.V.
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -14,8 +14,8 @@
 
      You should have received a copy of the GNU General Public License
      along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
 */
 /**
  * @file fs/gnunet-download.c
@@ -54,7 +54,7 @@ static int local_only;
 
 
 static void
-cleanup_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+cleanup_task (void *cls)
 {
   GNUNET_FS_stop (ctx);
   ctx = NULL;
@@ -62,7 +62,7 @@ cleanup_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 
 
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   if (NULL != dc)
   {
@@ -79,9 +79,9 @@ shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
  * @param n total size of the download
  * @param w desired number of steps in the progress bar
  */
-static void 
-display_bar (unsigned long long x, 
-            unsigned long long n, 
+static void
+display_bar (unsigned long long x,
+            unsigned long long n,
             unsigned int w)
 {
   char buf[w + 20];
@@ -121,7 +121,7 @@ display_bar (unsigned long long x,
  *         for this operation; should be set to NULL for
  *         SUSPEND and STOPPED events).  The value returned
  *         will be passed to future callbacks in the respective
- *         field in the GNUNET_FS_ProgressInfo struct.
+ *         field in the `struct GNUNET_FS_ProgressInfo`
  */
 static void *
 progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *info)
@@ -142,8 +142,8 @@ progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *info)
     {
       s = GNUNET_strdup (GNUNET_STRINGS_relative_time_to_string (info->value.download.eta,
                                                                 GNUNET_YES));
-      if (info->value.download.specifics.progress.block_download_duration.rel_value 
-          == GNUNET_TIME_UNIT_FOREVER_REL.rel_value)
+      if (info->value.download.specifics.progress.block_download_duration.rel_value_us
+          == GNUNET_TIME_UNIT_FOREVER_REL.rel_value_us)
         s2 = _("<unknown time>");
       else
         s2 = GNUNET_STRINGS_relative_time_to_string (
@@ -152,7 +152,7 @@ progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *info)
       t = GNUNET_STRINGS_byte_size_fancy (info->value.download.completed *
                                           1000LL /
                                           (info->value.download.
-                                           duration.rel_value + 1));
+                                           duration.rel_value_us + 1));
       FPRINTF (stdout,
                _("Downloading `%s' at %llu/%llu (%s remaining, %s/s). Block took %s to download\n"),
                info->value.download.filename,
@@ -183,7 +183,7 @@ progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *info)
   case GNUNET_FS_STATUS_DOWNLOAD_COMPLETED:
     s = GNUNET_STRINGS_byte_size_fancy (info->value.download.completed * 1000 /
                                         (info->value.download.
-                                         duration.rel_value + 1));
+                                         duration.rel_value_us + 1));
 #if !WINDOWS
     if (0 != isatty (1))
       fprintf (stdout, "\n");
@@ -199,8 +199,7 @@ progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *info)
     break;
   case GNUNET_FS_STATUS_DOWNLOAD_STOPPED:
     if (info->value.download.dc == dc)
-      GNUNET_SCHEDULER_add_continuation (&cleanup_task, NULL,
-                                         GNUNET_SCHEDULER_REASON_PREREQ_DONE);
+      GNUNET_SCHEDULER_add_now (&cleanup_task, NULL);
     break;
   case GNUNET_FS_STATUS_DOWNLOAD_ACTIVE:
   case GNUNET_FS_STATUS_DOWNLOAD_INACTIVE:
@@ -285,8 +284,8 @@ run (void *cls, char *const *args, const char *cfgfile,
     ctx = NULL;
     return;
   }
-  GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, &shutdown_task,
-                                NULL);
+  GNUNET_SCHEDULER_add_shutdown (&shutdown_task,
+                                NULL);
 }
 
 
@@ -309,7 +308,7 @@ main (int argc, char *const *argv)
      0, &GNUNET_GETOPT_set_one, &delete_incomplete},
     {'n', "no-network", NULL,
      gettext_noop ("only search the local peer (no P2P network search)"),
-     0, &GNUNET_GETOPT_set_uint, &local_only},
+     0, &GNUNET_GETOPT_set_one, &local_only},
     {'o', "output", "FILENAME",
      gettext_noop ("write the file to FILENAME"),
      1, &GNUNET_GETOPT_set_string, &filename},