Forget to commit some files
[oweals/gnunet.git] / src / fs / fs_dirmetascan.c
index 7139ea45a99563ef6dfa57cfd23bd4d05ddcd3cb..45d502c91859552f33206d4cedbee218338cfb45 100644 (file)
@@ -1,10 +1,10 @@
 /*
      This file is part of GNUnet
 /*
      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
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
+     by the Free Software Foundation; either version 3, or (at your
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
@@ -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
 
      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;
    * 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;
   /**
    * The function that will be called every time there's a progress
    * message.
    */
   GNUNET_FS_DirScannerProgressCallback progress_callback;
-  
+
   /**
    * A closure for 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
   /**
    * 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;
 
    */
   struct GNUNET_FS_ShareTreeItem *toplevel;
 
@@ -80,7 +80,7 @@ struct GNUNET_FS_DirScanner
   /**
    * Task scheduled when we are done.
    */
   /**
    * Task scheduled when we are done.
    */
-  GNUNET_SCHEDULER_TaskIdentifier stop_task;
+  struct GNUNET_SCHEDULER_Task * stop_task;
 
   /**
    * Arguments for helper.
 
   /**
    * Arguments for helper.
@@ -90,7 +90,6 @@ struct GNUNET_FS_DirScanner
 };
 
 
 };
 
 
-
 /**
  * Abort the scan.  Must not be called from within the progress_callback
  * function.
 /**
  * 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);
   /* 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);
   /* 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);
     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;
   GNUNET_assert (NULL == ds->helper);
   /* preserve result */
   result = ds->toplevel;
-  ds->toplevel = NULL; 
+  ds->toplevel = NULL;
   GNUNET_FS_directory_scan_abort (ds);
   return result;
 }
   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;
 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) ||
   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;
 
   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,
   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,
   if (NULL != parent)
       GNUNET_CONTAINER_DLL_insert (parent->children_head,
                                   parent->children_tail,
-                                  chld);  
+                                  chld);
   return chld;
 }
 
   return chld;
 }
 
@@ -231,15 +230,15 @@ finish_scan (void *cls,
 {
   struct GNUNET_FS_DirScanner *ds = 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;
   }
   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,
                         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
  * @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)
 {
                     void *client,
                     const struct GNUNET_MessageHeader *msg)
 {
@@ -275,7 +274,7 @@ process_helper_msgs (void *cls,
       GNUNET_break (0);
       break;
     }
       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)
                           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->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,
                           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;
   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;
                           filename, GNUNET_SYSERR,
                           GNUNET_FS_DIRSCANNER_FILE_IGNORED);
     return GNUNET_OK;
@@ -329,7 +328,7 @@ process_helper_msgs (void *cls,
       GNUNET_break (0);
       break;
     }
       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;
                           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;
     {
       size_t nlen;
       const char *end;
-      
+
       if (NULL == ds->pos)
       {
        GNUNET_break (0);
       if (NULL == ds->pos)
       {
        GNUNET_break (0);
@@ -361,7 +360,7 @@ process_helper_msgs (void *cls,
        GNUNET_break (0);
        break;
       }
        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)
                             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 */
          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, "<libgnunetfs>",
                                           EXTRACTOR_METATYPE_GNUNET_ORIGINAL_FILENAME,
                                           EXTRACTOR_METAFORMAT_UTF8, "text/plain",
                                           EXTRACTOR_METATYPE_FILENAME,
                                           NULL, 0);
        /* instead, put in our 'safer' original filename */
        GNUNET_CONTAINER_meta_data_insert (ds->pos->meta, "<libgnunetfs>",
                                           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);
                                           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:
       return GNUNET_OK;
     }
   case GNUNET_MESSAGE_TYPE_FS_PUBLISH_HELPER_FINISHED:
@@ -397,7 +396,7 @@ process_helper_msgs (void *cls,
     {
       GNUNET_break (0);
       break;
     {
       GNUNET_break (0);
       break;
-    }   
+    }
     if (NULL == ds->toplevel)
     {
       GNUNET_break (0);
     if (NULL == ds->toplevel)
     {
       GNUNET_break (0);
@@ -410,7 +409,7 @@ process_helper_msgs (void *cls,
     GNUNET_break (0);
     break;
   }
     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;
                         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;
   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 */
     return; /* normal death, was finished */
-  ds->progress_callback (ds->progress_callback_cls, 
+  ds->progress_callback (ds->progress_callback_cls,
                         NULL, GNUNET_SYSERR,
                         NULL, GNUNET_SYSERR,
-                        GNUNET_FS_DIRSCANNER_INTERNAL_ERROR);  
+                        GNUNET_FS_DIRSCANNER_INTERNAL_ERROR);
 }
 
 
 }
 
 
@@ -440,7 +439,7 @@ helper_died_cb (void *cls)
  * Start a directory scanner thread.
  *
  * @param filename name of the directory to scan
  * Start a directory scanner thread.
  *
  * @param filename name of the directory to scan
- * @param disable_extractor GNUNET_YES to not to run libextractor on files (only build a tree)
+ * @param disable_extractor #GNUNET_YES to not to run libextractor on files (only build a tree)
  * @param ex if not NULL, must be a list of extra plugins for extractor
  * @param cb the callback to call when there are scanning progress messages
  * @param cb_cls closure for 'cb'
  * @param ex if not NULL, must be a list of extra plugins for extractor
  * @param cb the callback to call when there are scanning progress messages
  * @param cb_cls closure for 'cb'
@@ -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,
 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;
                                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);
   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;
   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 ("-");
     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;
     ds->ex_arg = (NULL != ex) ? GNUNET_strdup (ex) : NULL;
   ds->args[0] = "gnunet-helper-fs-publish";
   ds->args[1] = ds->filename_expanded;