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
*/
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;
+ /**
+ * Queue entry for reservation/unreservation.
+ */
+ struct GNUNET_DATASTORE_QueueEntry *qre;
+
/**
* ID of the task performing the upload. NO_TASK if the upload has
* completed.
*/
GNUNET_SCHEDULER_TaskIdentifier upload_task;
+ /**
+ * Storage space to reserve for the operation.
+ */
+ uint64_t reserve_space;
+
+ /**
+ * Overall number of entries to reserve for the
+ * publish operation.
+ */
+ uint32_t reserve_entries;
+
/**
* Typically GNUNET_NO. Set to GNUNET_YES if "upload_task" is
* GNUNET_SCHEDULER_NO_TASK and we're waiting for a response from
*/
int has_finished;
+ /**
+ * Have we tried (and failed) to find matching full
+ * data from the meta data yet?
+ */
+ int tried_full_data;
};
struct GNUNET_FS_Namespace
*/
struct GNUNET_MessageHeader header;
+ /**
+ * For alignment.
+ */
+ uint32_t reserved GNUNET_PACKED;
+
/**
* ID of device containing the file, as seen by the client. This
* device ID is obtained using a call like "statvfs" (and converting
* OS does not support this, in which case the service must do a
* full hash recomputation.
*/
- uint32_t device GNUNET_PACKED;
+ uint64_t device GNUNET_PACKED;
/**
* Inode of the file on the given device, as seen by the client