X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Ffs%2Ffs_dirmetascan.c;h=45d502c91859552f33206d4cedbee218338cfb45;hb=dd1927b960c7cea13733e061a11142274652ba27;hp=d1b6d1c394e0d29b43f0eb50839c1f40c3b4890e;hpb=5e3b6270bdefcac08532fb9cf460da807090c207;p=oweals%2Fgnunet.git diff --git a/src/fs/fs_dirmetascan.c b/src/fs/fs_dirmetascan.c index d1b6d1c39..45d502c91 100644 --- a/src/fs/fs_dirmetascan.c +++ b/src/fs/fs_dirmetascan.c @@ -1,6 +1,6 @@ /* This file is part of GNUnet - (C) 2005-2012 Christian Grothoff (and other contributing authors) + Copyright (C) 2005-2012 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 @@ -14,8 +14,8 @@ You should have received a copy of the GNU General Public License along with GNUnet; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ /** @@ -53,13 +53,13 @@ struct GNUNET_FS_DirScanner * Second argument to helper process. */ char *ex_arg; - + /** * The function that will be called every time there's a progress * message. */ GNUNET_FS_DirScannerProgressCallback progress_callback; - + /** * A closure for progress_callback. */ @@ -68,7 +68,7 @@ struct GNUNET_FS_DirScanner /** * After the scan is finished, it will contain a pointer to the * top-level directory entry in the directory tree built by the - * scanner. + * scanner. */ struct GNUNET_FS_ShareTreeItem *toplevel; @@ -80,7 +80,7 @@ struct GNUNET_FS_DirScanner /** * Task scheduled when we are done. */ - GNUNET_SCHEDULER_TaskIdentifier stop_task; + struct GNUNET_SCHEDULER_Task * stop_task; /** * Arguments for helper. @@ -90,7 +90,6 @@ struct GNUNET_FS_DirScanner }; - /** * Abort the scan. Must not be called from within the progress_callback * function. @@ -103,11 +102,11 @@ GNUNET_FS_directory_scan_abort (struct GNUNET_FS_DirScanner *ds) /* terminate helper */ if (NULL != ds->helper) GNUNET_HELPER_stop (ds->helper, GNUNET_NO); - + /* free resources */ if (NULL != ds->toplevel) GNUNET_FS_share_tree_free (ds->toplevel); - if (GNUNET_SCHEDULER_NO_TASK != ds->stop_task) + if (NULL != ds->stop_task) GNUNET_SCHEDULER_cancel (ds->stop_task); GNUNET_free_non_null (ds->ex_arg); GNUNET_free (ds->filename_expanded); @@ -132,7 +131,7 @@ GNUNET_FS_directory_scan_get_result (struct GNUNET_FS_DirScanner *ds) GNUNET_assert (NULL == ds->helper); /* preserve result */ result = ds->toplevel; - ds->toplevel = NULL; + ds->toplevel = NULL; GNUNET_FS_directory_scan_abort (ds); return result; } @@ -149,7 +148,7 @@ static struct GNUNET_FS_ShareTreeItem * advance (struct GNUNET_FS_ShareTreeItem *pos) { int moved; - + GNUNET_assert (NULL != pos); moved = 0; /* must not terminate, even on file, otherwise "normal" */ while ( (pos->is_directory == GNUNET_YES) || @@ -197,7 +196,7 @@ expand_tree (struct GNUNET_FS_ShareTreeItem *parent, struct GNUNET_FS_ShareTreeItem *chld; size_t slen; - chld = GNUNET_malloc (sizeof (struct GNUNET_FS_ShareTreeItem)); + chld = GNUNET_new (struct GNUNET_FS_ShareTreeItem); chld->parent = parent; chld->filename = GNUNET_strdup (filename); GNUNET_asprintf (&chld->short_filename, @@ -214,7 +213,7 @@ expand_tree (struct GNUNET_FS_ShareTreeItem *parent, if (NULL != parent) GNUNET_CONTAINER_DLL_insert (parent->children_head, parent->children_tail, - chld); + chld); return chld; } @@ -231,15 +230,15 @@ finish_scan (void *cls, { struct GNUNET_FS_DirScanner *ds = cls; - ds->stop_task = GNUNET_SCHEDULER_NO_TASK; + ds->stop_task = NULL; if (NULL != ds->helper) { GNUNET_HELPER_stop (ds->helper, GNUNET_NO); ds->helper = NULL; } - ds->progress_callback (ds->progress_callback_cls, + ds->progress_callback (ds->progress_callback_cls, NULL, GNUNET_SYSERR, - GNUNET_FS_DIRSCANNER_FINISHED); + GNUNET_FS_DIRSCANNER_FINISHED); } @@ -252,7 +251,7 @@ finish_scan (void *cls, * @param msg message from the helper process */ static int -process_helper_msgs (void *cls, +process_helper_msgs (void *cls, void *client, const struct GNUNET_MessageHeader *msg) { @@ -275,7 +274,7 @@ process_helper_msgs (void *cls, GNUNET_break (0); break; } - ds->progress_callback (ds->progress_callback_cls, + ds->progress_callback (ds->progress_callback_cls, filename, GNUNET_NO, GNUNET_FS_DIRSCANNER_FILE_START); if (NULL == ds->toplevel) @@ -301,7 +300,7 @@ process_helper_msgs (void *cls, ds->pos = ds->pos->parent; return GNUNET_OK; } - ds->progress_callback (ds->progress_callback_cls, + ds->progress_callback (ds->progress_callback_cls, filename, GNUNET_YES, GNUNET_FS_DIRSCANNER_FILE_START); ds->pos = expand_tree (ds->pos, @@ -314,7 +313,7 @@ process_helper_msgs (void *cls, case GNUNET_MESSAGE_TYPE_FS_PUBLISH_HELPER_SKIP_FILE: if ('\0' != filename[left-1]) break; - ds->progress_callback (ds->progress_callback_cls, + ds->progress_callback (ds->progress_callback_cls, filename, GNUNET_SYSERR, GNUNET_FS_DIRSCANNER_FILE_IGNORED); return GNUNET_OK; @@ -329,7 +328,7 @@ process_helper_msgs (void *cls, GNUNET_break (0); break; } - ds->progress_callback (ds->progress_callback_cls, + ds->progress_callback (ds->progress_callback_cls, NULL, GNUNET_SYSERR, GNUNET_FS_DIRSCANNER_ALL_COUNTED); ds->pos = ds->toplevel; @@ -340,7 +339,7 @@ process_helper_msgs (void *cls, { size_t nlen; const char *end; - + if (NULL == ds->pos) { GNUNET_break (0); @@ -361,7 +360,7 @@ process_helper_msgs (void *cls, GNUNET_break (0); break; } - ds->progress_callback (ds->progress_callback_cls, + ds->progress_callback (ds->progress_callback_cls, filename, GNUNET_YES, GNUNET_FS_DIRSCANNER_EXTRACT_FINISHED); if (0 < left) @@ -373,18 +372,18 @@ process_helper_msgs (void *cls, break; } /* having full filenames is too dangerous; always make sure we clean them up */ - GNUNET_CONTAINER_meta_data_delete (ds->pos->meta, + GNUNET_CONTAINER_meta_data_delete (ds->pos->meta, EXTRACTOR_METATYPE_FILENAME, NULL, 0); /* instead, put in our 'safer' original filename */ GNUNET_CONTAINER_meta_data_insert (ds->pos->meta, "", EXTRACTOR_METATYPE_GNUNET_ORIGINAL_FILENAME, EXTRACTOR_METAFORMAT_UTF8, "text/plain", - ds->pos->short_filename, + ds->pos->short_filename, strlen (ds->pos->short_filename) + 1); } ds->pos->ksk_uri = GNUNET_FS_uri_ksk_create_from_meta_data (ds->pos->meta); - ds->pos = advance (ds->pos); + ds->pos = advance (ds->pos); return GNUNET_OK; } case GNUNET_MESSAGE_TYPE_FS_PUBLISH_HELPER_FINISHED: @@ -397,7 +396,7 @@ process_helper_msgs (void *cls, { GNUNET_break (0); break; - } + } if (NULL == ds->toplevel) { GNUNET_break (0); @@ -410,7 +409,7 @@ process_helper_msgs (void *cls, GNUNET_break (0); break; } - ds->progress_callback (ds->progress_callback_cls, + ds->progress_callback (ds->progress_callback_cls, NULL, GNUNET_SYSERR, GNUNET_FS_DIRSCANNER_INTERNAL_ERROR); return GNUNET_OK; @@ -428,11 +427,11 @@ helper_died_cb (void *cls) struct GNUNET_FS_DirScanner *ds = cls; ds->helper = NULL; - if (GNUNET_SCHEDULER_NO_TASK != ds->stop_task) + if (NULL != ds->stop_task) return; /* normal death, was finished */ - ds->progress_callback (ds->progress_callback_cls, + ds->progress_callback (ds->progress_callback_cls, NULL, GNUNET_SYSERR, - GNUNET_FS_DIRSCANNER_INTERNAL_ERROR); + GNUNET_FS_DIRSCANNER_INTERNAL_ERROR); } @@ -449,7 +448,7 @@ helper_died_cb (void *cls) struct GNUNET_FS_DirScanner * GNUNET_FS_directory_scan_start (const char *filename, int disable_extractor, const char *ex, - GNUNET_FS_DirScannerProgressCallback cb, + GNUNET_FS_DirScannerProgressCallback cb, void *cb_cls) { struct stat sbuf; @@ -464,13 +463,13 @@ GNUNET_FS_directory_scan_start (const char *filename, GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Starting to scan directory `%s'\n", filename_expanded); - ds = GNUNET_malloc (sizeof (struct GNUNET_FS_DirScanner)); + ds = GNUNET_new (struct GNUNET_FS_DirScanner); ds->progress_callback = cb; ds->progress_callback_cls = cb_cls; ds->filename_expanded = filename_expanded; - if (disable_extractor) + if (disable_extractor) ds->ex_arg = GNUNET_strdup ("-"); - else + else ds->ex_arg = (NULL != ex) ? GNUNET_strdup (ex) : NULL; ds->args[0] = "gnunet-helper-fs-publish"; ds->args[1] = ds->filename_expanded;