mirror of
https://github.com/curl/curl.git
synced 2026-04-15 00:41:41 +03:00
ngtcp2: fix handling of large requests
- requests >64K are send in parts to the filter - fix parsing of the request to assemble it correctly from several sends - open a QUIC stream only when the complete request has been collected Closes #11815
This commit is contained in:
parent
c849062677
commit
33dac9dfac
1 changed files with 7 additions and 7 deletions
|
|
@ -1655,13 +1655,6 @@ static ssize_t h3_stream_open(struct Curl_cfilter *cf,
|
|||
stream = H3_STREAM_CTX(data);
|
||||
DEBUGASSERT(stream);
|
||||
|
||||
rc = ngtcp2_conn_open_bidi_stream(ctx->qconn, &stream->id, NULL);
|
||||
if(rc) {
|
||||
failf(data, "can get bidi streams");
|
||||
*err = CURLE_SEND_ERROR;
|
||||
goto out;
|
||||
}
|
||||
|
||||
nwritten = Curl_h1_req_parse_read(&stream->h1, buf, len, NULL, 0, err);
|
||||
if(nwritten < 0)
|
||||
goto out;
|
||||
|
|
@ -1696,6 +1689,13 @@ static ssize_t h3_stream_open(struct Curl_cfilter *cf,
|
|||
nva[i].flags = NGHTTP3_NV_FLAG_NONE;
|
||||
}
|
||||
|
||||
rc = ngtcp2_conn_open_bidi_stream(ctx->qconn, &stream->id, NULL);
|
||||
if(rc) {
|
||||
failf(data, "can get bidi streams");
|
||||
*err = CURLE_SEND_ERROR;
|
||||
goto out;
|
||||
}
|
||||
|
||||
switch(data->state.httpreq) {
|
||||
case HTTPREQ_POST:
|
||||
case HTTPREQ_POST_FORM:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue