fixing 1584
[oweals/gnunet.git] / src / fs / fs_publish.c
index 89d1f84cb9d31ac0089313393e428c0f01b8e231..73fc710e18dc33b73960ac6b21473ed69102aa70 100644 (file)
@@ -487,6 +487,15 @@ encode_cont (void *cls,
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
              "Finished with tree encoder\n");
 #endif  
+  /* final progress event */
+  pi.status = GNUNET_FS_STATUS_PUBLISH_PROGRESS;
+  pi.value.publish.specifics.progress.data = NULL;
+  pi.value.publish.specifics.progress.offset = GNUNET_FS_uri_chk_get_file_size (p->chk_uri);
+  pi.value.publish.specifics.progress.data_len = 0;
+  pi.value.publish.specifics.progress.depth = 0;
+  p->client_info = GNUNET_FS_publish_make_status_ (&pi, sc, p, 
+                                                  GNUNET_FS_uri_chk_get_file_size (p->chk_uri));
+
   /* continue with main */
   sc->upload_task 
     = GNUNET_SCHEDULER_add_with_priority (sc->h->sched,
@@ -558,7 +567,7 @@ block_proc (void *cls,
       odb.offset = GNUNET_htonll (offset);
       odb.file_id = p->data.file.file_id;
       GNUNET_DATASTORE_put (sc->dsh,
-                           sc->rid,
+                           (p->is_directory) ? 0 : sc->rid,
                            query,
                            sizeof(struct OnDemandBlock),
                            &odb,
@@ -580,7 +589,7 @@ block_proc (void *cls,
              (unsigned int) block_size);
 #endif
   GNUNET_DATASTORE_put (sc->dsh,
-                       sc->rid,
+                       (p->is_directory) ? 0 : sc->rid,
                        query,
                        block_size,
                        block,
@@ -1096,6 +1105,7 @@ fip_signal_start(void *cls,
       left = left * sizeof (struct ContentHashKey);
       sc->reserve_space += left;
     }
+  sc->reserve_entries++;
   /* entries and space for keywords */
   if (NULL != *uri)
     {