diff --git a/lib/cf-socket.c b/lib/cf-socket.c index 830daa1f54..dc6a40e906 100644 --- a/lib/cf-socket.c +++ b/lib/cf-socket.c @@ -1387,11 +1387,20 @@ static void cf_socket_active(struct Curl_cfilter *cf, struct Curl_easy *data) conn_set_primary_ip(cf, data); set_local_ip(cf, data); Curl_persistconninfo(data, cf->conn, ctx->l_ip, ctx->l_port); - /* We buffer only for TCP transfers that do not install their own - * read function. Those may still have expectations about socket - * behaviours from the past. */ + /* We buffer only for TCP transfers that do not install their own read + * function. Those may still have expectations about socket behaviours from + * the past. + * + * Note buffering is currently disabled by default because we have stalls + * in parallel transfers where not all buffered data is consumed and no + * socket events happen. + */ +#ifdef USE_RECV_BEFORE_SEND_WORKAROUND ctx->buffer_recv = (ctx->transport == TRNSPRT_TCP && (cf->conn->recv[cf->sockindex] == Curl_conn_recv)); +#else + ctx->buffer_recv = FALSE; +#endif } ctx->active = TRUE; }