diff options
-rw-r--r-- | lib/c-hyper.c | 4 | ||||
-rw-r--r-- | lib/c-hyper.h | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/lib/c-hyper.c b/lib/c-hyper.c index 9ee17e3f8..19ba8d9b8 100644 --- a/lib/c-hyper.c +++ b/lib/c-hyper.c @@ -329,7 +329,7 @@ CURLcode Curl_hyper_stream(struct Curl_easy *data, hyper_error_free(hypererr); break; } - else if(h->init) { + else if(h->endtask == task) { /* end of transfer */ *done = TRUE; infof(data, "hyperstream is done!\n"); @@ -341,7 +341,6 @@ CURLcode Curl_hyper_stream(struct Curl_easy *data, } /* HYPER_TASK_RESPONSE */ - h->init = TRUE; *didwhat = KEEP_RECV; if(!resp) { failf(data, "hyperstream: couldn't get response"); @@ -403,6 +402,7 @@ CURLcode Curl_hyper_stream(struct Curl_easy *data, result = CURLE_OUT_OF_MEMORY; break; } + h->endtask = foreach; hyper_response_free(resp); resp = NULL; diff --git a/lib/c-hyper.h b/lib/c-hyper.h index e2ff743b2..d60ed78d1 100644 --- a/lib/c-hyper.h +++ b/lib/c-hyper.h @@ -32,7 +32,7 @@ struct hyptransfer { hyper_waker *write_waker; hyper_waker *read_waker; const hyper_executor *exec; - bool init; + hyper_task *endtask; }; size_t Curl_hyper_recv(void *userp, hyper_context *ctx, |