mirror of
https://github.com/curl/curl.git
synced 2024-12-15 06:40:09 +08:00
quiche: set 'drain' when returning without having drained the queues
This commit is contained in:
parent
ea7744a07e
commit
2377465901
@ -404,13 +404,14 @@ static ssize_t h3_stream_recv(struct connectdata *conn,
|
|||||||
quiche_h3_event *ev;
|
quiche_h3_event *ev;
|
||||||
int rc;
|
int rc;
|
||||||
struct h3h1header headers;
|
struct h3h1header headers;
|
||||||
struct HTTP *stream = conn->data->req.protop;
|
struct Curl_easy *data = conn->data;
|
||||||
|
struct HTTP *stream = data->req.protop;
|
||||||
headers.dest = buf;
|
headers.dest = buf;
|
||||||
headers.destlen = buffersize;
|
headers.destlen = buffersize;
|
||||||
headers.nlen = 0;
|
headers.nlen = 0;
|
||||||
|
|
||||||
if(process_ingress(conn, sockfd, qs)) {
|
if(process_ingress(conn, sockfd, qs)) {
|
||||||
infof(conn->data, "h3_stream_recv returns on ingress\n");
|
infof(data, "h3_stream_recv returns on ingress\n");
|
||||||
*curlcode = CURLE_RECV_ERROR;
|
*curlcode = CURLE_RECV_ERROR;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -423,7 +424,7 @@ static ssize_t h3_stream_recv(struct connectdata *conn,
|
|||||||
|
|
||||||
if(s != stream->stream3_id) {
|
if(s != stream->stream3_id) {
|
||||||
/* another transfer, ignore for now */
|
/* another transfer, ignore for now */
|
||||||
infof(conn->data, "Got h3 for stream %u, expects %u\n",
|
infof(data, "Got h3 for stream %u, expects %u\n",
|
||||||
s, stream->stream3_id);
|
s, stream->stream3_id);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -477,7 +478,9 @@ static ssize_t h3_stream_recv(struct connectdata *conn,
|
|||||||
*curlcode = (-1 == recvd)? CURLE_AGAIN : CURLE_OK;
|
*curlcode = (-1 == recvd)? CURLE_AGAIN : CURLE_OK;
|
||||||
if(recvd >= 0)
|
if(recvd >= 0)
|
||||||
/* Get this called again to drain the event queue */
|
/* Get this called again to drain the event queue */
|
||||||
Curl_expire(conn->data, 0, EXPIRE_QUIC);
|
Curl_expire(data, 0, EXPIRE_QUIC);
|
||||||
|
|
||||||
|
data->state.drain = (recvd >= 0) ? 1 : 0;
|
||||||
return recvd;
|
return recvd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user