X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Ffs%2Ffs_directory.c;h=29747c2f1249cf282c3cc3319e0c5b97c4b532c8;hb=ed51bc86aad5044b88ce4fc3641cc920c8186863;hp=f22480d5f54f64257c7d9321601e545264c23039;hpb=502af2167f7c218366666ca4944bd7cc54b5b19a;p=oweals%2Fgnunet.git diff --git a/src/fs/fs_directory.c b/src/fs/fs_directory.c index f22480d5f..29747c2f1 100644 --- a/src/fs/fs_directory.c +++ b/src/fs/fs_directory.c @@ -1,6 +1,6 @@ /* This file is part of GNUnet. - (C) 2003, 2004, 2006, 2009 Christian Grothoff (and other contributing authors) + Copyright (C) 2003, 2004, 2006, 2009 Christian Grothoff (and other contributing authors) GNUnet is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -34,7 +34,7 @@ */ #include "platform.h" #include "gnunet_fs_service.h" -#include "fs.h" +#include "fs_api.h" /** * String that is used to indicate that a file @@ -47,23 +47,21 @@ * Does the meta-data claim that this is a directory? * Checks if the mime-type is that of a GNUnet directory. * - * @return GNUNET_YES if it is, GNUNET_NO if it is not, GNUNET_SYSERR if - * we have no mime-type information (treat as 'GNUNET_NO') + * @return #GNUNET_YES if it is, #GNUNET_NO if it is not, #GNUNET_SYSERR if + * we have no mime-type information (treat as #GNUNET_NO) */ int -GNUNET_FS_meta_data_test_for_directory (const struct GNUNET_CONTAINER_MetaData - *md) +GNUNET_FS_meta_data_test_for_directory (const struct GNUNET_CONTAINER_MetaData *md) { char *mime; int ret; if (NULL == md) return GNUNET_SYSERR; - mime = - GNUNET_CONTAINER_meta_data_get_by_type (md, EXTRACTOR_METATYPE_MIMETYPE); - if (mime == NULL) + mime = GNUNET_CONTAINER_meta_data_get_by_type (md, EXTRACTOR_METATYPE_MIMETYPE); + if (NULL == mime) return GNUNET_SYSERR; - ret = (0 == strcmp (mime, GNUNET_FS_DIRECTORY_MIME)) ? GNUNET_YES : GNUNET_NO; + ret = (0 == strcasecmp (mime, GNUNET_FS_DIRECTORY_MIME)) ? GNUNET_YES : GNUNET_NO; GNUNET_free (mime); return ret; } @@ -72,7 +70,7 @@ GNUNET_FS_meta_data_test_for_directory (const struct GNUNET_CONTAINER_MetaData /** * Set the MIMETYPE information for the given * metadata to "application/gnunet-directory". - * + * * @param md metadata to add mimetype to */ void @@ -88,11 +86,9 @@ GNUNET_FS_meta_data_make_directory (struct GNUNET_CONTAINER_MetaData *md) GNUNET_free (mime); return; } - GNUNET_CONTAINER_meta_data_insert (md, - "", + GNUNET_CONTAINER_meta_data_insert (md, "", EXTRACTOR_METATYPE_MIMETYPE, - EXTRACTOR_METAFORMAT_UTF8, - "text/plain", + EXTRACTOR_METAFORMAT_UTF8, "text/plain", GNUNET_FS_DIRECTORY_MIME, strlen (GNUNET_FS_DIRECTORY_MIME) + 1); } @@ -126,7 +122,7 @@ struct GetFullDataClosure * used in the main libextractor library and yielding * meta data). * @param type libextractor-type describing the meta data - * @param format basic format information about data + * @param format basic format information about data * @param data_mime_type mime-type of data (not of the original file); * can be NULL (if mime-type is not known) * @param data actual meta-data found @@ -134,10 +130,8 @@ struct GetFullDataClosure * @return 0 to continue extracting, 1 to abort */ static int -find_full_data (void *cls, - const char *plugin_name, - enum EXTRACTOR_MetaType type, - enum EXTRACTOR_MetaFormat format, +find_full_data (void *cls, const char *plugin_name, + enum EXTRACTOR_MetaType type, enum EXTRACTOR_MetaFormat format, const char *data_mime_type, const char *data, size_t data_len) { struct GetFullDataClosure *gfdc = cls; @@ -182,8 +176,7 @@ find_full_data (void *cls, * GNUNET_SYSERR if 'data' does not represent a directory */ int -GNUNET_FS_directory_list_contents (size_t size, - const void *data, +GNUNET_FS_directory_list_contents (size_t size, const void *data, uint64_t offset, GNUNET_FS_DirectoryEntryProcessor dep, void *dep_cls) @@ -202,11 +195,7 @@ GNUNET_FS_directory_list_contents (size_t size, if ((offset == 0) && ((size < 8 + sizeof (uint32_t)) || (0 != memcmp (cdata, GNUNET_FS_DIRECTORY_MAGIC, 8)))) - { - GNUNET_log (GNUNET_ERROR_TYPE_WARNING, - _("MAGIC mismatch. This is not a GNUnet directory.\n")); return GNUNET_SYSERR; - } pos = offset; if (offset == 0) { @@ -219,8 +208,7 @@ GNUNET_FS_directory_list_contents (size_t size, _("MAGIC mismatch. This is not a GNUnet directory.\n")); return GNUNET_SYSERR; } - md = GNUNET_CONTAINER_meta_data_deserialize (&cdata[8 + - sizeof (uint32_t)], + md = GNUNET_CONTAINER_meta_data_deserialize (&cdata[8 + sizeof (uint32_t)], mdSize); if (md == NULL) { @@ -289,8 +277,9 @@ GNUNET_FS_directory_list_contents (size_t size, return GNUNET_NO; /* malformed ! */ } pos += mdSize; - filename = GNUNET_CONTAINER_meta_data_get_by_type (md, - EXTRACTOR_METATYPE_GNUNET_ORIGINAL_FILENAME); + filename = + GNUNET_CONTAINER_meta_data_get_by_type (md, + EXTRACTOR_METATYPE_GNUNET_ORIGINAL_FILENAME); full_data.size = 0; full_data.data = NULL; GNUNET_CONTAINER_meta_data_iterate (md, &find_full_data, &full_data); @@ -346,7 +335,7 @@ struct GNUNET_FS_DirectoryBuilder /** * Create a directory builder. - * + * * @param mdir metadata for the directory */ struct GNUNET_FS_DirectoryBuilder * @@ -355,7 +344,7 @@ GNUNET_FS_directory_builder_create (const struct GNUNET_CONTAINER_MetaData { struct GNUNET_FS_DirectoryBuilder *ret; - ret = GNUNET_malloc (sizeof (struct GNUNET_FS_DirectoryBuilder)); + ret = GNUNET_new (struct GNUNET_FS_DirectoryBuilder); if (mdir != NULL) ret->meta = GNUNET_CONTAINER_meta_data_duplicate (mdir); else @@ -367,7 +356,7 @@ GNUNET_FS_directory_builder_create (const struct GNUNET_CONTAINER_MetaData /** * Add an entry to a directory. - * + * * @param bld directory to extend * @param uri uri of the entry (must not be a KSK) * @param md metadata of the entry @@ -425,11 +414,10 @@ GNUNET_FS_directory_builder_add (struct GNUNET_FS_DirectoryBuilder *bld, if (fsize > 0) { meta = GNUNET_CONTAINER_meta_data_duplicate (md); - GNUNET_CONTAINER_meta_data_insert (meta, - "", + GNUNET_CONTAINER_meta_data_insert (meta, "", EXTRACTOR_METATYPE_GNUNET_FULL_DATA, - EXTRACTOR_METAFORMAT_BINARY, - NULL, data, fsize); + EXTRACTOR_METAFORMAT_BINARY, NULL, data, + fsize); mdxs = GNUNET_CONTAINER_meta_data_get_serialized_size (meta); if ((slen + sizeof (uint32_t) + mdxs - 1) / DBLOCK_SIZE == (slen + sizeof (uint32_t) + mds - 1) / DBLOCK_SIZE) @@ -443,16 +431,15 @@ GNUNET_FS_directory_builder_add (struct GNUNET_FS_DirectoryBuilder *bld, if (mds > GNUNET_MAX_MALLOC_CHECKED / 2) mds = GNUNET_MAX_MALLOC_CHECKED / 2; - e = GNUNET_malloc (sizeof (struct BuilderEntry) + - slen + mds + sizeof (uint32_t)); + e = GNUNET_malloc (sizeof (struct BuilderEntry) + slen + mds + + sizeof (uint32_t)); ser = (char *) &e[1]; memcpy (ser, uris, slen); GNUNET_free (uris); sptr = &ser[slen + sizeof (uint32_t)]; - ret = GNUNET_CONTAINER_meta_data_serialize (meta_use, - &sptr, - mds, - GNUNET_CONTAINER_META_DATA_SERIALIZE_PART); + ret = + GNUNET_CONTAINER_meta_data_serialize (meta_use, &sptr, mds, + GNUNET_CONTAINER_META_DATA_SERIALIZE_PART); if (NULL != meta) GNUNET_CONTAINER_meta_data_destroy (meta); if (ret == -1) @@ -495,8 +482,8 @@ do_align (size_t start_position, size_t end_position) * @param perm the permutation of the blocks (updated) */ static void -block_align (size_t start, - unsigned int count, const size_t * sizes, unsigned int *perm) +block_align (size_t start, unsigned int count, const size_t * sizes, + unsigned int *perm) { unsigned int i; unsigned int j; @@ -625,10 +612,10 @@ GNUNET_FS_directory_builder_finish (struct GNUNET_FS_DirectoryBuilder *bld, off = strlen (GNUNET_DIRECTORY_MAGIC); sptr = &data[off + sizeof (uint32_t)]; - ret = GNUNET_CONTAINER_meta_data_serialize (bld->meta, - &sptr, - size - off - sizeof (uint32_t), - GNUNET_CONTAINER_META_DATA_SERIALIZE_FULL); + ret = + GNUNET_CONTAINER_meta_data_serialize (bld->meta, &sptr, + size - off - sizeof (uint32_t), + GNUNET_CONTAINER_META_DATA_SERIALIZE_FULL); GNUNET_assert (ret != -1); big = htonl (ret); memcpy (&data[off], &big, sizeof (uint32_t));