diff options
author | Christian Grothoff <christian@grothoff.org> | 2010-01-03 21:42:52 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2010-01-03 21:42:52 +0000 |
commit | 3c5249af8087b0b1a4f131a3e19a9759639ab5db (patch) | |
tree | 697ff622324a7d259dc59da63205f398661a56fa /src/fs/fs_directory.c | |
parent | ebd1325d27e2062f3fb8e92766178ab0660c2dac (diff) | |
download | gnunet-3c5249af8087b0b1a4f131a3e19a9759639ab5db.tar.gz gnunet-3c5249af8087b0b1a4f131a3e19a9759639ab5db.zip |
adapting main code base to work with libextractor 0.6 API; testcases will follow later
Diffstat (limited to 'src/fs/fs_directory.c')
-rw-r--r-- | src/fs/fs_directory.c | 49 |
1 files changed, 25 insertions, 24 deletions
diff --git a/src/fs/fs_directory.c b/src/fs/fs_directory.c index e037130c8..48578c650 100644 --- a/src/fs/fs_directory.c +++ b/src/fs/fs_directory.c | |||
@@ -36,10 +36,6 @@ | |||
36 | #include "gnunet_fs_service.h" | 36 | #include "gnunet_fs_service.h" |
37 | #include "fs.h" | 37 | #include "fs.h" |
38 | 38 | ||
39 | #ifndef EXTRACTOR_GNUNET_FULL_DATA | ||
40 | #define EXTRACTOR_GNUNET_FULL_DATA 137 | ||
41 | #endif | ||
42 | |||
43 | /** | 39 | /** |
44 | * String that is used to indicate that a file | 40 | * String that is used to indicate that a file |
45 | * is a GNUnet directory. | 41 | * is a GNUnet directory. |
@@ -60,7 +56,7 @@ GNUNET_FS_meta_data_test_for_directory (const struct GNUNET_CONTAINER_MetaData * | |||
60 | char *mime; | 56 | char *mime; |
61 | int ret; | 57 | int ret; |
62 | 58 | ||
63 | mime = GNUNET_CONTAINER_meta_data_get_by_type (md, EXTRACTOR_MIMETYPE); | 59 | mime = GNUNET_CONTAINER_meta_data_get_by_type (md, EXTRACTOR_METATYPE_MIMETYPE); |
64 | if (mime == NULL) | 60 | if (mime == NULL) |
65 | return GNUNET_SYSERR; | 61 | return GNUNET_SYSERR; |
66 | ret = (0 == strcmp (mime, GNUNET_FS_DIRECTORY_MIME)) ? GNUNET_YES : GNUNET_NO; | 62 | ret = (0 == strcmp (mime, GNUNET_FS_DIRECTORY_MIME)) ? GNUNET_YES : GNUNET_NO; |
@@ -80,7 +76,7 @@ GNUNET_FS_meta_data_make_directory (struct GNUNET_CONTAINER_MetaData *md) | |||
80 | { | 76 | { |
81 | char *mime; | 77 | char *mime; |
82 | 78 | ||
83 | mime = GNUNET_CONTAINER_meta_data_get_by_type (md, EXTRACTOR_MIMETYPE); | 79 | mime = GNUNET_CONTAINER_meta_data_get_by_type (md, EXTRACTOR_METATYPE_MIMETYPE); |
84 | if (mime != NULL) | 80 | if (mime != NULL) |
85 | { | 81 | { |
86 | GNUNET_break (0 == strcmp (mime, | 82 | GNUNET_break (0 == strcmp (mime, |
@@ -89,8 +85,12 @@ GNUNET_FS_meta_data_make_directory (struct GNUNET_CONTAINER_MetaData *md) | |||
89 | return; | 85 | return; |
90 | } | 86 | } |
91 | GNUNET_CONTAINER_meta_data_insert (md, | 87 | GNUNET_CONTAINER_meta_data_insert (md, |
92 | EXTRACTOR_MIMETYPE, | 88 | "<gnunet>", |
93 | GNUNET_FS_DIRECTORY_MIME); | 89 | EXTRACTOR_METATYPE_MIMETYPE, |
90 | EXTRACTOR_METAFORMAT_UTF8, | ||
91 | "text/plain", | ||
92 | GNUNET_FS_DIRECTORY_MIME, | ||
93 | strlen (GNUNET_FS_DIRECTORY_MIME)+1); | ||
94 | } | 94 | } |
95 | 95 | ||
96 | 96 | ||
@@ -225,9 +225,9 @@ GNUNET_FS_directory_list_contents (size_t size, | |||
225 | } | 225 | } |
226 | pos += mdSize; | 226 | pos += mdSize; |
227 | filename = GNUNET_CONTAINER_meta_data_get_by_type (md, | 227 | filename = GNUNET_CONTAINER_meta_data_get_by_type (md, |
228 | EXTRACTOR_FILENAME); | 228 | EXTRACTOR_METATYPE_FILENAME); |
229 | file_data = GNUNET_CONTAINER_meta_data_get_by_type (md, | 229 | file_data = GNUNET_CONTAINER_meta_data_get_by_type (md, |
230 | EXTRACTOR_GNUNET_FULL_DATA); | 230 | EXTRACTOR_METATYPE_GNUNET_FULL_DATA); |
231 | if (dep != NULL) | 231 | if (dep != NULL) |
232 | dep (dep_cls, | 232 | dep (dep_cls, |
233 | filename, | 233 | filename, |
@@ -322,6 +322,7 @@ GNUNET_FS_directory_builder_add (struct GNUNET_FS_DirectoryBuilder *bld, | |||
322 | size_t mdxs; | 322 | size_t mdxs; |
323 | char *uris; | 323 | char *uris; |
324 | char *ser; | 324 | char *ser; |
325 | char *sptr; | ||
325 | size_t slen; | 326 | size_t slen; |
326 | struct GNUNET_CONTAINER_MetaData *meta; | 327 | struct GNUNET_CONTAINER_MetaData *meta; |
327 | const struct GNUNET_CONTAINER_MetaData *meta_use; | 328 | const struct GNUNET_CONTAINER_MetaData *meta_use; |
@@ -340,25 +341,24 @@ GNUNET_FS_directory_builder_add (struct GNUNET_FS_DirectoryBuilder *bld, | |||
340 | fsize = 0; /* not given */ | 341 | fsize = 0; /* not given */ |
341 | if (fsize > MAX_INLINE_SIZE) | 342 | if (fsize > MAX_INLINE_SIZE) |
342 | fsize = 0; /* too large */ | 343 | fsize = 0; /* too large */ |
343 | if ( (NULL == data) || | ||
344 | (NULL != memchr (data, 0, fsize)) ) | ||
345 | fsize = 0; /* must not have 0's in data! */ | ||
346 | uris = GNUNET_FS_uri_to_string (uri); | 344 | uris = GNUNET_FS_uri_to_string (uri); |
347 | slen = strlen (uris) + 1; | 345 | slen = strlen (uris) + 1; |
348 | mds = | 346 | mds = |
349 | GNUNET_CONTAINER_meta_data_get_serialized_size (md, | 347 | GNUNET_CONTAINER_meta_data_get_serialized_size (md); |
350 | GNUNET_CONTAINER_META_DATA_SERIALIZE_FULL); | ||
351 | meta_use = md; | 348 | meta_use = md; |
352 | meta = NULL; | 349 | meta = NULL; |
353 | if (fsize > 0) | 350 | if (fsize > 0) |
354 | { | 351 | { |
355 | meta = GNUNET_CONTAINER_meta_data_duplicate (md); | 352 | meta = GNUNET_CONTAINER_meta_data_duplicate (md); |
356 | GNUNET_CONTAINER_meta_data_insert (meta, | 353 | GNUNET_CONTAINER_meta_data_insert (meta, |
357 | EXTRACTOR_GNUNET_FULL_DATA, | 354 | "<gnunet>", |
358 | data); | 355 | EXTRACTOR_METATYPE_GNUNET_FULL_DATA, |
356 | EXTRACTOR_METAFORMAT_BINARY, | ||
357 | NULL, | ||
358 | data, | ||
359 | fsize); | ||
359 | mdxs = | 360 | mdxs = |
360 | GNUNET_CONTAINER_meta_data_get_serialized_size (meta, | 361 | GNUNET_CONTAINER_meta_data_get_serialized_size (meta); |
361 | GNUNET_CONTAINER_META_DATA_SERIALIZE_FULL); | ||
362 | if ( (slen + sizeof (uint32_t) + mdxs - 1) / DBLOCK_SIZE == | 362 | if ( (slen + sizeof (uint32_t) + mdxs - 1) / DBLOCK_SIZE == |
363 | (slen + sizeof (uint32_t) + mds - 1) / DBLOCK_SIZE) | 363 | (slen + sizeof (uint32_t) + mds - 1) / DBLOCK_SIZE) |
364 | { | 364 | { |
@@ -376,8 +376,9 @@ GNUNET_FS_directory_builder_add (struct GNUNET_FS_DirectoryBuilder *bld, | |||
376 | ser = (char*) &e[1]; | 376 | ser = (char*) &e[1]; |
377 | memcpy (ser, uris, slen); | 377 | memcpy (ser, uris, slen); |
378 | GNUNET_free (uris); | 378 | GNUNET_free (uris); |
379 | sptr = &ser[slen + sizeof(uint32_t)]; | ||
379 | ret = GNUNET_CONTAINER_meta_data_serialize (meta_use, | 380 | ret = GNUNET_CONTAINER_meta_data_serialize (meta_use, |
380 | &ser[slen + sizeof(uint32_t)], | 381 | &sptr, |
381 | mds, | 382 | mds, |
382 | GNUNET_CONTAINER_META_DATA_SERIALIZE_PART); | 383 | GNUNET_CONTAINER_META_DATA_SERIALIZE_PART); |
383 | if (NULL != meta) | 384 | if (NULL != meta) |
@@ -503,6 +504,7 @@ GNUNET_FS_directory_builder_finish (struct GNUNET_FS_DirectoryBuilder *bld, | |||
503 | void **rdata) | 504 | void **rdata) |
504 | { | 505 | { |
505 | char *data; | 506 | char *data; |
507 | char *sptr; | ||
506 | size_t *sizes; | 508 | size_t *sizes; |
507 | unsigned int *perm; | 509 | unsigned int *perm; |
508 | unsigned int i; | 510 | unsigned int i; |
@@ -516,8 +518,7 @@ GNUNET_FS_directory_builder_finish (struct GNUNET_FS_DirectoryBuilder *bld, | |||
516 | uint32_t big; | 518 | uint32_t big; |
517 | 519 | ||
518 | size = 8 + sizeof (uint32_t); | 520 | size = 8 + sizeof (uint32_t); |
519 | size += GNUNET_CONTAINER_meta_data_get_serialized_size (bld->meta, | 521 | size += GNUNET_CONTAINER_meta_data_get_serialized_size (bld->meta); |
520 | GNUNET_CONTAINER_META_DATA_SERIALIZE_FULL); | ||
521 | sizes = NULL; | 522 | sizes = NULL; |
522 | perm = NULL; | 523 | perm = NULL; |
523 | bes = NULL; | 524 | bes = NULL; |
@@ -560,9 +561,9 @@ GNUNET_FS_directory_builder_finish (struct GNUNET_FS_DirectoryBuilder *bld, | |||
560 | memcpy (data, GNUNET_DIRECTORY_MAGIC, 8); | 561 | memcpy (data, GNUNET_DIRECTORY_MAGIC, 8); |
561 | off = 8; | 562 | off = 8; |
562 | 563 | ||
564 | sptr = &data[off + sizeof (uint32_t)]; | ||
563 | ret = GNUNET_CONTAINER_meta_data_serialize (bld->meta, | 565 | ret = GNUNET_CONTAINER_meta_data_serialize (bld->meta, |
564 | &data[off + | 566 | &sptr, |
565 | sizeof (uint32_t)], | ||
566 | size - off - sizeof (uint32_t), | 567 | size - off - sizeof (uint32_t), |
567 | GNUNET_CONTAINER_META_DATA_SERIALIZE_FULL); | 568 | GNUNET_CONTAINER_META_DATA_SERIALIZE_FULL); |
568 | GNUNET_assert (ret != -1); | 569 | GNUNET_assert (ret != -1); |