[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] [taler-twister] branch master updated: try to fix #5337,
gnunet <=