X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Ffs%2Ffs_sharetree.c;h=5e96390ce2c933ef1529f2d14ea5ad43faa70832;hb=a900b29ddaa9ea46c731b054b5e3ef3e725b95a8;hp=a876dac99b54bd68b9ac3c7c68ac1742edd710b9;hpb=6756773dbc5aee6135ba8067cbf67aaf48cbfaf6;p=oweals%2Fgnunet.git diff --git a/src/fs/fs_sharetree.c b/src/fs/fs_sharetree.c index a876dac99..5e96390ce 100644 --- a/src/fs/fs_sharetree.c +++ b/src/fs/fs_sharetree.c @@ -162,7 +162,7 @@ add_to_keyword_counter (void *cls, const char *keyword, int is_mandatory) { struct GNUNET_CONTAINER_MultiHashMap *mcm = cls; struct KeywordCounter *cnt; - GNUNET_HashCode hc; + struct GNUNET_HashCode hc; size_t klen; klen = strlen (keyword) + 1; @@ -206,7 +206,7 @@ add_to_meta_counter (void *cls, const char *plugin_name, const char *data_mime_type, const char *data, size_t data_len) { struct GNUNET_CONTAINER_MultiHashMap *map = cls; - GNUNET_HashCode key; + struct GNUNET_HashCode key; struct MetaCounter *cnt; GNUNET_CRYPTO_hash (data, data_len, &key); @@ -243,7 +243,7 @@ remove_high_frequency_keywords (void *cls, const char *keyword, int is_mandatory { struct TrimContext *tc = cls; struct KeywordCounter *counter; - GNUNET_HashCode hc; + struct GNUNET_HashCode hc; size_t klen; klen = strlen (keyword) + 1; @@ -268,7 +268,7 @@ remove_high_frequency_keywords (void *cls, const char *keyword, int is_mandatory * @return GNUNET_YES (always) */ static int -migrate_and_drop_keywords (void *cls, const GNUNET_HashCode * key, void *value) +migrate_and_drop_keywords (void *cls, const struct GNUNET_HashCode * key, void *value) { struct TrimContext *tc = cls; struct KeywordCounter *counter = value; @@ -299,7 +299,7 @@ migrate_and_drop_keywords (void *cls, const GNUNET_HashCode * key, void *value) * @return GNUNET_YES (always) */ static int -migrate_and_drop_metadata (void *cls, const GNUNET_HashCode * key, void *value) +migrate_and_drop_metadata (void *cls, const struct GNUNET_HashCode * key, void *value) { struct TrimContext *tc = cls; struct MetaCounter *counter = value; @@ -347,7 +347,7 @@ share_tree_trim (struct TrimContext *tc, } /* consider adding filename to directory meta data */ - if (tree->is_directory) + if (tree->is_directory == GNUNET_YES) { const char *user = getenv ("USER"); if ( (user == NULL) || @@ -384,7 +384,11 @@ share_tree_trim (struct TrimContext *tc, { tc->pos = pos; if (NULL != pos->ksk_uri) - GNUNET_FS_uri_ksk_get_keywords (pos->ksk_uri, &remove_high_frequency_keywords, tc); + { + struct GNUNET_FS_Uri *ksk_uri_copy = GNUNET_FS_uri_dup (pos->ksk_uri); + GNUNET_FS_uri_ksk_get_keywords (ksk_uri_copy, &remove_high_frequency_keywords, tc); + GNUNET_FS_uri_destroy (ksk_uri_copy); + } } /* add high-frequency meta data and keywords to parent */ @@ -411,8 +415,8 @@ GNUNET_FS_share_tree_trim (struct GNUNET_FS_ShareTreeItem *toplevel) if (toplevel == NULL) return; - tc.keywordcounter = GNUNET_CONTAINER_multihashmap_create (1024); - tc.metacounter = GNUNET_CONTAINER_multihashmap_create (1024); + tc.keywordcounter = GNUNET_CONTAINER_multihashmap_create (1024, GNUNET_NO); + tc.metacounter = GNUNET_CONTAINER_multihashmap_create (1024, GNUNET_NO); share_tree_trim (&tc, toplevel); GNUNET_CONTAINER_multihashmap_destroy (tc.keywordcounter); GNUNET_CONTAINER_multihashmap_destroy (tc.metacounter);