Skip to content
Snippets Groups Projects
Commit 6d9cddc5 authored by Jiri Hruska's avatar Jiri Hruska Committed by Steve Holme
Browse files

pingpong: Check SSL library buffers for already read data

Otherwise the connection can get stuck during various phases, waiting
for new data on the socket using select() etc., but it will never be
received as the data has already been read into SSL library.
parent e20e48cb
No related branches found
No related tags found
No related merge requests found
......@@ -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 <curl/mprintf.h>
......@@ -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 */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment