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
{
struct ProcessResultClosure prc;
char enc[len];
- struct GNUNET_CRYPTO_AesSessionKey sk;
- struct GNUNET_CRYPTO_AesInitializationVector iv;
+ struct GNUNET_CRYPTO_SymmetricSessionKey sk;
+ struct GNUNET_CRYPTO_SymmetricInitializationVector iv;
struct GNUNET_HashCode query;
GNUNET_CRYPTO_hash_to_aes_key (&chk->key, &sk, &iv);
- if (-1 == GNUNET_CRYPTO_aes_encrypt (block, len, &sk, &iv, enc))
+ if (-1 == GNUNET_CRYPTO_symmetric_encrypt (block, len, &sk, &iv, enc))
{
GNUNET_break (0);
return GNUNET_SYSERR;
char enc[DBLOCK_SIZE];
struct ContentHashKey chks[CHK_PER_INODE];
struct ContentHashKey in_chk;
- struct GNUNET_CRYPTO_AesSessionKey sk;
- struct GNUNET_CRYPTO_AesInitializationVector iv;
+ struct GNUNET_CRYPTO_SymmetricSessionKey sk;
+ struct GNUNET_CRYPTO_SymmetricInitializationVector iv;
size_t dlen;
struct DownloadRequest *drc;
struct GNUNET_DISK_FileHandle *fh;
}
GNUNET_CRYPTO_hash (&data[dr->offset], dlen, &in_chk.key);
GNUNET_CRYPTO_hash_to_aes_key (&in_chk.key, &sk, &iv);
- if (-1 == GNUNET_CRYPTO_aes_encrypt (&data[dr->offset], dlen, &sk, &iv, enc))
+ if (-1 == GNUNET_CRYPTO_symmetric_encrypt (&data[dr->offset], dlen, &sk, &iv, enc))
{
GNUNET_break (0);
return;
GNUNET_FS_download_make_status_ (&pi, dc);
if ((NULL != dc->filename) &&
(0 !=
- truncate (dc->filename,
+ TRUNCATE (dc->filename,
GNUNET_ntohll (dc->uri->data.chk.file_length))))
GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING, "truncate",
dc->filename);
drc = dr->children[i];
GNUNET_assert (drc->offset >= dr->offset);
child_block_size = GNUNET_FS_tree_compute_tree_size (drc->depth);
- GNUNET_assert (0 == (drc->offset - dr->offset) % child_block_size);
+ GNUNET_assert (0 == (drc->offset - dr->offset) % child_block_size);
if (BRS_INIT == drc->state)
{
drc->state = BRS_CHK_SET;
struct GNUNET_FS_DownloadContext *dc = prc->dc;
struct DownloadRequest *drc;
struct GNUNET_DISK_FileHandle *fh = NULL;
- struct GNUNET_CRYPTO_AesSessionKey skey;
- struct GNUNET_CRYPTO_AesInitializationVector iv;
+ struct GNUNET_CRYPTO_SymmetricSessionKey skey;
+ struct GNUNET_CRYPTO_SymmetricInitializationVector iv;
char pt[prc->size];
struct GNUNET_FS_ProgressInfo pi;
uint64_t off;
}
GNUNET_CRYPTO_hash_to_aes_key (&dr->chk.key, &skey, &iv);
- if (-1 == GNUNET_CRYPTO_aes_decrypt (prc->data, prc->size, &skey, &iv, pt))
+ if (-1 == GNUNET_CRYPTO_symmetric_decrypt (prc->data, prc->size, &skey, &iv, pt))
{
GNUNET_break (0);
dc->emsg = GNUNET_strdup (_("internal error decrypting content"));
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)
- pi.value.download.specifics.progress.block_download_duration
+ 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
pi.value.download.specifics.progress.block_download_duration
if (NULL != dc->filename)
{
if (0 !=
- truncate (dc->filename,
+ TRUNCATE (dc->filename,
GNUNET_ntohll (dc->uri->data.chk.file_length)))
GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING, "truncate",
dc->filename);
else
sm->type = htonl (GNUNET_BLOCK_TYPE_FS_IBLOCK);
sm->anonymity_level = htonl (dc->anonymity);
- sm->target = dc->target.hashPubKey;
+ sm->target = dc->target;
sm->query = dr->chk.query;
GNUNET_CONTAINER_DLL_remove (dc->pending_head, dc->pending_tail, dr);
dr->is_pending = GNUNET_NO;
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_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 =
- GNUNET_SCHEDULER_add_delayed (dc->reconnect_backoff,
+ GNUNET_SCHEDULER_add_delayed (dc->reconnect_backoff,
&do_reconnect,
dc);
}
* the specified depth
*/
static struct DownloadRequest *
-create_download_request (struct DownloadRequest *parent,
+create_download_request (struct DownloadRequest *parent,
unsigned int chk_idx,
unsigned int depth,
uint64_t dr_offset, uint64_t file_start_offset,
if (0 == depth)
return dr;
child_block_size = GNUNET_FS_tree_compute_tree_size (depth - 1);
-
+
/* calculate how many blocks at this level are not interesting
* from the start (rounded down), either because of the requested
* file offset or because this IBlock is further along */
{
head_skip = 0;
}
-
+
/* calculate index of last block at this level that is interesting (rounded up) */
dr->num_children = (file_start_offset + desired_length - dr_offset) / child_block_size;
if (dr->num_children * child_block_size <
(unsigned long long) dr_offset,
depth,
dr->num_children);
-
+
/* now we can get the total number of *interesting* children for this block */
/* why else would we have gotten here to begin with? (that'd be a bad logic error) */
GNUNET_assert (dr->num_children > 0);
-
+
dr->children =
GNUNET_malloc (dr->num_children * sizeof (struct DownloadRequest *));
for (i = 0; i < dr->num_children; i++)
{
struct GNUNET_FS_DownloadContext *dc = cls;
- /* clean up state from tree encoder */
+ /* clean up state from tree encoder */
if (dc->task != GNUNET_SCHEDULER_NO_TASK)
{
GNUNET_SCHEDULER_cancel (dc->task);
if (NULL != dc->filename)
{
if (0 !=
- truncate (dc->filename,
+ TRUNCATE (dc->filename,
GNUNET_ntohll (dc->uri->data.chk.file_length)))
GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING, "truncate",
dc->filename);
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Trying bottom-up reconstruction of file `%s'\n", dc->filename);
dc->te =
- GNUNET_FS_tree_encoder_create (dc->h,
+ GNUNET_FS_tree_encoder_create (dc->h,
GNUNET_FS_uri_chk_get_file_size (dc->uri),
dc, &fh_reader,
&reconstruct_cb, NULL,
GNUNET_FS_download_make_status_ (&pi, dc);
if (NULL != dc->te)
{
- GNUNET_FS_tree_encoder_finish (dc->te, NULL, NULL);
+ GNUNET_FS_tree_encoder_finish (dc->te, NULL);
dc->te = NULL;
}
if (NULL != dc->rfh)
else
dc->temp_filename = GNUNET_DISK_mktemp ("gnunet-directory-download-tmp");
}
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Starting download `%s' of %llu bytes with tree depth %u\n",
filename,
(unsigned long long) length,
GNUNET_FS_queue_ (dc->h, &activate_fs_download, &deactivate_fs_download,
dc, (dc->length + DBLOCK_SIZE - 1) / DBLOCK_SIZE,
(0 == (dc->options & GNUNET_FS_DOWNLOAD_IS_PROBE))
- ? GNUNET_FS_QUEUE_PRIORITY_NORMAL
+ ? 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",
}
if (NULL != dc->te)
{
- GNUNET_FS_tree_encoder_finish (dc->te, NULL, NULL);
+ GNUNET_FS_tree_encoder_finish (dc->te, NULL);
dc->te = NULL;
}
have_children = (NULL != dc->child_head) ? GNUNET_YES : GNUNET_NO;