Pause/Continue HTTPS transfer
Date: Fri, 21 Feb 2020 22:24:15 +0100
I have an application that is (ab)using the pause/continue feature of
The application is having the CURLOPT_WRITEFUNCTION write the http data to a
small buffer, pausing the transfer when this buffer space is running low.
issue is that, on occasion, the transfer is not properly resumed after
`curl_easy_pause(... CURLPAUSE_CONT)`. The buffer with the data that caused
CURL_WRITEFUNC_PAUSE return is always delivered, but no new data is
The application is using the normal `curl_multi_perform()` to drive the
I suspect that this failure to resume the transfer occurs when (or at least
something to do with) data is buffered in the SSL backend and select/poll
not return any events on the socket (either due to the server has
all data for the request, or that the server can't send any more data due to
being limited by the TCP window).
Attached is a test program that hopefully demonstrates the phenomenon (at
it does for me ;-) Is there an issue here or have I missed something?
- text/x-csrc attachment: curlpause.c