[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r19702 - gnunet/src/fs
From: |
gnunet |
Subject: |
[GNUnet-SVN] r19702 - gnunet/src/fs |
Date: |
Sun, 5 Feb 2012 19:48:20 +0100 |
Author: grothoff
Date: 2012-02-05 19:48:20 +0100 (Sun, 05 Feb 2012)
New Revision: 19702
Modified:
gnunet/src/fs/fs_publish.c
Log:
-fix generation of duplicate publish-stop events
Modified: gnunet/src/fs/fs_publish.c
===================================================================
--- gnunet/src/fs/fs_publish.c 2012-02-05 18:08:04 UTC (rev 19701)
+++ gnunet/src/fs/fs_publish.c 2012-02-05 18:48:20 UTC (rev 19702)
@@ -1264,6 +1264,9 @@
void
GNUNET_FS_publish_stop (struct GNUNET_FS_PublishContext *pc)
{
+ struct GNUNET_FS_ProgressInfo pi;
+ uint64_t off;
+
#if DEBUG_PUBLISH
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Publish stop called\n");
#endif
@@ -1283,6 +1286,20 @@
GNUNET_SCHEDULER_cancel (pc->upload_task);
pc->upload_task = GNUNET_SCHEDULER_NO_TASK;
}
+ pc->skip_next_fi_callback = GNUNET_YES;
+ GNUNET_FS_file_information_inspect (pc->fi, &fip_signal_stop, pc);
+
+ if (pc->fi->serialization != NULL)
+ {
+ GNUNET_FS_remove_sync_file_ (pc->h, GNUNET_FS_SYNC_PATH_FILE_INFO,
+ pc->fi->serialization);
+ GNUNET_free (pc->fi->serialization);
+ pc->fi->serialization = NULL;
+ }
+ off = (pc->fi->chk_uri == NULL) ? 0 : GNUNET_ntohll
(pc->fi->chk_uri->data.chk.file_length);
+ pi.status = GNUNET_FS_STATUS_PUBLISH_STOPPED;
+ GNUNET_break (NULL == GNUNET_FS_publish_make_status_ (&pi, pc, pc->fi, off));
+
if (pc->serialization != NULL)
{
GNUNET_FS_remove_sync_file_ (pc->h, GNUNET_FS_SYNC_PATH_MASTER_PUBLISH,
@@ -1290,7 +1307,6 @@
GNUNET_free (pc->serialization);
pc->serialization = NULL;
}
- GNUNET_FS_file_information_inspect (pc->fi, &fip_signal_stop, pc);
if (GNUNET_YES == pc->in_network_wait)
{
pc->in_network_wait = GNUNET_SYSERR;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r19702 - gnunet/src/fs,
gnunet <=