From 27ed8fcbc85a361864948edb517d47804c2b5a56 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Tue, 26 Apr 2011 18:19:15 +0000 Subject: datastore and fs fixes from Easter --- src/fs/fs_download.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'src/fs/fs_download.c') 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, child_block_size = GNUNET_FS_tree_compute_tree_size (drc->depth); GNUNET_assert (0 == (drc->offset - dr->offset) % child_block_size); chk_off = (drc->offset - dr->offset) / child_block_size; - GNUNET_assert (drc->state == BRS_INIT); - drc->state = BRS_CHK_SET; - drc->chk = chks[chk_off]; - try_top_down_reconstruction (dc, drc); + if (drc->state == BRS_INIT) + { + drc->state = BRS_CHK_SET; + drc->chk = chks[chk_off]; + try_top_down_reconstruction (dc, drc); + } if (drc->state != BRS_DOWNLOAD_UP) up_done = GNUNET_NO; /* children not all done */ } @@ -815,10 +817,11 @@ schedule_block_download (struct GNUNET_FS_DownloadContext *dc, dr->depth, GNUNET_h2s (&dr->chk.query)); #endif - GNUNET_assert (GNUNET_NO == - GNUNET_CONTAINER_multihashmap_contains_value (dc->active, - &dr->chk.query, - dr)); + if (GNUNET_NO != + GNUNET_CONTAINER_multihashmap_contains_value (dc->active, + &dr->chk.query, + dr)) + return; /* already active */ GNUNET_CONTAINER_multihashmap_put (dc->active, &dr->chk.query, dr, -- cgit v1.2.3