gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r12202 - gnunet/src/fs


From: gnunet
Subject: [GNUnet-SVN] r12202 - gnunet/src/fs
Date: Sun, 11 Jul 2010 23:47:50 +0200

Author: grothoff
Date: 2010-07-11 23:47:50 +0200 (Sun, 11 Jul 2010)
New Revision: 12202

Modified:
   gnunet/src/fs/fs.h
   gnunet/src/fs/fs_publish.c
Log:
fix 1579

Modified: gnunet/src/fs/fs.h
===================================================================
--- gnunet/src/fs/fs.h  2010-07-11 21:02:58 UTC (rev 12201)
+++ gnunet/src/fs/fs.h  2010-07-11 21:47:50 UTC (rev 12202)
@@ -1302,6 +1302,11 @@
   struct GNUNET_FS_FileInformation *fi_pos;
 
   /**
+   * Non-null if we are currently hashing a file.
+   */
+  struct GNUNET_CRYPTO_FileHashContext *fhc;
+
+  /**
    * Connection to the datastore service.
    */
   struct GNUNET_DATASTORE_Handle *dsh;

Modified: gnunet/src/fs/fs_publish.c
===================================================================
--- gnunet/src/fs/fs_publish.c  2010-07-11 21:02:58 UTC (rev 12201)
+++ gnunet/src/fs/fs_publish.c  2010-07-11 21:47:50 UTC (rev 12202)
@@ -113,6 +113,11 @@
 {
   struct GNUNET_FS_PublishContext *pc = cls;
 
+  if (pc->fhc != NULL)
+    {
+      GNUNET_CRYPTO_hash_file_cancel (pc->fhc);
+      pc->fhc = NULL;
+    }
   GNUNET_FS_file_information_destroy (pc->fi, NULL, NULL);
   if (pc->namespace != NULL)
     GNUNET_FS_namespace_delete (pc->namespace, GNUNET_NO);
@@ -788,6 +793,7 @@
   uint64_t ino;
   char *fn;
 
+  sc->fhc = NULL;
   p = sc->fi_pos;
   if (NULL == res) 
     {
@@ -1023,12 +1029,12 @@
       else
        {
          p->start_time = GNUNET_TIME_absolute_get ();
-         GNUNET_CRYPTO_hash_file (pc->h->sched,
-                                  GNUNET_SCHEDULER_PRIORITY_IDLE,
-                                  p->filename,
-                                  HASHING_BLOCKSIZE,
-                                  &hash_for_index_cb,
-                                  pc);
+         pc->fhc = GNUNET_CRYPTO_hash_file (pc->h->sched,
+                                            GNUNET_SCHEDULER_PRIORITY_IDLE,
+                                            p->filename,
+                                            HASHING_BLOCKSIZE,
+                                            &hash_for_index_cb,
+                                            pc);
        }
       return;
     }
@@ -1235,6 +1241,7 @@
   struct GNUNET_FS_PublishContext *ret;
   struct GNUNET_DATASTORE_Handle *dsh;
 
+  GNUNET_assert (NULL != h);
   if (0 == (options & GNUNET_FS_PUBLISH_OPTION_SIMULATE_ONLY))
     {
       dsh = GNUNET_DATASTORE_connect (h->cfg,




reply via email to

[Prev in Thread] Current Thread [Next in Thread]