gnunet-download.c   gnunet-download.c 
skipping to change at line 91 skipping to change at line 91
* and various bits about the event * and various bits about the event
* @return client-context (for the next progress call * @return client-context (for the next progress call
* for this operation; should be set to NULL for * for this operation; should be set to NULL for
* SUSPEND and STOPPED events). The value returned * SUSPEND and STOPPED events). The value returned
* will be passed to future callbacks in the respective * will be passed to future callbacks in the respective
* field in the GNUNET_FS_ProgressInfo struct. * field in the GNUNET_FS_ProgressInfo struct.
*/ */
static void * static void *
progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *info) progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *info)
{ {
char *s; char *s, *s2;
char *t; char *t;
switch (info->status) switch (info->status)
{ {
case GNUNET_FS_STATUS_DOWNLOAD_START: case GNUNET_FS_STATUS_DOWNLOAD_START:
if (verbose > 1) if (verbose > 1)
fprintf (stderr, _("Starting download `%s'.\n"), FPRINTF (stderr, _("Starting download `%s'.\n"),
info->value.download.filename); info->value.download.filename);
break; break;
case GNUNET_FS_STATUS_DOWNLOAD_PROGRESS: case GNUNET_FS_STATUS_DOWNLOAD_PROGRESS:
if (verbose) if (verbose)
{ {
s = GNUNET_STRINGS_relative_time_to_string (info->value.download.eta) ; s = GNUNET_STRINGS_relative_time_to_string (info->value.download.eta) ;
if (info->value.download.specifics.progress.block_download_duration.r
el_value
== GNUNET_TIME_UNIT_FOREVER_REL.rel_value)
s2 = GNUNET_strdup (_("<unknown time>"));
else
s2 = GNUNET_STRINGS_relative_time_to_string (
info->value.download.specifics.progress.block_download_durati
on);
t = GNUNET_STRINGS_byte_size_fancy (info->value.download.completed * t = GNUNET_STRINGS_byte_size_fancy (info->value.download.completed *
1000LL / 1000LL /
(info->value.download. (info->value.download.
duration.rel_value + 1)); duration.rel_value + 1));
fprintf (stdout, FPRINTF (stdout,
_("Downloading `%s' at %llu/%llu (%s remaining, %s/s)\n"), _("Downloading `%s' at %llu/%llu (%s remaining, %s/s). Block
took %s to download\n"),
info->value.download.filename, info->value.download.filename,
(unsigned long long) info->value.download.completed, (unsigned long long) info->value.download.completed,
(unsigned long long) info->value.download.size, s, t); (unsigned long long) info->value.download.size, s, t, s2);
GNUNET_free (s); GNUNET_free (s);
GNUNET_free (s2);
GNUNET_free (t); GNUNET_free (t);
} }
break; break;
case GNUNET_FS_STATUS_DOWNLOAD_ERROR: case GNUNET_FS_STATUS_DOWNLOAD_ERROR:
fprintf (stderr, _("Error downloading: %s.\n"), FPRINTF (stderr, _("Error downloading: %s.\n"),
info->value.download.specifics.error.message); info->value.download.specifics.error.message);
GNUNET_SCHEDULER_shutdown (); GNUNET_SCHEDULER_shutdown ();
break; break;
case GNUNET_FS_STATUS_DOWNLOAD_COMPLETED: case GNUNET_FS_STATUS_DOWNLOAD_COMPLETED:
s = GNUNET_STRINGS_byte_size_fancy (info->value.download.completed * 10 00 / s = GNUNET_STRINGS_byte_size_fancy (info->value.download.completed * 10 00 /
(info->value.download. (info->value.download.
duration.rel_value + 1)); duration.rel_value + 1));
fprintf (stdout, _("Downloading `%s' done (%s/s).\n"), FPRINTF (stdout, _("Downloading `%s' done (%s/s).\n"),
info->value.download.filename, s); info->value.download.filename, s);
GNUNET_free (s); GNUNET_free (s);
if (info->value.download.dc == dc) if (info->value.download.dc == dc)
GNUNET_SCHEDULER_shutdown (); GNUNET_SCHEDULER_shutdown ();
break; break;
case GNUNET_FS_STATUS_DOWNLOAD_STOPPED: case GNUNET_FS_STATUS_DOWNLOAD_STOPPED:
if (info->value.download.dc == dc) if (info->value.download.dc == dc)
GNUNET_SCHEDULER_add_continuation (&cleanup_task, NULL, GNUNET_SCHEDULER_add_continuation (&cleanup_task, NULL,
GNUNET_SCHEDULER_REASON_PREREQ_DON E); GNUNET_SCHEDULER_REASON_PREREQ_DON E);
break; break;
case GNUNET_FS_STATUS_DOWNLOAD_ACTIVE: case GNUNET_FS_STATUS_DOWNLOAD_ACTIVE:
case GNUNET_FS_STATUS_DOWNLOAD_INACTIVE: case GNUNET_FS_STATUS_DOWNLOAD_INACTIVE:
break; break;
default: default:
fprintf (stderr, _("Unexpected status: %d\n"), info->status); FPRINTF (stderr, _("Unexpected status: %d\n"), info->status);
break; break;
} }
return NULL; return NULL;
} }
/** /**
* Main function that will be run by the scheduler. * Main function that will be run by the scheduler.
* *
* @param cls closure * @param cls closure
* @param args remaining command-line arguments * @param args remaining command-line arguments
skipping to change at line 166 skipping to change at line 173
static void static void
run (void *cls, char *const *args, const char *cfgfile, run (void *cls, char *const *args, const char *cfgfile,
const struct GNUNET_CONFIGURATION_Handle *c) const struct GNUNET_CONFIGURATION_Handle *c)
{ {
struct GNUNET_FS_Uri *uri; struct GNUNET_FS_Uri *uri;
char *emsg; char *emsg;
enum GNUNET_FS_DownloadOptions options; enum GNUNET_FS_DownloadOptions options;
if (NULL == args[0]) if (NULL == args[0])
{ {
fprintf (stderr, _("You need to specify a URI argument.\n")); FPRINTF (stderr, "%s", _("You need to specify a URI argument.\n"));
return; return;
} }
uri = GNUNET_FS_uri_parse (args[0], &emsg); uri = GNUNET_FS_uri_parse (args[0], &emsg);
if (NULL == uri) if (NULL == uri)
{ {
fprintf (stderr, _("Failed to parse URI: %s\n"), emsg); FPRINTF (stderr, _("Failed to parse URI: %s\n"), emsg);
GNUNET_free (emsg); GNUNET_free (emsg);
ret = 1; ret = 1;
return; return;
} }
if ((!GNUNET_FS_uri_test_chk (uri)) && (!GNUNET_FS_uri_test_loc (uri))) if ((!GNUNET_FS_uri_test_chk (uri)) && (!GNUNET_FS_uri_test_loc (uri)))
{ {
fprintf (stderr, _("Only CHK or LOC URIs supported.\n")); FPRINTF (stderr, "%s", _("Only CHK or LOC URIs supported.\n"));
ret = 1; ret = 1;
GNUNET_FS_uri_destroy (uri); GNUNET_FS_uri_destroy (uri);
return; return;
} }
if (NULL == filename) if (NULL == filename)
{ {
fprintf (stderr, _("Target filename must be specified.\n")); FPRINTF (stderr, "%s", _("Target filename must be specified.\n"));
ret = 1; ret = 1;
GNUNET_FS_uri_destroy (uri); GNUNET_FS_uri_destroy (uri);
return; return;
} }
cfg = c; cfg = c;
ctx = ctx =
GNUNET_FS_start (cfg, "gnunet-download", &progress_cb, NULL, GNUNET_FS_start (cfg, "gnunet-download", &progress_cb, NULL,
GNUNET_FS_FLAGS_NONE, GNUNET_FS_FLAGS_NONE,
GNUNET_FS_OPTIONS_DOWNLOAD_PARALLELISM, parallelism, GNUNET_FS_OPTIONS_DOWNLOAD_PARALLELISM, parallelism,
GNUNET_FS_OPTIONS_REQUEST_PARALLELISM, GNUNET_FS_OPTIONS_REQUEST_PARALLELISM,
request_parallelism, GNUNET_FS_OPTIONS_END); request_parallelism, GNUNET_FS_OPTIONS_END);
if (NULL == ctx) if (NULL == ctx)
{ {
fprintf (stderr, _("Could not initialize `%s' subsystem.\n"), "FS"); FPRINTF (stderr, _("Could not initialize `%s' subsystem.\n"), "FS");
GNUNET_FS_uri_destroy (uri); GNUNET_FS_uri_destroy (uri);
ret = 1; ret = 1;
return; return;
} }
options = GNUNET_FS_DOWNLOAD_OPTION_NONE; options = GNUNET_FS_DOWNLOAD_OPTION_NONE;
if (do_recursive) if (do_recursive)
options |= GNUNET_FS_DOWNLOAD_OPTION_RECURSIVE; options |= GNUNET_FS_DOWNLOAD_OPTION_RECURSIVE;
if (local_only) if (local_only)
options |= GNUNET_FS_DOWNLOAD_OPTION_LOOPBACK_ONLY; options |= GNUNET_FS_DOWNLOAD_OPTION_LOOPBACK_ONLY;
dc = GNUNET_FS_download_start (ctx, uri, NULL, filename, NULL, 0, dc = GNUNET_FS_download_start (ctx, uri, NULL, filename, NULL, 0,
skipping to change at line 243 skipping to change at line 250
{ {
static const struct GNUNET_GETOPT_CommandLineOption options[] = { static const struct GNUNET_GETOPT_CommandLineOption options[] = {
{'a', "anonymity", "LEVEL", {'a', "anonymity", "LEVEL",
gettext_noop ("set the desired LEVEL of receiver-anonymity"), gettext_noop ("set the desired LEVEL of receiver-anonymity"),
1, &GNUNET_GETOPT_set_uint, &anonymity}, 1, &GNUNET_GETOPT_set_uint, &anonymity},
{'D', "delete-incomplete", NULL, {'D', "delete-incomplete", NULL,
gettext_noop ("delete incomplete downloads (when aborted with CTRL-C)" ), gettext_noop ("delete incomplete downloads (when aborted with CTRL-C)" ),
0, &GNUNET_GETOPT_set_one, &delete_incomplete}, 0, &GNUNET_GETOPT_set_one, &delete_incomplete},
{'n', "no-network", NULL, {'n', "no-network", NULL,
gettext_noop ("only search the local peer (no P2P network search)"), gettext_noop ("only search the local peer (no P2P network search)"),
1, &GNUNET_GETOPT_set_uint, &local_only}, 0, &GNUNET_GETOPT_set_uint, &local_only},
{'o', "output", "FILENAME", {'o', "output", "FILENAME",
gettext_noop ("write the file to FILENAME"), gettext_noop ("write the file to FILENAME"),
1, &GNUNET_GETOPT_set_string, &filename}, 1, &GNUNET_GETOPT_set_string, &filename},
{'p', "parallelism", "DOWNLOADS", {'p', "parallelism", "DOWNLOADS",
gettext_noop gettext_noop
("set the maximum number of parallel downloads that is allowed"), ("set the maximum number of parallel downloads that is allowed"),
1, &GNUNET_GETOPT_set_uint, &parallelism}, 1, &GNUNET_GETOPT_set_uint, &parallelism},
{'r', "request-parallelism", "REQUESTS", {'r', "request-parallelism", "REQUESTS",
gettext_noop gettext_noop
("set the maximum number of parallel requests for blocks that is allow ed"), ("set the maximum number of parallel requests for blocks that is allow ed"),
 End of changes. 15 change blocks. 
14 lines changed or deleted 24 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/