gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] [taler-twister] branch master updated: try to fix #5337


From: gnunet
Subject: [GNUnet-SVN] [taler-twister] branch master updated: try to fix #5337
Date: Tue, 18 Sep 2018 12:22:15 +0200

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository twister.

The following commit(s) were added to refs/heads/master by this push:
     new 324f6db  try to fix #5337
324f6db is described below

commit 324f6db4891803a2007b12365e7b9e245638021c
Author: Christian Grothoff <address@hidden>
AuthorDate: Tue Sep 18 12:22:13 2018 +0200

    try to fix #5337
---
 src/twister/taler-twister-service.c | 54 ++++++++++++++++++++++++++++++++++---
 1 file changed, 51 insertions(+), 3 deletions(-)

diff --git a/src/twister/taler-twister-service.c 
b/src/twister/taler-twister-service.c
index 6fde9a3..3e0bed7 100644
--- a/src/twister/taler-twister-service.c
+++ b/src/twister/taler-twister-service.c
@@ -190,6 +190,11 @@ struct HttpRequest
    * Request processing state machine.
    */
   enum RequestState state;
+
+  /**
+   * Did we pause the curl download?
+   */
+  int curl_download_suspended;
 };
 
 
@@ -457,8 +462,11 @@ curl_download_cb (void *ptr,
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
              "Curl download proceeding\n");
 
-  if (REQUEST_STATE_DOWNLOAD_STARTED != hr->state) 
-    return CURL_WRITEFUNC_PAUSE;
+  if (REQUEST_STATE_DOWNLOAD_STARTED != hr->state)
+    {
+      hr->curl_download_suspended = GNUNET_YES;
+      return CURL_WRITEFUNC_PAUSE;
+    }
 
   GNUNET_assert
     (REQUEST_STATE_DOWNLOAD_STARTED == hr->state);
@@ -512,6 +520,12 @@ curl_upload_cb (void *buf,
   if (0 == hr->io_len)
   {
     hr->state = REQUEST_STATE_DOWNLOAD_STARTED;
+    if (GNUNET_YES == hr->curl_download_suspended)
+      {
+       curl_easy_pause (hr->curl,
+                        CURLPAUSE_CONT);
+       hr->curl_download_suspended = GNUNET_NO;
+      }
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Completed CURL UPLOAD\n");
     return 0; /* upload finished, can now download */
@@ -529,6 +543,12 @@ curl_upload_cb (void *buf,
   if (0 == hr->io_len)
   {
     hr->state = REQUEST_STATE_DOWNLOAD_STARTED;
+    if (GNUNET_YES == hr->curl_download_suspended)
+    {
+      curl_easy_pause (hr->curl,
+                      CURLPAUSE_CONT);
+      hr->curl_download_suspended = GNUNET_NO;
+    }
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Completed CURL UPLOAD\n");
   }
@@ -728,6 +748,7 @@ curl_task_download (void *cls)
   curl_download_prepare ();
 }
 
+
 static int
 curl_progress_cb (void *clientp,
                   double dltotal,
@@ -1415,6 +1436,12 @@ create_response (void *cls,
                              MHD_HTTP_METHOD_HEAD))
     {
       hr->state = REQUEST_STATE_DOWNLOAD_STARTED;
+      if (GNUNET_YES == hr->curl_download_suspended)
+      {
+       curl_easy_pause (hr->curl,
+                        CURLPAUSE_CONT);
+       hr->curl_download_suspended = GNUNET_NO;
+      }
       curl_easy_setopt (hr->curl,
                        CURLOPT_NOBODY,
                        1L);
@@ -1423,6 +1450,12 @@ create_response (void *cls,
                              MHD_HTTP_METHOD_OPTIONS))
     {
       hr->state = REQUEST_STATE_DOWNLOAD_STARTED;
+      if (GNUNET_YES == hr->curl_download_suspended)
+      {
+       curl_easy_pause (hr->curl,
+                        CURLPAUSE_CONT);
+       hr->curl_download_suspended = GNUNET_NO;
+      }
       curl_easy_setopt (hr->curl,
                        CURLOPT_CUSTOMREQUEST,
                        "OPTIONS");
@@ -1431,6 +1464,12 @@ create_response (void *cls,
                              MHD_HTTP_METHOD_GET))
     {
       hr->state = REQUEST_STATE_DOWNLOAD_STARTED;
+      if (GNUNET_YES == hr->curl_download_suspended)
+      {
+       curl_easy_pause (hr->curl,
+                        CURLPAUSE_CONT);
+       hr->curl_download_suspended = GNUNET_NO;
+      }
       curl_easy_setopt (hr->curl,
                        CURLOPT_HTTPGET,
                        1L);
@@ -1492,8 +1531,17 @@ create_response (void *cls,
     curl_download_prepare ();
 
     /* means (?) upload is over.  */
-    if (0 == hr->io_len) /* FIXME: gnunet-gns-proxy has an extra check here... 
*/
+    if (0 == hr->io_len)
+    {
+      /* FIXME: gnunet-gns-proxy has an extra check here... */
       hr->state = REQUEST_STATE_DOWNLOAD_STARTED;
+      if (GNUNET_YES == hr->curl_download_suspended)
+      {
+       curl_easy_pause (hr->curl,
+                        CURLPAUSE_CONT);
+       hr->curl_download_suspended = GNUNET_NO;
+      }
+    }
     return MHD_YES;
   }
 

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

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