[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r19507 - gnunet/src/fs
From: |
gnunet |
Subject: |
[GNUnet-SVN] r19507 - gnunet/src/fs |
Date: |
Sun, 29 Jan 2012 16:48:23 +0100 |
Author: grothoff
Date: 2012-01-29 16:48:23 +0100 (Sun, 29 Jan 2012)
New Revision: 19507
Modified:
gnunet/src/fs/fs_dirmetascan.c
gnunet/src/fs/fs_sharetree.c
gnunet/src/fs/gnunet-publish.c
Log:
-misc bugfixes
Modified: gnunet/src/fs/fs_dirmetascan.c
===================================================================
--- gnunet/src/fs/fs_dirmetascan.c 2012-01-29 14:46:35 UTC (rev 19506)
+++ gnunet/src/fs/fs_dirmetascan.c 2012-01-29 15:48:23 UTC (rev 19507)
@@ -217,6 +217,10 @@
if (wr > 0)
total += wr;
} while ( (wr > 0) && (total < size) );
+ if (wr <= 0)
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Failed to write to inter thread communication pipe: %s\n",
+ strerror (errno));
return (total == size) ? GNUNET_OK : GNUNET_SYSERR;
}
@@ -449,9 +453,11 @@
}
/* this is the expensive operation, *afterwards* we'll check for aborts */
+ fprintf (stderr, "\tCalling extract on `%s'\n", item->filename);
GNUNET_FS_meta_data_extract_from_file (item->meta,
item->filename,
ds->plugins);
+ fprintf (stderr, "\tExtract `%s' done\n", item->filename);
/* having full filenames is too dangerous; always make sure we clean them up
*/
GNUNET_CONTAINER_meta_data_delete (item->meta,
@@ -497,19 +503,25 @@
ds->filename_expanded,
&ds->toplevel))
{
- (void) write_progress (ds, "", GNUNET_NO,
GNUNET_FS_DIRSCANNER_INTERNAL_ERROR);
+ (void) write_progress (ds, "", GNUNET_SYSERR,
GNUNET_FS_DIRSCANNER_INTERNAL_ERROR);
+ GNUNET_DISK_pipe_close_end (ds->progress_pipe, GNUNET_DISK_PIPE_END_WRITE);
return 0;
}
if (GNUNET_OK !=
- write_progress (ds, "", GNUNET_NO, GNUNET_FS_DIRSCANNER_ALL_COUNTED))
+ write_progress (ds, "", GNUNET_SYSERR, GNUNET_FS_DIRSCANNER_ALL_COUNTED))
+ {
+ GNUNET_DISK_pipe_close_end (ds->progress_pipe, GNUNET_DISK_PIPE_END_WRITE);
return 0;
+ }
if (GNUNET_OK !=
extract_files (ds, ds->toplevel))
{
- (void) write_progress (ds, "", GNUNET_NO,
GNUNET_FS_DIRSCANNER_INTERNAL_ERROR);
+ (void) write_progress (ds, "", GNUNET_SYSERR,
GNUNET_FS_DIRSCANNER_INTERNAL_ERROR);
+ GNUNET_DISK_pipe_close_end (ds->progress_pipe, GNUNET_DISK_PIPE_END_WRITE);
return 0;
}
- (void) write_progress (ds, "", GNUNET_NO, GNUNET_FS_DIRSCANNER_FINISHED);
+ (void) write_progress (ds, "", GNUNET_SYSERR, GNUNET_FS_DIRSCANNER_FINISHED);
+ GNUNET_DISK_pipe_close_end (ds->progress_pipe, GNUNET_DISK_PIPE_END_WRITE);
return 0;
}
@@ -539,6 +551,10 @@
if (rd > 0)
total += rd;
} while ( (rd > 0) && (total < size) );
+ if (rd <= 0)
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Failed to read from inter thread communication pipe: %s\n",
+ strerror (errno));
return (total == size) ? GNUNET_OK : GNUNET_SYSERR;
}
@@ -560,7 +576,7 @@
char *filename;
ds->progress_read_task = GNUNET_SCHEDULER_NO_TASK;
- if (! (tc->reason & GNUNET_SCHEDULER_REASON_READ_READY))
+ if (0 == (tc->reason & GNUNET_SCHEDULER_REASON_READ_READY))
{
ds->progress_read_task
= GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL,
@@ -604,13 +620,14 @@
}
/* schedule task to keep reading (done here in case client calls
abort or something similar) */
- if ( (reason != GNUNET_FS_DIRSCANNER_EXTRACT_FINISHED) &&
+ if ( (reason != GNUNET_FS_DIRSCANNER_FINISHED) &&
(reason != GNUNET_FS_DIRSCANNER_INTERNAL_ERROR) )
+ {
ds->progress_read_task
= GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL,
ds->progress_read,
&read_progress_task, ds);
-
+ }
/* read successfully, notify client about progress */
ds->progress_callback (ds->progress_callback_cls,
ds,
Modified: gnunet/src/fs/fs_sharetree.c
===================================================================
--- gnunet/src/fs/fs_sharetree.c 2012-01-29 14:46:35 UTC (rev 19506)
+++ gnunet/src/fs/fs_sharetree.c 2012-01-29 15:48:23 UTC (rev 19507)
@@ -274,7 +274,12 @@
struct KeywordCounter *counter = value;
if (counter->count >= tc->move_threshold)
- GNUNET_FS_uri_ksk_add_keyword (tc->pos->ksk_uri, counter->value,
GNUNET_NO);
+ {
+ if (NULL == tc->pos->ksk_uri)
+ tc->pos->ksk_uri = GNUNET_FS_uri_ksk_create_from_args (1,
&counter->value);
+ else
+ GNUNET_FS_uri_ksk_add_keyword (tc->pos->ksk_uri, counter->value,
GNUNET_NO);
+ }
GNUNET_assert (GNUNET_YES ==
GNUNET_CONTAINER_multihashmap_remove (tc->keywordcounter,
key,
@@ -360,7 +365,8 @@
for (pos = tree->children_head; NULL != pos; pos = pos->next)
{
GNUNET_CONTAINER_meta_data_iterate (pos->meta, &add_to_meta_counter,
tc->metacounter);
- GNUNET_FS_uri_ksk_get_keywords (pos->ksk_uri, &add_to_keyword_counter,
tc->keywordcounter);
+ if (NULL != pos->ksk_uri)
+ GNUNET_FS_uri_ksk_get_keywords (pos->ksk_uri, &add_to_keyword_counter,
tc->keywordcounter);
}
/* calculate threshold for moving keywords / meta data */
@@ -370,7 +376,8 @@
for (pos = tree->children_head; NULL != pos; pos = pos->next)
{
tc->pos = pos;
- GNUNET_FS_uri_ksk_get_keywords (pos->ksk_uri,
&remove_high_frequency_keywords, tc);
+ if (NULL != pos->ksk_uri)
+ GNUNET_FS_uri_ksk_get_keywords (pos->ksk_uri,
&remove_high_frequency_keywords, tc);
}
/* add high-frequency meta data and keywords to parent */
Modified: gnunet/src/fs/gnunet-publish.c
===================================================================
--- gnunet/src/fs/gnunet-publish.c 2012-01-29 14:46:35 UTC (rev 19506)
+++ gnunet/src/fs/gnunet-publish.c 2012-01-29 15:48:23 UTC (rev 19507)
@@ -344,6 +344,7 @@
ctx = NULL;
}
+
static struct GNUNET_FS_FileInformation *
get_file_information (struct GNUNET_FS_ShareTreeItem *item)
{
@@ -356,7 +357,13 @@
GNUNET_CONTAINER_meta_data_delete (item->meta,
EXTRACTOR_METATYPE_MIMETYPE, NULL, 0);
GNUNET_FS_meta_data_make_directory (item->meta);
- GNUNET_FS_uri_ksk_add_keyword (item->ksk_uri, GNUNET_FS_DIRECTORY_MIME,
+ if (NULL == item->ksk_uri)
+ {
+ const char *mime = GNUNET_FS_DIRECTORY_MIME;
+ item->ksk_uri = GNUNET_FS_uri_ksk_create_from_args (1, &mime);
+ }
+ else
+ GNUNET_FS_uri_ksk_add_keyword (item->ksk_uri, GNUNET_FS_DIRECTORY_MIME,
GNUNET_NO);
fi = GNUNET_FS_file_information_create_empty_directory (
ctx, NULL, item->ksk_uri,
@@ -467,6 +474,7 @@
GNUNET_assert (0);
break;
}
+ fflush (stdout);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r19507 - gnunet/src/fs,
gnunet <=