aboutsummaryrefslogtreecommitdiff
path: root/src/fs/fs_download.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/fs/fs_download.c')
-rw-r--r--src/fs/fs_download.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/fs/fs_download.c b/src/fs/fs_download.c
index 8192b8c1f..8eb2b4331 100644
--- a/src/fs/fs_download.c
+++ b/src/fs/fs_download.c
@@ -756,10 +756,12 @@ try_top_down_reconstruction (struct GNUNET_FS_DownloadContext *dc,
756 child_block_size = GNUNET_FS_tree_compute_tree_size (drc->depth); 756 child_block_size = GNUNET_FS_tree_compute_tree_size (drc->depth);
757 GNUNET_assert (0 == (drc->offset - dr->offset) % child_block_size); 757 GNUNET_assert (0 == (drc->offset - dr->offset) % child_block_size);
758 chk_off = (drc->offset - dr->offset) / child_block_size; 758 chk_off = (drc->offset - dr->offset) / child_block_size;
759 GNUNET_assert (drc->state == BRS_INIT); 759 if (drc->state == BRS_INIT)
760 drc->state = BRS_CHK_SET; 760 {
761 drc->chk = chks[chk_off]; 761 drc->state = BRS_CHK_SET;
762 try_top_down_reconstruction (dc, drc); 762 drc->chk = chks[chk_off];
763 try_top_down_reconstruction (dc, drc);
764 }
763 if (drc->state != BRS_DOWNLOAD_UP) 765 if (drc->state != BRS_DOWNLOAD_UP)
764 up_done = GNUNET_NO; /* children not all done */ 766 up_done = GNUNET_NO; /* children not all done */
765 } 767 }
@@ -815,10 +817,11 @@ schedule_block_download (struct GNUNET_FS_DownloadContext *dc,
815 dr->depth, 817 dr->depth,
816 GNUNET_h2s (&dr->chk.query)); 818 GNUNET_h2s (&dr->chk.query));
817#endif 819#endif
818 GNUNET_assert (GNUNET_NO == 820 if (GNUNET_NO !=
819 GNUNET_CONTAINER_multihashmap_contains_value (dc->active, 821 GNUNET_CONTAINER_multihashmap_contains_value (dc->active,
820 &dr->chk.query, 822 &dr->chk.query,
821 dr)); 823 dr))
824 return; /* already active */
822 GNUNET_CONTAINER_multihashmap_put (dc->active, 825 GNUNET_CONTAINER_multihashmap_put (dc->active,
823 &dr->chk.query, 826 &dr->chk.query,
824 dr, 827 dr,