gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r15157 - gnunet/src/fs
Date: Thu, 5 May 2011 15:03:19 +0200

Author: grothoff
Date: 2011-05-05 15:03:19 +0200 (Thu, 05 May 2011)
New Revision: 15157

Modified:
   gnunet/src/fs/fs.h
   gnunet/src/fs/fs_download.c
Log:
fix

Modified: gnunet/src/fs/fs.h
===================================================================
--- gnunet/src/fs/fs.h  2011-05-05 12:04:19 UTC (rev 15156)
+++ gnunet/src/fs/fs.h  2011-05-05 13:03:19 UTC (rev 15157)
@@ -1980,6 +1980,11 @@
    */
   int has_finished;
 
+  /**
+   * Have we started the receive continuation yet?
+   */
+  int in_receive;
+
 };
 
 

Modified: gnunet/src/fs/fs_download.c
===================================================================
--- gnunet/src/fs/fs_download.c 2011-05-05 12:04:19 UTC (rev 15156)
+++ gnunet/src/fs/fs_download.c 2011-05-05 13:03:19 UTC (rev 15157)
@@ -1298,6 +1298,7 @@
       dc->th = NULL;
     }
   GNUNET_CLIENT_disconnect (dc->client, GNUNET_NO);
+  dc->in_receive = GNUNET_NO;
   dc->client = NULL;
   GNUNET_FS_free_download_request_ (dc->top_request);
   dc->top_request = NULL;
@@ -1459,6 +1460,14 @@
                                                    dc); 
       GNUNET_assert (dc->th != NULL);
     }
+  if (GNUNET_NO == dc->in_receive)
+    {
+      dc->in_receive = GNUNET_YES;
+      GNUNET_CLIENT_receive (dc->client,
+                            &receive_results,
+                            dc,
+                            GNUNET_TIME_UNIT_FOREVER_REL);
+    }
   return msize;
 }
 
@@ -1498,10 +1507,6 @@
                                                    dc);
       GNUNET_assert (dc->th != NULL);
     }
-  GNUNET_CLIENT_receive (client,
-                        &receive_results,
-                        dc,
-                        GNUNET_TIME_UNIT_FOREVER_REL);
 }
 
 
@@ -1560,6 +1565,7 @@
                                             &retry_entry,
                                             dc);
       GNUNET_CLIENT_disconnect (dc->client, GNUNET_NO);
+      dc->in_receive = GNUNET_NO;
       dc->client = NULL;
     }
 #if DEBUG_DOWNLOAD
@@ -1594,10 +1600,6 @@
   GNUNET_assert (dc->client == NULL);
   GNUNET_assert (dc->th == NULL);
   dc->client = client;
-  GNUNET_CLIENT_receive (client,
-                        &receive_results,
-                        dc,
-                        GNUNET_TIME_UNIT_FOREVER_REL);
   pi.status = GNUNET_FS_STATUS_DOWNLOAD_ACTIVE;
   GNUNET_FS_download_make_status_ (&pi, dc);
   dc->pending_head = NULL;
@@ -1645,6 +1647,7 @@
   if (NULL != dc->client)
     {
       GNUNET_CLIENT_disconnect (dc->client, GNUNET_NO);
+      dc->in_receive = GNUNET_NO;
       dc->client = NULL;
     }
   dc->pending_head = NULL;




reply via email to

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