diff options
Diffstat (limited to 'src/fs/fs_download.c')
-rw-r--r-- | src/fs/fs_download.c | 19 |
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, |