gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r14249 - gnunet/src/fs
Date: Mon, 24 Jan 2011 22:28:37 +0100

Author: grothoff
Date: 2011-01-24 22:28:37 +0100 (Mon, 24 Jan 2011)
New Revision: 14249

Modified:
   gnunet/src/fs/fs_download.c
Log:
fixes

Modified: gnunet/src/fs/fs_download.c
===================================================================
--- gnunet/src/fs/fs_download.c 2011-01-24 21:28:21 UTC (rev 14248)
+++ gnunet/src/fs/fs_download.c 2011-01-24 21:28:37 UTC (rev 14249)
@@ -846,16 +846,20 @@
              dr->depth,
              GNUNET_h2s (&dr->chk.query));
 #endif
-  GNUNET_CONTAINER_DLL_insert (dc->pending_head,
-                              dc->pending_tail,
-                              dr);
-  dr->is_pending = GNUNET_YES;
+  GNUNET_assert (GNUNET_NO ==
+                GNUNET_CONTAINER_multihashmap_contains_value (dc->active,
+                                                              &dr->chk.query,
+                                                              dr));
   GNUNET_CONTAINER_multihashmap_put (dc->active,
                                     &dr->chk.query,
                                     dr,
                                     
GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE);
   if (dc->client == NULL)
     return; /* download not active */
+  GNUNET_CONTAINER_DLL_insert (dc->pending_head,
+                              dc->pending_tail,
+                              dr);
+  dr->is_pending = GNUNET_YES;
   if (NULL == dc->th)
     dc->th = GNUNET_CLIENT_notify_transmit_ready (dc->client,
                                                  sizeof (struct SearchMessage),
@@ -1547,6 +1551,8 @@
   struct GNUNET_FS_DownloadContext *dc = cls;
   struct DownloadRequest *dr = entry;
 
+  dr->next = NULL;
+  dr->prev = NULL;
   GNUNET_CONTAINER_DLL_insert (dc->pending_head,
                               dc->pending_tail,
                               dr);
@@ -1624,6 +1630,8 @@
                         GNUNET_TIME_UNIT_FOREVER_REL);
   pi.status = GNUNET_FS_STATUS_DOWNLOAD_ACTIVE;
   GNUNET_FS_download_make_status_ (&pi, dc);
+  GNUNET_assert (dc->pending_head == NULL);
+  GNUNET_assert (dc->pending_tail == NULL);
   GNUNET_CONTAINER_multihashmap_iterate (dc->active,
                                         &retry_entry,
                                         dc);
@@ -1669,6 +1677,8 @@
       GNUNET_CLIENT_disconnect (dc->client, GNUNET_NO);
       dc->client = NULL;
     }
+  dc->pending_head = NULL;
+  dc->pending_tail = NULL;
   pi.status = GNUNET_FS_STATUS_DOWNLOAD_INACTIVE;
   GNUNET_FS_download_make_status_ (&pi, dc);
 }




reply via email to

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