gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r13902 - gnunet/src/fs
Date: Tue, 14 Dec 2010 18:40:19 +0100

Author: grothoff
Date: 2010-12-14 18:40:19 +0100 (Tue, 14 Dec 2010)
New Revision: 13902

Modified:
   gnunet/src/fs/fs_download.c
   gnunet/src/fs/fs_tree.c
Log:
allow files of size 0

Modified: gnunet/src/fs/fs_download.c
===================================================================
--- gnunet/src/fs/fs_download.c 2010-12-14 15:00:26 UTC (rev 13901)
+++ gnunet/src/fs/fs_download.c 2010-12-14 17:40:19 UTC (rev 13902)
@@ -1839,9 +1839,35 @@
 GNUNET_FS_download_start_task_ (void *cls,
                                const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
-  struct GNUNET_FS_DownloadContext *dc = cls;
+  struct GNUNET_FS_DownloadContext *dc = cls;  
+  struct GNUNET_FS_ProgressInfo pi;
+  struct GNUNET_DISK_FileHandle *fh;
 
   dc->start_task = GNUNET_SCHEDULER_NO_TASK;
+  if (dc->length == 0)
+    {
+      /* no bytes required! */
+      if (dc->filename != NULL) 
+       {
+         fh = GNUNET_DISK_file_open (dc->filename != NULL 
+                                     ? dc->filename 
+                                     : dc->temp_filename, 
+                                     GNUNET_DISK_OPEN_READWRITE | 
+                                     GNUNET_DISK_OPEN_CREATE,
+                                     GNUNET_DISK_PERM_USER_READ |
+                                     GNUNET_DISK_PERM_USER_WRITE |
+                                     GNUNET_DISK_PERM_GROUP_READ |
+                                     GNUNET_DISK_PERM_OTHER_READ);
+         GNUNET_DISK_file_close (fh);
+       }
+
+      pi.status = GNUNET_FS_STATUS_DOWNLOAD_COMPLETED;
+      GNUNET_FS_download_make_status_ (&pi, dc);
+      GNUNET_FS_download_sync_ (dc);
+       if (dc->parent != NULL)
+       check_completed (dc->parent);      
+      return;
+    }
   schedule_block_download (dc, 
                           (dc->uri->type == chk) 
                           ? &dc->uri->data.chk.chk

Modified: gnunet/src/fs/fs_tree.c
===================================================================
--- gnunet/src/fs/fs_tree.c     2010-12-14 15:00:26 UTC (rev 13901)
+++ gnunet/src/fs/fs_tree.c     2010-12-14 17:40:19 UTC (rev 13902)
@@ -173,7 +173,6 @@
 {
   struct GNUNET_FS_TreeEncoder *te;
   
-  GNUNET_assert (size > 0);
   te = GNUNET_malloc (sizeof (struct GNUNET_FS_TreeEncoder));  
   te->h = h;
   te->size = size;
@@ -253,7 +252,7 @@
   uint64_t epos;
   unsigned int chks;
 
-  GNUNET_assert (offset < fsize);
+  GNUNET_assert (offset <= fsize);
   if (depth == totaldepth)
     {
       ret = DBLOCK_SIZE;




reply via email to

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