GNUnet 0.21.0
gnunet-download.c File Reference

downloading for files on GNUnet More...

#include "platform.h"
#include "gnunet_fs_service.h"
Include dependency graph for gnunet-download.c:

Go to the source code of this file.

Functions

static void cleanup_task (void *cls)
 
static void shutdown_task (void *cls)
 
static void display_bar (unsigned long long x, unsigned long long n, unsigned int w)
 Display progress bar (if tty). More...
 
static void * progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *info)
 Called by FS client to give information about the progress of an operation. More...
 
static void run (void *cls, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *c)
 Main function that will be run by the scheduler. More...
 
int main (int argc, char *const *argv)
 The main function to download GNUnet. More...
 

Variables

static int ret
 
static unsigned int verbose
 
static int delete_incomplete
 
static const struct GNUNET_CONFIGURATION_Handlecfg
 
static struct GNUNET_FS_Handlectx
 
static struct GNUNET_FS_DownloadContextdc
 
static unsigned int anonymity = 1
 
static unsigned int parallelism = 16
 
static unsigned int request_parallelism = 4092
 
static int do_recursive
 
static char * filename
 
static int local_only
 

Detailed Description

downloading for files on GNUnet

Author
Christian Grothoff
Krista Bennett
James Blackwell
Igor Wronsky

Definition in file gnunet-download.c.

Function Documentation

◆ cleanup_task()

static void cleanup_task ( void *  cls)
static

Definition at line 58 of file gnunet-download.c.

59{
61 ctx = NULL;
62}
static struct GNUNET_FS_Handle * ctx
void GNUNET_FS_stop(struct GNUNET_FS_Handle *h)
Close our connection with the file-sharing service.
Definition: fs_api.c:3310

References ctx, and GNUNET_FS_stop().

Referenced by progress_cb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ shutdown_task()

static void shutdown_task ( void *  cls)
static

Definition at line 66 of file gnunet-download.c.

67{
68 if (NULL != dc)
69 {
71 dc = NULL;
72 }
73}
static struct GNUNET_FS_DownloadContext * dc
static int delete_incomplete
void GNUNET_FS_download_stop(struct GNUNET_FS_DownloadContext *dc, int do_delete)
Stop a download (aborts if download is incomplete).
Definition: fs_download.c:2253

References dc, delete_incomplete, and GNUNET_FS_download_stop().

Referenced by run().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ display_bar()

static void display_bar ( unsigned long long  x,
unsigned long long  n,
unsigned int  w 
)
static

Display progress bar (if tty).

Parameters
xcurrent position in the download
ntotal size of the download
wdesired number of steps in the progress bar

Definition at line 84 of file gnunet-download.c.

85{
86 char buf[w + 20];
87 unsigned int p;
88 unsigned int endeq;
89 float ratio_complete;
90
91 if (0 == isatty (1))
92 return;
93 ratio_complete = x / (float) n;
94 endeq = ratio_complete * w;
95 GNUNET_snprintf (buf, sizeof(buf), "%3d%% [", (int) (ratio_complete * 100));
96 for (p = 0; p < endeq; p++)
97 strcat (buf, "=");
98 for (p = endeq; p < w; p++)
99 strcat (buf, " ");
100 strcat (buf, "]\r");
101 printf ("%s", buf);
102 fflush (stdout);
103}
static struct GNUNET_OS_Process * p
Helper process we started.
Definition: gnunet-uri.c:38
int GNUNET_snprintf(char *buf, size_t size, const char *format,...) __attribute__((format(printf
Like snprintf, just aborts if the buffer is of insufficient size.

References GNUNET_snprintf(), and p.

Referenced by progress_cb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ progress_cb()

static void * progress_cb ( void *  cls,
const struct GNUNET_FS_ProgressInfo info 
)
static

Called by FS client to give information about the progress of an operation.

Parameters
clsclosure
infodetails about the event, specifying the event type and various bits about the event
Returns
client-context (for the next progress call 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 struct GNUNET_FS_ProgressInfo

Definition at line 120 of file gnunet-download.c.

121{
122 char *s;
123 const char *s2;
124 char *t;
125
126 switch (info->status)
127 {
129 if (verbose > 1)
130 fprintf (stderr,
131 _ ("Starting download `%s'.\n"),
132 info->value.download.filename);
133 break;
134
136 if (verbose)
137 {
138 s = GNUNET_strdup (
139 GNUNET_STRINGS_relative_time_to_string (info->value.download.eta,
140 GNUNET_YES));
141 if (info->value.download.specifics.progress.block_download_duration
142 .rel_value_us == GNUNET_TIME_UNIT_FOREVER_REL.rel_value_us)
143 s2 = _ ("<unknown time>");
144 else
145 s2 = GNUNET_STRINGS_relative_time_to_string (info->value.download
146 .specifics.progress
147 .block_download_duration,
148 GNUNET_YES);
150 info->value.download.completed * 1000LL
151 / (info->value.download.duration.rel_value_us + 1));
152 fprintf (
153 stdout,
154 _ (
155 "Downloading `%s' at %llu/%llu (%s remaining, %s/s). Block took %s to download\n"),
156 info->value.download.filename,
157 (unsigned long long) info->value.download.completed,
158 (unsigned long long) info->value.download.size,
159 s,
160 t,
161 s2);
162 GNUNET_free (s);
163 GNUNET_free (t);
164 }
165 else
166 {
167 display_bar (info->value.download.completed,
168 info->value.download.size,
169 60);
170 }
171 break;
172
174 if (0 != isatty (1))
175 fprintf (stdout, "\n");
176 fprintf (stderr,
177 _ ("Error downloading: %s.\n"),
178 info->value.download.specifics.error.message);
180 break;
181
184 info->value.download.completed * 1000
185 / (info->value.download.duration.rel_value_us + 1));
186 if (0 != isatty (1))
187 fprintf (stdout, "\n");
188 fprintf (stdout,
189 _ ("Downloading `%s' done (%s/s).\n"),
190 info->value.download.filename,
191 s);
192 GNUNET_free (s);
193 if (info->value.download.dc == dc)
195 break;
196
198 if (info->value.download.dc == dc)
200 break;
201
204 break;
205
206 default:
207 fprintf (stderr, _ ("Unexpected status: %d\n"), info->status);
208 break;
209 }
210 return NULL;
211}
static unsigned int verbose
static void display_bar(unsigned long long x, unsigned long long n, unsigned int w)
Display progress bar (if tty).
static void cleanup_task(void *cls)
#define info
static struct GNUNET_SCHEDULER_Task * t
Main task.
@ GNUNET_FS_STATUS_DOWNLOAD_INACTIVE
Notification that this download is no longer actively being pursued (back in the queue).
@ GNUNET_FS_STATUS_DOWNLOAD_ERROR
Notification that this download encountered an error.
@ GNUNET_FS_STATUS_DOWNLOAD_COMPLETED
Notification that this download completed.
@ GNUNET_FS_STATUS_DOWNLOAD_START
Notification that we have started this download.
@ GNUNET_FS_STATUS_DOWNLOAD_PROGRESS
Notification about progress with this download.
@ GNUNET_FS_STATUS_DOWNLOAD_ACTIVE
Notification that this download is now actively being pursued (as opposed to waiting in the queue).
@ GNUNET_FS_STATUS_DOWNLOAD_STOPPED
Notification that this download was stopped (final event with respect to this action).
@ GNUNET_YES
#define GNUNET_strdup(a)
Wrapper around GNUNET_xstrdup_.
#define GNUNET_free(ptr)
Wrapper around free.
void GNUNET_SCHEDULER_shutdown(void)
Request the shutdown of a scheduler.
Definition: scheduler.c:562
struct GNUNET_SCHEDULER_Task * GNUNET_SCHEDULER_add_now(GNUNET_SCHEDULER_TaskCallback task, void *task_cls)
Schedule a new task to be run as soon as possible.
Definition: scheduler.c:1299
char * GNUNET_STRINGS_byte_size_fancy(unsigned long long size)
Convert a given filesize into a fancy human-readable format.
Definition: strings.c:106
#define GNUNET_TIME_UNIT_FOREVER_REL
Constant used to specify "forever".
const char * GNUNET_STRINGS_relative_time_to_string(struct GNUNET_TIME_Relative delta, int do_round)
Give relative time in human-readable fancy format.
Definition: strings.c:570
#define _(String)
GNU gettext support macro.
Definition: platform.h:178

References _, cleanup_task(), dc, display_bar(), GNUNET_free, GNUNET_FS_STATUS_DOWNLOAD_ACTIVE, GNUNET_FS_STATUS_DOWNLOAD_COMPLETED, GNUNET_FS_STATUS_DOWNLOAD_ERROR, GNUNET_FS_STATUS_DOWNLOAD_INACTIVE, GNUNET_FS_STATUS_DOWNLOAD_PROGRESS, GNUNET_FS_STATUS_DOWNLOAD_START, GNUNET_FS_STATUS_DOWNLOAD_STOPPED, GNUNET_SCHEDULER_add_now(), GNUNET_SCHEDULER_shutdown(), GNUNET_strdup, GNUNET_STRINGS_byte_size_fancy(), GNUNET_STRINGS_relative_time_to_string(), GNUNET_TIME_UNIT_FOREVER_REL, GNUNET_YES, info, t, and verbose.

Referenced by run().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run()

static void run ( void *  cls,
char *const *  args,
const char *  cfgfile,
const struct GNUNET_CONFIGURATION_Handle c 
)
static

Main function that will be run by the scheduler.

Parameters
clsclosure
argsremaining command-line arguments
cfgfilename of the configuration file used (for saving, can be NULL!)
cconfiguration

Definition at line 223 of file gnunet-download.c.

227{
228 struct GNUNET_FS_Uri *uri;
229 char *emsg;
231
232 if (NULL == args[0])
233 {
234 fprintf (stderr, "%s", _ ("You need to specify a URI argument.\n"));
235 return;
236 }
237 uri = GNUNET_FS_uri_parse (args[0], &emsg);
238 if (NULL == uri)
239 {
240 fprintf (stderr, _ ("Failed to parse URI: %s\n"), emsg);
241 GNUNET_free (emsg);
242 ret = 1;
243 return;
244 }
246 {
247 fprintf (stderr, "%s", _ ("Only CHK or LOC URIs supported.\n"));
248 ret = 1;
250 return;
251 }
252 if (NULL == filename)
253 {
254 fprintf (stderr, "%s", _ ("Target filename must be specified.\n"));
255 ret = 1;
257 return;
258 }
259 cfg = c;
261 "gnunet-download",
263 NULL,
270 if (NULL == ctx)
271 {
272 fprintf (stderr, _ ("Could not initialize `%s' subsystem.\n"), "FS");
274 ret = 1;
275 return;
276 }
278 if (do_recursive)
280 if (local_only)
283 uri,
284 NULL,
285 filename,
286 NULL,
287 0,
289 anonymity,
290 options,
291 NULL,
292 NULL);
294 if (dc == NULL)
295 {
297 ctx = NULL;
298 return;
299 }
301}
struct GNUNET_GETOPT_CommandLineOption options[]
Definition: 002.c:5
static unsigned int anonymity
static int do_recursive
static const struct GNUNET_CONFIGURATION_Handle * cfg
static void shutdown_task(void *cls)
static int ret
static void * progress_cb(void *cls, const struct GNUNET_FS_ProgressInfo *info)
Called by FS client to give information about the progress of an operation.
static unsigned int request_parallelism
static unsigned int parallelism
static int local_only
static char * filename
static struct GNUNET_FS_Uri * uri
Value of URI provided on command-line (when not publishing a file but just creating UBlocks to refer ...
GNUNET_FS_DownloadOptions
Options for downloading.
uint64_t GNUNET_FS_uri_chk_get_file_size(const struct GNUNET_FS_Uri *uri)
What is the size of the file that this URI refers to?
Definition: fs_uri.c:1360
struct GNUNET_FS_DownloadContext * GNUNET_FS_download_start(struct GNUNET_FS_Handle *h, const struct GNUNET_FS_Uri *uri, const struct GNUNET_FS_MetaData *meta, const char *filename, const char *tempname, uint64_t offset, uint64_t length, uint32_t anonymity, enum GNUNET_FS_DownloadOptions options, void *cctx, struct GNUNET_FS_DownloadContext *parent)
Download parts of a file.
Definition: fs_download.c:2099
int GNUNET_FS_uri_test_loc(const struct GNUNET_FS_Uri *uri)
Is this a location URI?
Definition: fs_uri.c:1384
struct GNUNET_FS_Handle * GNUNET_FS_start(const struct GNUNET_CONFIGURATION_Handle *cfg, const char *client_name, GNUNET_FS_ProgressCallback upcb, void *upcb_cls, enum GNUNET_FS_Flags flags,...)
Setup a connection to the file-sharing service.
Definition: fs_api.c:3244
void GNUNET_FS_uri_destroy(struct GNUNET_FS_Uri *uri)
Free URI.
Definition: fs_uri.c:677
int GNUNET_FS_uri_test_chk(const struct GNUNET_FS_Uri *uri)
Is this a file (or directory) URI?
Definition: fs_uri.c:1346
struct GNUNET_FS_Uri * GNUNET_FS_uri_parse(const char *uri, char **emsg)
Convert a UTF-8 String to a URI.
Definition: fs_uri.c:637
@ GNUNET_FS_FLAGS_NONE
No special flags set.
@ GNUNET_FS_DOWNLOAD_OPTION_NONE
No options (use defaults for everything).
@ GNUNET_FS_DOWNLOAD_OPTION_RECURSIVE
Do a recursive download (that is, automatically trigger the download of files in directories).
@ GNUNET_FS_DOWNLOAD_OPTION_LOOPBACK_ONLY
Only download from the local host, do not access remote systems (no P2P)
@ GNUNET_FS_OPTIONS_DOWNLOAD_PARALLELISM
Select the desired amount of parallelism (this option should be followed by an "unsigned int" giving ...
@ GNUNET_FS_OPTIONS_END
Last option in the VARARG list.
@ GNUNET_FS_OPTIONS_REQUEST_PARALLELISM
Maximum number of requests that should be pending at a given point in time (invidivual downloads may ...
struct GNUNET_SCHEDULER_Task * GNUNET_SCHEDULER_add_shutdown(GNUNET_SCHEDULER_TaskCallback task, void *task_cls)
Schedule a new task to be run on shutdown, that is when a CTRL-C signal is received,...
Definition: scheduler.c:1334
A Universal Resource Identifier (URI), opaque.
Definition: fs_api.h:167

References _, anonymity, consensus-simulation::args, cfg, ctx, dc, do_recursive, filename, GNUNET_free, GNUNET_FS_DOWNLOAD_OPTION_LOOPBACK_ONLY, GNUNET_FS_DOWNLOAD_OPTION_NONE, GNUNET_FS_DOWNLOAD_OPTION_RECURSIVE, GNUNET_FS_download_start(), GNUNET_FS_FLAGS_NONE, GNUNET_FS_OPTIONS_DOWNLOAD_PARALLELISM, GNUNET_FS_OPTIONS_END, GNUNET_FS_OPTIONS_REQUEST_PARALLELISM, GNUNET_FS_start(), GNUNET_FS_stop(), GNUNET_FS_uri_chk_get_file_size(), GNUNET_FS_uri_destroy(), GNUNET_FS_uri_parse(), GNUNET_FS_uri_test_chk(), GNUNET_FS_uri_test_loc(), GNUNET_SCHEDULER_add_shutdown(), local_only, options, parallelism, progress_cb(), request_parallelism, ret, shutdown_task(), and uri.

Referenced by main().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ main()

int main ( int  argc,
char *const *  argv 
)

The main function to download GNUnet.

Parameters
argcnumber of arguments from the command line
argvcommand line arguments
Returns
0 ok, 1 on error

Definition at line 312 of file gnunet-download.c.

313{
316 "anonymity",
317 "LEVEL",
319 "set the desired LEVEL of receiver-anonymity"),
320 &anonymity),
321
323 'D',
324 "delete-incomplete",
325 gettext_noop ("delete incomplete downloads (when aborted with CTRL-C)"),
327
329 'n',
330 "no-network",
331 gettext_noop ("only search the local peer (no P2P network search)"),
332 &local_only),
334 "output",
335 "FILENAME",
336 gettext_noop ("write the file to FILENAME"),
337 &filename),
339 'p',
340 "parallelism",
341 "DOWNLOADS",
343 "set the maximum number of parallel downloads that is allowed"),
344 &parallelism),
346 'r',
347 "request-parallelism",
348 "REQUESTS",
350 "set the maximum number of parallel requests for blocks that is allowed"),
353 "recursive",
355 "download a GNUnet directory recursively"),
356 &do_recursive),
358 'V',
359 "verbose",
360 gettext_noop ("be verbose (print progress information)"),
361 &verbose),
363
364 if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
365 return 2;
366
367 ret =
368 (GNUNET_OK ==
370 argc,
371 argv,
372 "gnunet-download [OPTIONS] URI",
374 "Download files from GNUnet using a GNUnet CHK or LOC URI (gnunet://fs/chk/...)"),
375 options,
376 &run,
377 NULL))
378 ? ret
379 : 1;
380 GNUNET_free_nz ((void *) argv);
381 return ret;
382}
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_OPTION_END
Definition: 002.c:13
#define gettext_noop(String)
Definition: gettext.h:70
static void run(void *cls, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *c)
Main function that will be run by the scheduler.
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_option_increment_uint(char shortName, const char *name, const char *description, unsigned int *val)
Increment val each time the option flag is given by one.
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_option_uint(char shortName, const char *name, const char *argumentHelp, const char *description, unsigned int *val)
Allow user to specify an unsigned int.
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_option_flag(char shortName, const char *name, const char *description, int *val)
Allow user to specify a flag (which internally means setting an integer to 1/GNUNET_YES/GNUNET_OK.
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_option_string(char shortName, const char *name, const char *argumentHelp, const char *description, char **str)
Allow user to specify a string.
@ GNUNET_OK
#define GNUNET_free_nz(ptr)
Wrapper around free.
enum GNUNET_GenericReturnValue GNUNET_PROGRAM_run(int argc, char *const *argv, const char *binaryName, const char *binaryHelp, const struct GNUNET_GETOPT_CommandLineOption *options, GNUNET_PROGRAM_Main task, void *task_cls)
Run a standard GNUnet command startup sequence (initialize loggers and configuration,...
Definition: program.c:400
enum GNUNET_GenericReturnValue GNUNET_STRINGS_get_utf8_args(int argc, char *const *argv, int *u8argc, char *const **u8argv)
Returns utf-8 encoded arguments.
Definition: strings.c:1230
Definition of a command line option.

References anonymity, delete_incomplete, do_recursive, filename, gettext_noop, GNUNET_free_nz, GNUNET_GETOPT_OPTION_END, GNUNET_GETOPT_option_flag(), GNUNET_GETOPT_option_increment_uint(), GNUNET_GETOPT_option_string(), GNUNET_GETOPT_option_uint(), GNUNET_OK, GNUNET_PROGRAM_run(), GNUNET_STRINGS_get_utf8_args(), local_only, options, parallelism, request_parallelism, ret, run(), and verbose.

Here is the call graph for this function:

Variable Documentation

◆ ret

int ret
static

Definition at line 32 of file gnunet-download.c.

Referenced by main(), and run().

◆ verbose

unsigned int verbose
static

Definition at line 34 of file gnunet-download.c.

Referenced by main(), and progress_cb().

◆ delete_incomplete

int delete_incomplete
static

Definition at line 36 of file gnunet-download.c.

Referenced by main(), and shutdown_task().

◆ cfg

const struct GNUNET_CONFIGURATION_Handle* cfg
static

Definition at line 38 of file gnunet-download.c.

Referenced by run().

◆ ctx

struct GNUNET_FS_Handle* ctx
static

Definition at line 40 of file gnunet-download.c.

Referenced by add_plugin(), automaton_merge_states(), block_plugin_consensus_check_block(), block_plugin_consensus_check_reply(), block_plugin_template_create_group(), block_plugin_test_create_group(), cancel_get(), check_connection_quality(), check_edge(), checkvec(), cleanup_task(), construct_dfa_states(), core_env_sent_cb(), cr_cont(), create_peer_ctx(), curl_download_cb(), datacache_get_iterator(), debugctx(), delayed_put(), derive_aes_key(), derive_auth_key(), derive_iv(), derive_pong_iv(), dfa_add_multi_strides_helper(), dfa_merge_nondistinguishable_states(), dfa_minimize(), dfa_state_create(), dht_connected(), dht_get_string_accept_handler(), dht_get_string_handler(), do_dns_read(), do_notify(), find_plugin(), finish_handling_raw_message(), format_help(), GCT_iterate_channels(), GDS_DATACACHE_get_closest(), GDS_DATACACHE_handle_get(), GDS_u_connect(), GDS_u_disconnect(), get_iter(), get_longest_prefix(), get_peer_ctx(), get_request_socket(), GNUNET_BLOCK_check_block(), GNUNET_BLOCK_check_query(), GNUNET_BLOCK_check_reply(), GNUNET_BLOCK_context_create(), GNUNET_BLOCK_context_destroy(), GNUNET_BLOCK_get_key(), GNUNET_BLOCK_group_create(), GNUNET_CRYPTO_ecdsa_private_key_derive(), GNUNET_CRYPTO_ecdsa_public_key_derive(), GNUNET_CRYPTO_eddsa_private_key_derive(), GNUNET_CRYPTO_eddsa_public_key_derive(), GNUNET_CRYPTO_hkdf_v(), GNUNET_CRYPTO_kdf_mod_mpi(), GNUNET_CURL_append_header(), GNUNET_CURL_enable_async_scope_header(), GNUNET_CURL_fini(), GNUNET_CURL_get_select_info(), GNUNET_CURL_gnunet_rc_create(), GNUNET_CURL_gnunet_rc_create_with_parser(), GNUNET_CURL_init(), GNUNET_CURL_job_add(), GNUNET_CURL_job_add2(), GNUNET_CURL_job_add_raw(), GNUNET_CURL_job_add_with_ct_json(), GNUNET_CURL_job_cancel(), GNUNET_CURL_perform(), GNUNET_CURL_perform2(), GNUNET_CURL_set_tlscert(), GNUNET_CURL_set_userpass(), GNUNET_DNSSTUB_add_dns_ip(), GNUNET_DNSSTUB_add_dns_sa(), GNUNET_DNSSTUB_resolve(), GNUNET_DNSSTUB_set_retry(), GNUNET_DNSSTUB_start(), GNUNET_DNSSTUB_stop(), GNUNET_OP_add(), GNUNET_OP_get(), GNUNET_OP_result(), GNUNET_PLUGIN_load_all_in_context(), GNUNET_PQ_event_do_poll(), GNUNET_SET_element_hash(), GNUNET_SETI_element_hash(), GNUNET_SETU_element_hash(), GNUNET_SIGNAL_handler_uninstall(), GNUNET_SIGNAL_raise(), handle_dht_local_get_stop(), id_connect_cb(), identity_cb(), increment_value(), inspect_attrs(), iterate_channels_cb(), libgnunet_plugin_block_consensus_done(), libgnunet_plugin_block_consensus_init(), make_file(), new_regex_ctx(), nfa_add_alternation(), nfa_add_concatenation(), nfa_add_label(), nfa_add_plus_op(), nfa_add_question_op(), nfa_add_star_op(), nfa_state_create(), op_get_element(), op_get_element_iterator(), op_result(), output_vectors(), pabc_create_presentation(), PABC_load_public_parameters(), PABC_read_issuer_ppfile(), PABC_read_usr_ctx(), PABC_write_public_parameters(), PABC_write_usr_ctx(), print_version(), regex_add(), regex_add_multiple(), REGEX_BLOCK_check(), regex_combine(), regex_ctx_destroy(), regex_edge_iterator(), regex_find_path(), REGEX_INTERNAL_construct_dfa(), REGEX_INTERNAL_construct_nfa(), REGEX_INTERNAL_context_init(), REGEX_INTERNAL_dfa_add_multi_strides(), REGEX_INTERNAL_search(), regex_next_edge(), regex_result_iterator(), regex_split(), REGEX_TEST_automaton_save_graph(), REGEX_TEST_automaton_save_graph_step(), REGEX_TEST_combine(), remove_by_unique_id(), run(), service_started(), set_absolute_time(), set_attributes_from_idtoken(), set_base32(), set_filename(), set_one(), set_relative_time(), set_string(), set_timestamp(), set_timetravel_time(), set_uint(), set_uint16(), set_ulong(), setup_job(), setup_job_headers(), setup_new_user_context(), start_profiling(), state_add_transition(), t_ax_decrypt_and_validate(), t_ax_encrypt(), t_ax_hmac_hash(), t_hmac(), t_hmac_derive_key(), tcp_send(), transmit_query(), try_send_tcp(), u_address_add(), and u_address_del().

◆ dc

◆ anonymity

◆ parallelism

unsigned int parallelism = 16
static

Definition at line 46 of file gnunet-download.c.

Referenced by main(), and run().

◆ request_parallelism

unsigned int request_parallelism = 4092
static

Definition at line 48 of file gnunet-download.c.

Referenced by main(), and run().

◆ do_recursive

int do_recursive
static

Definition at line 50 of file gnunet-download.c.

Referenced by main(), and run().

◆ filename

char* filename
static

Definition at line 52 of file gnunet-download.c.

Referenced by add_file(), callback_scan_for_members(), callback_scan_for_operations(), callback_scan_for_sessions(), check_index_info(), collect_files_cb(), create_download_context(), database_setup(), deserialize_download_file(), deserialize_fi_node(), deserialize_file_information(), deserialize_publish_file(), deserialize_search_file(), deserialize_search_result(), deserialize_subdownload(), deserialize_unindex_file(), determine_id(), directory_scan_cb(), expand_tree(), extract_filename(), find_libraries(), get_ego_filename(), glob_cb(), GNUNET_CONFIGURATION_load(), GNUNET_CONFIGURATION_load_from(), GNUNET_CONFIGURATION_parse(), GNUNET_CONFIGURATION_parse_and_run(), GNUNET_CONFIGURATION_write(), GNUNET_CONFIGURATION_write_diffs(), GNUNET_CONTAINER_bloomfilter_load(), GNUNET_CRYPTO_ecdsa_key_from_file(), GNUNET_CRYPTO_eddsa_key_from_file(), GNUNET_CRYPTO_hash_file(), GNUNET_DISK_directory_create_for_file(), GNUNET_DISK_directory_remove(), GNUNET_DISK_file_change_owner(), GNUNET_DISK_file_get_identifiers(), GNUNET_DISK_file_size(), GNUNET_FS_add_to_index(), GNUNET_FS_directory_list_contents(), GNUNET_FS_directory_scan_start(), GNUNET_FS_download_start(), GNUNET_FS_download_start_from_search(), GNUNET_FS_file_information_create_empty_directory(), GNUNET_FS_file_information_create_from_file(), GNUNET_FS_file_information_set_filename(), GNUNET_FS_make_file_reader_context_(), GNUNET_FS_remove_sync_file_(), GNUNET_FS_unindex_start(), GNUNET_FS_uri_ksk_create_from_meta_data(), GNUNET_HOSTLIST_client_start(), GNUNET_OS_start_process(), GNUNET_OS_start_process_s(), GNUNET_OS_start_process_v(), GNUNET_OS_start_process_va(), GNUNET_OS_start_process_vap(), GNUNET_STRINGS_check_filename(), GNUNET_STRINGS_get_short_name(), GNUNET_STRINGS_path_is_absolute(), GNUNET_TESTING_get_topo_from_file(), GNUNET_TIME_absolute_get_monotonic(), GNUNET_TRANSPORT_TESTING_get_config_name(), GNUNET_TRANSPORT_TESTING_get_test_name(), GNUNET_TRANSPORT_TESTING_get_test_plugin_name(), GNUNET_TRANSPORT_TESTING_main_(), GNUNET_xgrow_(), GNUNET_xmalloc_(), GNUNET_xmalloc_unchecked_(), GNUNET_xmemdup_(), GNUNET_xnew_array_2d_(), GNUNET_xnew_array_3d_(), GNUNET_xrealloc_(), GNUNET_xstrdup_(), GNUNET_xstrndup_(), handle_index_info(), hostkeys_load(), iter_check_config(), iter_testbed_path(), load_file(), load_hostlist_file(), load_message_store(), load_message_store_entries(), load_message_store_links(), load_search_strings(), main(), PABC_write_public_parameters(), preprocess_file(), print_indexed(), print_key(), print_search_result(), process_ego_file(), process_helper_msgs(), progress_cb(), read_file(), read_from_file(), read_jwk_from_file(), REGEX_TEST_automaton_save_graph(), REGEX_TEST_read_from_file(), remove_sync_file_in_dir(), run(), run_process_and_wait(), save_hostlist_file(), save_message_store(), scan(), scan_callback(), start_process(), trigger_recursive_download(), write_file(), and write_jwk_to_file().

◆ local_only

int local_only
static

Definition at line 54 of file gnunet-download.c.

Referenced by main(), and run().