From: Christian Grothoff Date: Fri, 8 Jun 2012 14:14:21 +0000 (+0000) Subject: -fixing #2402, #2403, #2399, #2398 X-Git-Tag: initial-import-from-subversion-38251~13225 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=84e49f4f5a1252e8c9e88ccc91ee9b535fcf5fb2;p=oweals%2Fgnunet.git -fixing #2402, #2403, #2399, #2398 --- diff --git a/src/fs/fs_api.c b/src/fs/fs_api.c index 11195eaa1..86402048e 100644 --- a/src/fs/fs_api.c +++ b/src/fs/fs_api.c @@ -1853,7 +1853,7 @@ GNUNET_FS_search_result_sync_ (struct GNUNET_FS_SearchResult *sr) NULL) ? GNUNET_FS_SYNC_PATH_MASTER_SEARCH : GNUNET_FS_SYNC_PATH_CHILD_SEARCH, sr->sc->serialization, sr->serialization); - if (wh == NULL) + if (NULL == wh) { GNUNET_break (0); goto cleanup; @@ -1878,7 +1878,7 @@ GNUNET_FS_search_result_sync_ (struct GNUNET_FS_SearchResult *sr) GNUNET_break (0); goto cleanup; } - if ( (sr->uri != NULL) && + if ( (NULL != sr->uri) && (sr->sc->uri->type == ksk) && (GNUNET_OK != GNUNET_BIO_write (wh, sr->keyword_bitmap, (sr->sc->uri->data.ksk.keywordCount + 7) / 8)) ) @@ -1896,7 +1896,7 @@ GNUNET_FS_search_result_sync_ (struct GNUNET_FS_SearchResult *sr) return; cleanup: GNUNET_free_non_null (uris); - if (wh != NULL) + if (NULL != wh) (void) GNUNET_BIO_write_close (wh); remove_sync_file_in_dir (sr->sc->h, (sr->sc->psearch_result == diff --git a/src/fs/fs_download.c b/src/fs/fs_download.c index 7c4dccb3c..f873885b3 100644 --- a/src/fs/fs_download.c +++ b/src/fs/fs_download.c @@ -2128,7 +2128,7 @@ GNUNET_FS_download_start (struct GNUNET_FS_Handle *h, dc->parent = parent; if (NULL != parent) GNUNET_CONTAINER_DLL_insert (parent->child_head, parent->child_tail, dc); - else + else if (0 == (GNUNET_FS_DOWNLOAD_IS_PROBE & options) ) dc->top = GNUNET_FS_make_top (dc->h, &GNUNET_FS_download_signal_suspend_, dc); return dc; diff --git a/src/fs/fs_search.c b/src/fs/fs_search.c index b280670f6..adbb85dc0 100644 --- a/src/fs/fs_search.c +++ b/src/fs/fs_search.c @@ -1483,6 +1483,17 @@ search_result_stop (void *cls, const GNUNET_HashCode * key, void *value) struct GNUNET_FS_SearchResult *sr = value; struct GNUNET_FS_ProgressInfo pi; + if (NULL != sr->probe_ctx) + { + GNUNET_FS_download_stop (sr->probe_ctx, GNUNET_YES); + sr->probe_ctx = NULL; + } + if (GNUNET_SCHEDULER_NO_TASK != sr->probe_cancel_task) + { + GNUNET_SCHEDULER_cancel (sr->probe_cancel_task); + sr->probe_cancel_task = GNUNET_SCHEDULER_NO_TASK; + } + if (NULL != sr->download) { sr->download->search = NULL; @@ -1528,14 +1539,12 @@ search_result_free (void *cls, const GNUNET_HashCode * key, void *value) GNUNET_FS_search_stop (sr->update_search); GNUNET_assert (NULL == sr->update_search); } + GNUNET_break (NULL == sr->probe_ctx); + GNUNET_break (GNUNET_SCHEDULER_NO_TASK == sr->probe_cancel_task); GNUNET_break (NULL == sr->client_info); GNUNET_free_non_null (sr->serialization); GNUNET_FS_uri_destroy (sr->uri); GNUNET_CONTAINER_meta_data_destroy (sr->meta); - if (NULL != sr->probe_ctx) - GNUNET_FS_download_stop (sr->probe_ctx, GNUNET_YES); - if (GNUNET_SCHEDULER_NO_TASK != sr->probe_cancel_task) - GNUNET_SCHEDULER_cancel (sr->probe_cancel_task); GNUNET_free_non_null (sr->keyword_bitmap); GNUNET_free (sr); return GNUNET_OK;