diff options
Diffstat (limited to 'lib/connect.c')
-rw-r--r-- | lib/connect.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/connect.c b/lib/connect.c index 284726ae3..524d885eb 100644 --- a/lib/connect.c +++ b/lib/connect.c @@ -1404,3 +1404,16 @@ void Curl_conncontrol(struct connectdata *conn, should assign this bit */ } } + +/* Data received can be cached at various levels, so check them all here. */ +bool Curl_conn_data_pending(struct connectdata *conn, int sockindex) +{ + int readable; + + if(Curl_ssl_data_pending(conn, sockindex) || + Curl_recv_has_postponed_data(conn, sockindex)) + return true; + + readable = SOCKET_READABLE(conn->sock[sockindex], 0); + return (readable > 0 && (readable & CURL_CSELECT_IN)); +} |