/*
This file is part of GNUnet.
- (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 GNUnet e.V.
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
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.
*/
/**
* complete on time (and that will need to be cancelled if we clean
* up the search result before then).
*/
- GNUNET_SCHEDULER_TaskIdentifier probe_cancel_task;
+ struct GNUNET_SCHEDULER_Task * probe_cancel_task;
/**
* When did the current probe become active?
* Main function that performs the upload.
*
* @param cls `struct GNUNET_FS_PublishContext` identifies the upload
- * @param tc task context
*/
void
-GNUNET_FS_publish_main_ (void *cls,
- const struct GNUNET_SCHEDULER_TaskContext *tc);
+GNUNET_FS_publish_main_ (void *cls);
/**
* request for the file.
*
* @param cls the 'struct GNUNET_FS_DownloadContext'
- * @param tc scheduler context
*/
void
-GNUNET_FS_download_start_task_ (void *cls,
- const struct GNUNET_SCHEDULER_TaskContext *tc);
+GNUNET_FS_download_start_task_ (void *cls);
* Task that processes the jobs in the running and pending queues
* (and moves jobs around as needed).
*/
- GNUNET_SCHEDULER_TaskIdentifier queue_job;
+ struct GNUNET_SCHEDULER_Task * queue_job;
/**
* Task we use to report periodically to the application that
* certain search probes (from @e probes_head) are still running.
*/
- GNUNET_SCHEDULER_TaskIdentifier probe_ping_task;
+ struct GNUNET_SCHEDULER_Task * probe_ping_task;
/**
* Average time we take for a single request to be satisfied.
* ID of the task performing the upload. NO_TASK if the upload has
* completed.
*/
- GNUNET_SCHEDULER_TaskIdentifier upload_task;
+ struct GNUNET_SCHEDULER_Task * upload_task;
/**
* Storage space to reserve for the operation.
*/
int rid;
+ /**
+ * Set to #GNUNET_YES if we were able to publish any block.
+ * (and thus unindexing on error might make sense).
+ */
+ int any_done;
+
/**
* Set to #GNUNET_YES if all processing has completed.
*/
*/
struct GNUNET_HashCode uquery;
- /**
- * First content UID, 0 for none.
- */
- uint64_t first_uid;
-
/**
* Error message, NULL on success.
*/
*/
struct GNUNET_CRYPTO_FileHashContext *fhc;
+ /**
+ * Which values have we seen already?
+ */
+ struct GNUNET_CONTAINER_MultiHashMap *seen_dh;
+
/**
* Overall size of the file.
*/
/**
* ID of a task that is using this struct and that must be cancelled
* when the search is being stopped (if not
- * #GNUNET_SCHEDULER_NO_TASK). Used for the task that adds some
+ * NULL). Used for the task that adds some
* artificial delay when trying to reconnect to the FS service.
*/
- GNUNET_SCHEDULER_TaskIdentifier task;
+ struct GNUNET_SCHEDULER_Task *task;
/**
* How many of the entries in the search request
/**
* ID of a task that is using this struct and that must be cancelled
* when the download is being stopped (if not
- * #GNUNET_SCHEDULER_NO_TASK). Used for the task that adds some
+ * NULL). Used for the task that adds some
* artificial delay when trying to reconnect to the FS service or
* the task processing incrementally the data on disk, or the
* task requesting blocks, etc.
*/
- GNUNET_SCHEDULER_TaskIdentifier task;
+ struct GNUNET_SCHEDULER_Task *task;
/**
* What is the first offset that we're interested