diff --git a/lib/pingpong.c b/lib/pingpong.c index 7a7657368..3ebeabe53 100644 --- a/lib/pingpong.c +++ b/lib/pingpong.c @@ -33,6 +33,7 @@ #include "pingpong.h" #include "multiif.h" #include "non-ascii.h" +#include "sslgen.h" #define _MPRINTF_REPLACE /* use our functions only */ #include @@ -105,6 +106,9 @@ CURLcode Curl_pp_statemach(struct pingpong *pp, bool block) if(Curl_pp_moredata(pp)) /* We are receiving and there is data in the cache so just read it */ rc = 1; + else if(!pp->sendleft && Curl_ssl_data_pending(conn, FIRSTSOCKET)) + /* We are receiving and there is data ready in the SSL library */ + rc = 1; else rc = Curl_socket_ready(pp->sendleft?CURL_SOCKET_BAD:sock, /* reading */ pp->sendleft?sock:CURL_SOCKET_BAD, /* writing */