progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *info)
{
static unsigned int cnt;
+ int is_directory;
char *uri;
- char *dotdot;
char *filename;
switch (info->status)
GNUNET_CONTAINER_meta_data_get_by_type (info->value.search.
specifics.result.meta,
EXTRACTOR_METATYPE_GNUNET_ORIGINAL_FILENAME);
+ is_directory =
+ GNUNET_FS_meta_data_test_for_directory (info->value.search.
+ specifics.result.meta);
if (filename != NULL)
{
- while (NULL != (dotdot = strstr (filename, "..")))
- dotdot[0] = dotdot[1] = '_';
- printf ("gnunet-download -o \"%s\" %s\n", filename, uri);
+ GNUNET_DISK_filename_canonicalize (filename);
+ if (GNUNET_YES == is_directory)
+ printf ("gnunet-download -o \"%s%s\" -R %s\n", filename, GNUNET_FS_DIRECTORY_EXT, uri);
+ else
+ printf ("gnunet-download -o \"%s\" %s\n", filename, uri);
}
+ else if (GNUNET_YES == is_directory)
+ printf ("gnunet-download -o \"collection%s\" -R %s\n", GNUNET_FS_DIRECTORY_EXT, uri);
else
printf ("gnunet-download %s\n", uri);
if (verbose)
ret = 1;
return;
}
- if (0 != timeout.rel_value)
+ if (0 != timeout.rel_value_us)
GNUNET_SCHEDULER_add_delayed (timeout, &shutdown_task, NULL);
else
GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, &shutdown_task,
if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
return 2;
- return (GNUNET_OK ==
- GNUNET_PROGRAM_run (argc, argv, "gnunet-search [OPTIONS] KEYWORD",
- gettext_noop
- ("Search GNUnet for files that were published on GNUnet"),
- options, &run, NULL)) ? ret : 1;
+ ret = (GNUNET_OK ==
+ GNUNET_PROGRAM_run (argc, argv, "gnunet-search [OPTIONS] KEYWORD",
+ gettext_noop
+ ("Search GNUnet for files that were published on GNUnet"),
+ options, &run, NULL)) ? ret : 1;
+ GNUNET_free ((void*) argv);
+ return ret;
}
/* end of gnunet-search.c */